Socket
Socket
Sign inDemoInstall

swagger-tools

Package Overview
Dependencies
184
Maintainers
1
Versions
78
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.9.16 to 0.10.0

135

middleware/helpers.js

@@ -165,1 +165,136 @@ /*

};
var convertValue = module.exports.convertValue = function (value, schema, type) {
var original = value;
// Default to {}
if (_.isUndefined(schema)) {
schema = {};
}
// Try to find the type or default to 'object'
if (_.isUndefined(type)) {
type = getParameterType(schema);
}
// If there is no value, do not convert it
if (_.isUndefined(value)) {
return value;
}
// If there is an empty value and allowEmptyValue is true, return it
if (schema.allowEmptyValue && value === '') {
return value;
}
switch (type) {
case 'array':
if (_.isString(value)) {
switch (schema.collectionFormat) {
case 'csv':
case undefined:
try {
value = JSON.parse(value);
} catch (err) {
value = original;
}
if (_.isString(value)) {
value = value.split(',');
}
break;
case 'multi':
value = [value];
break;
case 'pipes':
value = value.split('|');
break;
case 'ssv':
value = value.split(' ');
break;
case 'tsv':
value = value.split('\t');
break;
}
}
// Handle situation where the expected type is array but only one value was provided
if (!_.isArray(value)) {
value = [value];
}
value = _.map(value, function (item, index) {
var iSchema = _.isArray(schema.items) ? schema.items[index] : schema.items;
return convertValue(item, iSchema, iSchema ? iSchema.type : undefined);
});
break;
case 'boolean':
if (!_.isBoolean(value)) {
if (['false', 'true'].indexOf(value) === -1) {
value = original;
} else {
value = value === 'true' || value === true ? true : false;
}
}
break;
case 'integer':
if (!_.isNumber(value)) {
if (_.isString(value) && _.trim(value).length === 0) {
value = NaN;
}
value = Number(value);
if (isNaN(value)) {
value = original;
}
}
break;
case 'number':
if (!_.isNumber(value)) {
if (_.isString(value) && _.trim(value).length === 0) {
value = NaN;
}
value = Number(value);
if (isNaN(value)) {
value = original;
}
}
break;
case 'object':
if (_.isString(value)) {
try {
value = JSON.parse(value);
} catch (err) {
value = original;
}
}
break;
case 'string':
if (['date', 'date-time'].indexOf(schema.format) > -1 && !_.isDate(value)) {
value = new Date(value);
if (!_.isDate(value) || value.toString() === 'Invalid Date') {
value = original;
}
}
break;
}
return value;
};

111

middleware/swagger-metadata.js

@@ -113,111 +113,2 @@ /*

var convertValue = function (value, schema, type) {
var original = value;
// Default to {}
if (_.isUndefined(schema)) {
schema = {};
}
// Try to find the type or default to 'object'
if (_.isUndefined(type)) {
type = mHelpers.getParameterType(schema);
}
// If there is no value, do not convert it
if (_.isUndefined(value)) {
return value;
}
// If there is an empty value and allowEmptyValue is true, return it
if (schema.allowEmptyValue && value === '') {
return value;
}
switch (type) {
case 'array':
if (_.isString(value)) {
switch (schema.collectionFormat) {
case 'csv':
case undefined:
value = value.split(',');
break;
case 'multi':
value = [value];
break;
case 'pipes':
value = value.split('|');
break;
case 'ssv':
value = value.split(' ');
break;
case 'tsv':
value = value.split('\t');
break;
}
}
value = _.map(value, function (item, index) {
return convertValue(item, _.isArray(schema.items) ? schema.items[index] : schema.items);
});
break;
case 'boolean':
if (!_.isBoolean(value)) {
if (['false', 'true'].indexOf(value) === -1) {
value = original;
} else {
value = value === 'true' || value === true ? true : false;
}
}
break;
case 'integer':
if (!_.isNumber(value)) {
if (_.isString(value) && _.trim(value).length === 0) {
value = NaN;
}
value = Number(value);
if (isNaN(value)) {
value = original;
}
}
break;
case 'number':
if (!_.isNumber(value)) {
if (_.isString(value) && _.trim(value).length === 0) {
value = NaN;
}
value = Number(value);
if (isNaN(value)) {
value = original;
}
}
break;
case 'string':
if (['date', 'date-time'].indexOf(schema.format) > -1 && !_.isDate(value)) {
value = new Date(value);
if (!_.isDate(value) || value.toString() === 'Invalid Date') {
value = original;
}
}
break;
}
return value;
};
var processOperationParameters = function (swaggerMetadata, pathKeys, pathMatch, req, res, next) {

@@ -320,3 +211,3 @@ var version = swaggerMetadata.swaggerVersion;

oVal = mHelpers.getParameterValue(version, parameter, pathKeys, pathMatch, req, debug);
value = convertValue(oVal, _.isUndefined(parameter.schema) ? parameter : parameter.schema, pType);
value = mHelpers.convertValue(oVal, _.isUndefined(parameter.schema) ? parameter : parameter.schema, pType);

@@ -323,0 +214,0 @@ debug(' Value: %s', value);

@@ -116,2 +116,4 @@ /*

val = mHelpers.convertValue(val, schema, mHelpers.getParameterType(schema));
try {

@@ -118,0 +120,0 @@ validators.validateSchemaConstraints(version, schema, path, val);

{
"name": "swagger-tools",
"version": "0.9.16",
"version": "0.10.0",
"description": "Various tools for using and integrating with Swagger.",

@@ -5,0 +5,0 @@ "main": "index.js",

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