Socket
Socket
Sign inDemoInstall

a127-magic

Package Overview
Dependencies
178
Maintainers
1
Versions
41
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.8.1 to 0.9.0

2

lib/config.js

@@ -32,3 +32,3 @@ /****************************************************************************

var debug = require('debug')('a127');
var _ = require('underscore');
var _ = require('lodash');
var loader = require('./loader');

@@ -35,0 +35,0 @@ var volosSwagger = require('volos-swagger');

@@ -26,5 +26,10 @@ /****************************************************************************

var a127Config = require('./config');
var CORS = require('cors');
var debug = require('debug')('a127');
var _ = require('lodash');
var YAML = require('yamljs');
// default filter just drops all the x- labels
var DROP_SWAGGER_EXTENSIONS = /^(?!x-.*)/;
module.exports = middleware;

@@ -83,2 +88,6 @@

if (config.docEndpoints && config.docEndpoints.raw) {
middlewares.push(swaggerDoc(config.docEndpoints, magic.swaggerObject));
}
return chain(middlewares);

@@ -114,1 +123,55 @@ }

}
function swaggerDoc(docEndpoints, swaggerObject) {
var rawDocPath = docEndpoints.raw;
debug('swagger raw doc path: %s', rawDocPath);
var filter = DROP_SWAGGER_EXTENSIONS;
if (docEndpoints.filter) {
filter = new RegExp(docEndpoints.filter);
}
debug('swagger doc filter: %s', filter);
var filteredSwagger = filterKeysRecursive(swaggerObject, filter);
// should this just be based on accept type?
var yaml = YAML.stringify(filteredSwagger, 99, 2);
var json = JSON.stringify(filteredSwagger, null, 2);
return function swaggerDoc(req, res, next) {
if (rawDocPath) {
try {
if (!req.path) {
req.path = Url.parse(req.url).path
}
if (rawDocPath.indexOf(req.path) != -1) {
if (req.headers['accept'].indexOf('yaml') != -1) {
res.setHeader('Content-Type', 'application/yaml');
return res.end(yaml);
} else {
res.setHeader('Content-Type', 'application/json');
return res.end(json);
}
}
} catch (err) {
return next(err);
}
}
next();
};
}
function filterKeysRecursive(object, regex) {
if (_.isPlainObject(object)) {
var result = {};
_.each(object, function(value, key) {
if (regex.test(key)) {
result[key] = filterKeysRecursive(value, regex);
}
});
return result;
}
return object;
}
{
"name": "a127-magic",
"version": "0.8.1",
"version": "0.9.0",
"description": "Apigee 127 Swagger Loader and Middleware",

@@ -21,5 +21,5 @@ "keywords": [

"debug": "1.0.x",
"lodash": "^3.7.0",
"splitargs": "0.0.3",
"swagger-tools": "^0.8.0",
"underscore": "1.6.x",
"volos-swagger": "^0.7.0",

@@ -26,0 +26,0 @@ "yamljs": "0.1.x"

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc