a127-magic
Advanced tools
Comparing version 0.4.0 to 0.5.0
@@ -33,2 +33,4 @@ /**************************************************************************** | ||
var _ = require('underscore'); | ||
var loader = require('./loader'); | ||
var volosSwagger = require('volos-swagger'); | ||
@@ -43,4 +45,2 @@ module.exports = { | ||
var SECRETS_FILENAME = '.a127_secrets'; | ||
var APP_ROOT = path.dirname(require.main.filename); | ||
var CONFIG_DIR = path.resolve(APP_ROOT, 'config'); | ||
@@ -61,3 +61,3 @@ var BASE_DEFAULTS = { | ||
var configDir, config, env; | ||
var appRoot, configDir, config, env; | ||
@@ -67,4 +67,6 @@ function useConfig(a127Env) { | ||
env = config = undefined; | ||
configDir = process.env.A127_CONFIG || CONFIG_DIR; | ||
appRoot = process.env.A127_APPROOT || path.dirname(require.main.filename); | ||
configDir = path.resolve(appRoot, 'config'); | ||
if (!fs.existsSync(configDir)) { | ||
@@ -84,2 +86,11 @@ throw new Error('config directory doesn\'t exist: ' + configDir); | ||
var magic = config['a127.magic']; | ||
var swaggerObject = loader.load(magic.swaggerFile, config); | ||
magic.swaggerObject = swaggerObject; | ||
var swaggerMiddleware = volosSwagger(swaggerObject, magic.volos); | ||
magic.swaggerMiddleware = swaggerMiddleware; | ||
magic.resource = require('./resource')(swaggerMiddleware.resources); | ||
return config; | ||
@@ -90,7 +101,7 @@ } | ||
var magic = config['a127.magic']; | ||
magic.swaggerFile = path.resolve(APP_ROOT, magic.swaggerFile); | ||
magic.swaggerFile = path.resolve(appRoot, magic.swaggerFile); | ||
if (_.isString(magic.controllers.controllers)) { | ||
magic.controllers.controllers = path.resolve(APP_ROOT, magic.controllers.controllers); | ||
magic.controllers.controllers = path.resolve(appRoot, magic.controllers.controllers); | ||
} | ||
magic.volos.helpers = path.resolve(APP_ROOT, magic.volos.helpers); | ||
magic.volos.helpers = path.resolve(appRoot, magic.volos.helpers); | ||
} | ||
@@ -97,0 +108,0 @@ |
@@ -26,6 +26,10 @@ /**************************************************************************** | ||
var config = require('./config'); | ||
var middleware = require('./middleware'); | ||
var resource = require('./resource')(); | ||
module.exports = { | ||
config: require('./config'), | ||
middleware: require('./middleware'), | ||
resource: require('./resource') | ||
config: config, | ||
middleware: middleware, | ||
resource: resource | ||
}; |
@@ -29,4 +29,2 @@ /**************************************************************************** | ||
var a127Config = require('./config'); | ||
var _ = require('underscore'); | ||
var stream = require('stream'); | ||
@@ -121,5 +119,1 @@ module.exports = { | ||
} | ||
function isAnchor(token) { | ||
return token[token.length - 1] === '&'; | ||
} |
@@ -28,5 +28,2 @@ /**************************************************************************** | ||
var swaggerTools = require('swagger-tools').middleware.v2_0; | ||
var volosSwagger = require('volos-swagger'); | ||
var loader = require('./loader'); | ||
var resource = require('./resource'); | ||
@@ -38,12 +35,3 @@ module.exports = middleware; | ||
var config = a127Config.load(); | ||
var swaggerObject = loader.load(); | ||
var startConfig = config._a127_start_config || {}; | ||
var magicConfig = config['a127.magic']; | ||
var routerConfig = { | ||
useStubs: startConfig.mock || magicConfig.controllers.useStubs, | ||
controllers: startConfig.mock ? magicConfig.controllers.mocks : magicConfig.controllers.controllers | ||
}; | ||
if (startConfig.debug && !process.env.DEBUG) { | ||
@@ -53,9 +41,20 @@ process.env.DEBUG = startConfig.debug; | ||
var swaggerMiddleware = volosSwagger(swaggerObject); | ||
var magic = config['a127.magic']; | ||
var swaggerMiddleware = magic.swaggerMiddleware; | ||
var controllers = []; | ||
var mainControllers = startConfig.mock ? magic.controllers.mocks : magic.controllers.controllers; | ||
if (mainControllers) { controllers.push(mainControllers); } | ||
controllers.push(swaggerMiddleware.controllers); | ||
var routerConfig = { | ||
useStubs: startConfig.mock || magic.controllers.useStubs, | ||
controllers: controllers | ||
}; | ||
return chain([ | ||
swaggerTools.swaggerMetadata(swaggerObject), | ||
swaggerTools.swaggerMetadata(magic.swaggerObject), | ||
swaggerTools.swaggerValidator(), | ||
volosSwagger(swaggerObject, magicConfig.volos), | ||
addResourceToRequestMW(), | ||
swaggerMiddleware, | ||
addResourceToRequest(magic.resource), | ||
swaggerTools.swaggerRouter(routerConfig) | ||
@@ -65,3 +64,3 @@ ]); | ||
function addResourceToRequestMW() { | ||
function addResourceToRequest(resource) { | ||
var a127Resource = { resource: resource }; | ||
@@ -68,0 +67,0 @@ return function(req, res, next) { |
@@ -26,10 +26,20 @@ /**************************************************************************** | ||
var volosSwagger = require('volos-swagger'); | ||
var loader = require('./loader'); | ||
var swaggerObject = loader.load(); | ||
var config = require('./config').load(); | ||
var resources = volosSwagger(swaggerObject, config['a127.magic'].volos).resources; | ||
var _ = require('underscore'); | ||
var myResources; | ||
var partialGetResource; | ||
module.exports = function(name) { | ||
return resources[name]; | ||
// this is a little goofy, but it basically avoids having any globals and maintains backward compatibility | ||
module.exports = function(resources) { | ||
if (resources) { // called once by middleware.js | ||
myResources = resources; | ||
} | ||
return getResource; | ||
}; | ||
function getResources() { | ||
return myResources; | ||
} | ||
function getResource(name) { | ||
return getResources()[name]; | ||
} |
{ | ||
"name": "a127-magic", | ||
"version": "0.4.0", | ||
"version": "0.5.0", | ||
"description": "Apigee 127 Swagger Loader and Middleware", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
@@ -7,3 +7,3 @@ var should = require('should'); | ||
process.env.A127_CONFIG = path.resolve(__dirname, 'config'); | ||
process.env.A127_APPROOT = __dirname; | ||
@@ -10,0 +10,0 @@ describe('loads default config', function(done) { |
@@ -8,7 +8,5 @@ var should = require('should'); | ||
var CONFIG_DIR = path.resolve(__dirname, 'config'); | ||
process.env.A127_CONFIG = CONFIG_DIR; | ||
process.env.A127_APPROOT = __dirname; | ||
var SWAGGER_FILE = path.resolve(__dirname, 'api', 'swagger', 'swagger.yaml'); | ||
var SWAGGER_FILE = path.resolve(CONFIG_DIR, 'swagger.yaml'); | ||
describe('swagger.yaml replacement', function(done) { | ||
@@ -15,0 +13,0 @@ |
var should = require('should'); | ||
var path = require('path'); | ||
var a127config = require('../lib/config'); | ||
var middleware = require('../lib/middleware'); | ||
var CONFIG_DIR = path.resolve(__dirname, 'config'); | ||
process.env.A127_CONFIG = CONFIG_DIR; | ||
process.env.A127_APPROOT = __dirname; | ||
var SWAGGER_FILE = path.resolve(CONFIG_DIR, 'swagger.yaml'); | ||
var config = a127config.load(); | ||
config['a127.magic'].swaggerFile = SWAGGER_FILE; | ||
config['a127.magic'].controllers = {}; | ||
var middleware = require('../lib/middleware'); | ||
@@ -16,0 +11,0 @@ describe('middleware', function() { |
@@ -6,9 +6,7 @@ var should = require('should'); | ||
var resource = require('../lib/resource'); | ||
var resource = require('../lib/resource')(); | ||
var CONFIG_DIR = path.resolve(__dirname, 'config'); | ||
process.env.A127_CONFIG = CONFIG_DIR; | ||
process.env.A127_APPROOT = __dirname; | ||
var SWAGGER_FILE = path.resolve(__dirname, 'api', 'swagger', 'swagger.yaml'); | ||
var SWAGGER_FILE = path.resolve(CONFIG_DIR, 'swagger.yaml'); | ||
var config = a127config.load(); | ||
@@ -15,0 +13,0 @@ |
Sorry, the diff of this file is not supported yet
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
97002
32
509