lambda-serverless-api
Advanced tools
Comparing version 1.12.6 to 1.12.7
const xor = require('lodash.xor'); | ||
const get = require('lodash.get'); | ||
const Rollbar = require('lambda-rollbar'); | ||
const Limiter = require('lambda-rate-limiter'); | ||
const yaml = require("yaml-boost"); | ||
const param = require("./param"); | ||
const response = require("./response"); | ||
const swagger = require("./swagger"); | ||
const Find = require("./util/find"); | ||
@@ -14,2 +22,3 @@ | ||
const receivedRequestMethod = get(event, 'httpMethod'); | ||
if (receivedRequestMethod !== expectedRequestMethod) { | ||
@@ -20,3 +29,5 @@ throw response.ApiError(`Request Method "${expectedRequestMethod}" expected.`, 400, 99004, { | ||
} | ||
let body; | ||
try { | ||
@@ -29,3 +40,6 @@ body = JSON.parse(get(event, 'body', '{}')); | ||
} | ||
const eventParsed = Object.assign({}, event, { body }); | ||
const eventParsed = Object.assign({}, event, { | ||
body | ||
}); | ||
return Promise.resolve(params.map(p => p.get(eventParsed))); | ||
@@ -45,2 +59,3 @@ }; | ||
} | ||
if (resp instanceof response.ApiResponseClass) { | ||
@@ -53,2 +68,3 @@ return { | ||
} | ||
throw err; | ||
@@ -66,16 +82,11 @@ }; | ||
} | ||
if (params.filter(p => p.position === 'path').some(p => request.indexOf(`{${p.name}}`) === -1)) { | ||
throw new Error("Path Parameter not defined in given path."); | ||
} | ||
endpoints[request] = params; | ||
return rollbar | ||
.wrap((event, context, rb) => limiter | ||
.check(limit, get(event, 'requestContext.identity.sourceIp')) | ||
.catch(() => { | ||
throw response.ApiError("Rate limit exceeded.", 429); | ||
}) | ||
.then(() => parse(request, params, event)) | ||
.then(paramsOut => handler(paramsOut, context, rb)) | ||
.then(payload => generateResponse(null, payload, rb)) | ||
.catch(err => generateResponse(err, null, rb))); | ||
return rollbar.wrap((event, context, rb) => limiter.check(limit, get(event, 'requestContext.identity.sourceIp')).catch(() => { | ||
throw response.ApiError("Rate limit exceeded.", 429); | ||
}).then(() => parse(request, params, event)).then(paramsOut => handler(paramsOut, context, rb)).then(payload => generateResponse(null, payload, rb)).catch(err => generateResponse(err, null, rb))); | ||
}; | ||
@@ -86,8 +97,4 @@ | ||
const swaggerData = yaml.load(swaggerFile); | ||
const serverlessRequests = Find(["functions.*.events.*.http"])(serverlessData) | ||
.map(k => get(serverlessData, k)).map(e => `${e.method.toUpperCase()} ${e.path}`); | ||
const swaggerRequests = Find(["paths.*.*"])(swaggerData) | ||
.map(k => k.split(".")).map(e => `${e[2].toUpperCase()} ${e[1].substring(1)}`); | ||
const serverlessRequests = Find(["functions.*.events.*.http"])(serverlessData).map(k => get(serverlessData, k)).map(e => `${e.method.toUpperCase()} ${e.path}`); | ||
const swaggerRequests = Find(["paths.*.*"])(swaggerData).map(k => k.split(".")).map(e => `${e[2].toUpperCase()} ${e[1].substring(1)}`); | ||
return xor(serverlessRequests, swaggerRequests); | ||
@@ -109,1 +116,2 @@ }; | ||
}; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkuanMiXSwibmFtZXMiOlsieG9yIiwicmVxdWlyZSIsImdldCIsIlJvbGxiYXIiLCJMaW1pdGVyIiwieWFtbCIsInBhcmFtIiwicmVzcG9uc2UiLCJzd2FnZ2VyIiwiRmluZCIsInBhcnNlIiwicmVxdWVzdCIsInBhcmFtcyIsImV2ZW50IiwiZXhwZWN0ZWRSZXF1ZXN0TWV0aG9kIiwic3BsaXQiLCJyZWNlaXZlZFJlcXVlc3RNZXRob2QiLCJBcGlFcnJvciIsInZhbHVlIiwiYm9keSIsIkpTT04iLCJlIiwiZXZlbnRQYXJzZWQiLCJPYmplY3QiLCJhc3NpZ24iLCJQcm9taXNlIiwicmVzb2x2ZSIsIm1hcCIsInAiLCJnZW5lcmF0ZVJlc3BvbnNlIiwiZXJyIiwicmVzcCIsInJiIiwiQXBpRXJyb3JDbGFzcyIsIndhcm5pbmciLCJ0aGVuIiwic3RhdHVzQ29kZSIsInN0cmluZ2lmeSIsIm1lc3NhZ2UiLCJtZXNzYWdlSWQiLCJjb250ZXh0IiwiQXBpUmVzcG9uc2VDbGFzcyIsInBheWxvYWQiLCJoZWFkZXJzIiwibW9kdWxlIiwiZXhwb3J0cyIsIm9wdGlvbnMiLCJlbmRwb2ludHMiLCJyb2xsYmFyIiwibGltaXRlciIsIndyYXAiLCJsaW1pdCIsImhhbmRsZXIiLCJzdGFydHNXaXRoIiwiZmlsdGVyIiwicG9zaXRpb24iLCJsZW5ndGgiLCJFcnJvciIsInNvbWUiLCJpbmRleE9mIiwibmFtZSIsImNoZWNrIiwiY2F0Y2giLCJwYXJhbXNPdXQiLCJnZW5lcmF0ZURpZmZlcmVuY2UiLCJzd2FnZ2VyRmlsZSIsInNlcnZlcmxlc3NGaWxlIiwic2VydmVybGVzc1ZhcnMiLCJzZXJ2ZXJsZXNzRGF0YSIsImxvYWQiLCJzd2FnZ2VyRGF0YSIsInNlcnZlcmxlc3NSZXF1ZXN0cyIsImsiLCJtZXRob2QiLCJ0b1VwcGVyQ2FzZSIsInBhdGgiLCJzd2FnZ2VyUmVxdWVzdHMiLCJzdWJzdHJpbmciLCJnZW5lcmF0ZVN3YWdnZXIiLCJleGlzdGluZyIs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YXpFLFNBQVN5RSxXQUxqQjtBQU1MQyxrQkFBYzFFLFNBQVMwRSxZQU5sQjtBQU9MQyxTQUFLNUUsTUFBTTRFLEdBUE47QUFRTEMsV0FBTzdFLE1BQU02RSxLQVJSO0FBU0xDLFdBQU85RSxNQUFNOEUsS0FUUjtBQVVMQyxVQUFNL0UsTUFBTStFO0FBVlAsR0FBUDtBQVlELENBakREIiwiZmlsZSI6ImFwaS5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHhvciA9IHJlcXVpcmUoJ2xvZGFzaC54b3InKTtcbmNvbnN0IGdldCA9IHJlcXVpcmUoJ2xvZGFzaC5nZXQnKTtcbmNvbnN0IFJvbGxiYXIgPSByZXF1aXJlKCdsYW1iZGEtcm9sbGJhcicpO1xuY29uc3QgTGltaXRlciA9IHJlcXVpcmUoJ2xhbWJkYS1yYXRlLWxpbWl0ZXInKTtcbmNvbnN0IHlhbWwgPSByZXF1aXJlKFwieWFtbC1ib29zdFwiKTtcbmNvbnN0IHBhcmFtID0gcmVxdWlyZShcIi4vcGFyYW1cIik7XG5jb25zdCByZXNwb25zZSA9IHJlcXVpcmUoXCIuL3Jlc3BvbnNlXCIpO1xuY29uc3Qgc3dhZ2dlciA9IHJlcXVpcmUoXCIuL3N3YWdnZXJcIik7XG5jb25zdCBGaW5kID0gcmVxdWlyZShcIi4vdXRpbC9maW5kXCIpO1xuXG5jb25zdCBwYXJzZSA9IChyZXF1ZXN0LCBwYXJhbXMsIGV2ZW50KSA9PiB7XG4gIGNvbnN0IGV4cGVjdGVkUmVxdWVzdE1ldGhvZCA9IHJlcXVlc3Quc3BsaXQoXCIgXCIpWzBdO1xuICBjb25zdCByZWNlaXZlZFJlcXVlc3RNZXRob2QgPSBnZXQoZXZlbnQsICdodHRwTWV0aG9kJyk7XG4gIGlmIChyZWNlaXZlZFJlcXVlc3RNZXRob2QgIT09IGV4cGVjdGVkUmVxdWVzdE1ldGhvZCkge1xuICAgIHRocm93IHJlc3BvbnNlLkFwaUVycm9yKGBSZXF1ZXN0IE1ldGhvZCBcIiR7ZXhwZWN0ZWRSZXF1ZXN0TWV0aG9kfVwiIGV4cGVjdGVkLmAsIDQwMCwgOTkwMDQsIHtcbiAgICAgIHZhbHVlOiByZWNlaXZlZFJlcXVlc3RNZXRob2RcbiAgICB9KTtcbiAgfVxuICBsZXQgYm9keTtcbiAgdHJ5IHtcbiAgICBib2R5ID0gSlNPTi5wYXJzZShnZXQoZXZlbnQsICdib2R5JywgJ3t9JykpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgdGhyb3cgcmVzcG9uc2UuQXBpRXJyb3IoXCJJbnZhbGlkIEpzb24gQm9keSBkZXRlY3RlZC5cIiwgNDAwLCA5OTAwMSwge1xuICAgICAgdmFsdWU6IGdldChldmVudCwgJ2JvZHknKVxuICAgIH0pO1xuICB9XG4gIGNvbnN0IGV2ZW50UGFyc2VkID0gT2JqZWN0LmFzc2lnbih7fSwgZXZlbnQsIHsgYm9keSB9KTtcbiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShwYXJhbXMubWFwKHAgPT4gcC5nZXQoZXZlbnRQYXJzZWQpKSk7XG59O1xuXG5jb25zdCBnZW5lcmF0ZVJlc3BvbnNlID0gKGVyciwgcmVzcCwgcmIpID0+IHtcbiAgaWYgKGVyciBpbnN0YW5jZW9mIHJlc3BvbnNlLkFwaUVycm9yQ2xhc3MpIHtcbiAgICByZXR1cm4gcmIud2FybmluZyhlcnIpLnRoZW4oKCkgPT4gKHtcbiAgICAgIHN0YXR1c0NvZGU6IGVyci5zdGF0dXNDb2RlLFxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBtZXNzYWdlOiBlcnIubWVzc2FnZSxcbiAgICAgICAgbWVzc2FnZUlkOiBlcnIubWVzc2FnZUlkLFxuICAgICAgICBjb250ZXh0OiBlcnIuY29udGV4dFxuICAgICAgfSlcbiAgICB9KSk7XG4gIH1cbiAgaWYgKHJlc3AgaW5zdGFuY2VvZiByZXNwb25zZS5BcGlSZXNwb25zZUNsYXNzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXR1c0NvZGU6IHJlc3Auc3RhdHVzQ29kZSxcbiAgICAgIGJvZHk6IHJlc3AucGF5bG9hZCxcbiAgICAgIGhlYWRlcnM6IHJlc3AuaGVhZGVyc1xuICAgIH07XG4gIH1cbiAgdGhyb3cgZXJyO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSAob3B0aW9ucyA9IHt9KSA9PiB7XG4gIGNvbnN0IGVuZHBvaW50cyA9IHt9O1xuICBjb25zdCByb2xsYmFyID0gUm9sbGJhcihnZXQob3B0aW9ucywgJ3JvbGxiYXInLCB7fSkpO1xuICBjb25zdCBsaW1pdGVyID0gTGltaXRlcihnZXQob3B0aW9ucywgJ2xpbWl0ZXInLCB7fSkpO1xuXG4gIGNvbnN0IHdyYXAgPSAocmVxdWVzdCwgcGFyYW1zLCBsaW1pdCwgaGFuZGxlcikgPT4ge1xuICAgIGlmIChyZXF1ZXN0LnN0YXJ0c1dpdGgoXCJHRVQgXCIpICYmIHBhcmFtcy5maWx0ZXIocCA9PiBwLnBvc2l0aW9uID09PSAnanNvbicpLmxlbmd0aCAhPT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2FuIG5vdCB1c2UgSlNPTiBwYXJhbWV0ZXIgd2l0aCBHRVQgcmVxdWVzdHMuXCIpO1xuICAgIH1cbiAgICBpZiAocGFyYW1zLmZpbHRlcihwID0+IHAucG9zaXRpb24gPT09ICdwYXRoJykuc29tZShwID0+IHJlcXVlc3QuaW5kZXhPZihgeyR7cC5uYW1lfX1gKSA9PT0gLTEpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJQYXRoIFBhcmFtZXRlciBub3QgZGVmaW5lZCBpbiBnaXZlbiBwYXRoLlwiKTtcbiAgICB9XG4gICAgZW5kcG9pbnRzW3JlcXVlc3RdID0gcGFyYW1zO1xuICAgIHJldHVybiByb2xsYmFyXG4gICAgICAud3JhcCgoZXZlbnQsIGNvbnRleHQsIHJiKSA9PiBsaW1pdGVyXG4gICAgICAgIC5jaGVjayhsaW1pdCwgZ2V0KGV2ZW50LCAncmVxdWVzdENvbnRleHQuaWRlbnRpdHkuc291cmNlSXAnKSlcbiAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICB0aHJvdyByZXNwb25zZS5BcGlFcnJvcihcIlJhdGUgbGltaXQgZXhjZWVkZWQuXCIsIDQyOSk7XG4gICAgICAgIH0pXG4gICAgICAgIC50aGVuKCgpID0+IHBhcnNlKHJlcXVlc3QsIHBhcmFtcywgZXZlbnQpKVxuICAgICAgICAudGhlbihwYXJhbXNPdXQgPT4gaGFuZGxlcihwYXJhbXNPdXQsIGNvbnRleHQsIHJiKSlcbiAgICAgICAgLnRoZW4ocGF5bG9hZCA9PiBnZW5lcmF0ZVJlc3BvbnNlKG51bGwsIHBheWxvYWQsIHJiKSlcbiAgICAgICAgLmNhdGNoKGVyciA9PiBnZW5lcmF0ZVJlc3BvbnNlKGVyciwgbnVsbCwgcmIpKSk7XG4gIH07XG5cbiAgY29uc3QgZ2VuZXJhdGVEaWZmZXJlbmNlID0gKHN3YWdnZXJGaWxlLCBzZXJ2ZXJsZXNzRmlsZSwgc2VydmVybGVzc1ZhcnMpID0+IHtcbiAgICBjb25zdCBzZXJ2ZXJsZXNzRGF0YSA9IHlhbWwubG9hZChzZXJ2ZXJsZXNzRmlsZSwgc2VydmVybGVzc1ZhcnMpO1xuICAgIGNvbnN0IHN3YWdnZXJEYXRhID0geWFtbC5sb2FkKHN3YWdnZXJGaWxlKTtcblxuICAgIGNvbnN0IHNlcnZlcmxlc3NSZXF1ZXN0cyA9IEZpbmQoW1wiZnVuY3Rpb25zLiouZXZlbnRzLiouaHR0cFwiXSkoc2VydmVybGVzc0RhdGEpXG4gICAgICAubWFwKGsgPT4gZ2V0KHNlcnZlcmxlc3NEYXRhLCBrKSkubWFwKGUgPT4gYCR7ZS5tZXRob2QudG9VcHBlckNhc2UoKX0gJHtlLnBhdGh9YCk7XG4gICAgY29uc3Qgc3dhZ2dlclJlcXVlc3RzID0gRmluZChbXCJwYXRocy4qLipcIl0pKHN3YWdnZXJEYXRhKVxuICAgICAgLm1hcChrID0+IGsuc3BsaXQoXCIuXCIpKS5tYXAoZSA9PiBgJHtlWzJdLnRvVXBwZXJDYXNlKCl9ICR7ZVsxXS5zdWJzdHJpbmcoMSl9YCk7XG5cbiAgICByZXR1cm4geG9yKHNlcnZlcmxlc3NSZXF1ZXN0cywgc3dhZ2dlclJlcXVlc3RzKTtcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIHdyYXAsXG4gICAgZ2VuZXJhdGVTd2FnZ2VyOiAoZXhpc3RpbmcgPSB7fSkgPT4gc3dhZ2dlcihlbmRwb2ludHMsIGV4aXN0aW5nKSxcbiAgICBnZW5lcmF0ZURpZmZlcmVuY2UsXG4gICAgQXBpRXJyb3I6IHJlc3BvbnNlLkFwaUVycm9yLFxuICAgIEFwaVJlc3BvbnNlOiByZXNwb25zZS5BcGlSZXNwb25zZSxcbiAgICBKc29uUmVzcG9uc2U6IHJlc3BvbnNlLkpzb25SZXNwb25zZSxcbiAgICBTdHI6IHBhcmFtLlN0cixcbiAgICBFbWFpbDogcGFyYW0uRW1haWwsXG4gICAgUmVnRXg6IHBhcmFtLlJlZ0V4LFxuICAgIEJvb2w6IHBhcmFtLkJvb2xcbiAgfTtcbn07XG4iXX0= |
const get = require("lodash.get"); | ||
const response = require("./response"); | ||
@@ -17,2 +18,3 @@ | ||
} | ||
this.name = name; | ||
@@ -22,5 +24,5 @@ this.position = position; | ||
this.type = null; | ||
} | ||
} // eslint-disable-next-line class-methods-use-this | ||
// eslint-disable-next-line class-methods-use-this | ||
validate(value) { | ||
@@ -32,2 +34,3 @@ return true; | ||
const result = get(event, `${positionMapping[this.position]}.${this.name}`); | ||
if (result === undefined) { | ||
@@ -42,4 +45,6 @@ if (this.required) { | ||
} | ||
return result; | ||
} | ||
} | ||
@@ -55,8 +60,12 @@ | ||
let valid = super.validate(value); | ||
if (!(typeof value === 'string' || value instanceof String)) { | ||
valid = false; | ||
} | ||
return valid; | ||
} | ||
} | ||
module.exports.Str = (...args) => new Str(...args); | ||
@@ -72,8 +81,12 @@ | ||
let valid = super.validate(value); | ||
if (!value.match(this.regex)) { | ||
valid = false; | ||
} | ||
return valid; | ||
} | ||
} | ||
module.exports.RegEx = (...args) => new RegEx(...args); | ||
@@ -85,3 +98,5 @@ | ||
} | ||
} | ||
module.exports.Email = (...args) => new Email(...args); | ||
@@ -98,3 +113,6 @@ | ||
} | ||
} | ||
module.exports.Bool = (...args) => new Bool(...args); | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXJhbS5qcyJdLCJuYW1lcyI6WyJnZXQiLCJyZXF1aXJlIiwicmVzcG9uc2UiLCJwb3NpdGlvbk1hcHBpbmciLCJxdWVyeSIsImpzb24iLCJwYXRoIiwiaGVhZGVyIiwiY29udGV4dCIsIlBhcmFtIiwiY29uc3RydWN0b3IiLCJuYW1lIiwicG9zaXRpb24iLCJyZXF1aXJlZCIsIk9iamVjdCIsImtleXMiLCJpbmRleE9mIiwiRXJyb3IiLCJqb2luIiwidHlwZSIsInZhbGlkYXRlIiwidmFsdWUiLCJldmVudCIsInJlc3VsdCIsInVuZGVmaW5lZCIsIkFwaUVycm9yIiwiU3RyIiwiYXJncyIsInZhbGlkIiwiU3RyaW5nIiwibW9kdWxlIiwiZXhwb3J0cyIsIlJlZ0V4IiwicmVnZXgiLCJtYXRjaCIsIkVtYWlsIiwiQm9vbCJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsTUFBTUMsUUFBUSxZQUFSLENBQVo7O0FBQ0EsTUFBTUMsV0FBV0QsUUFBUSxZQUFSLENBQWpCOztBQUVBLE1BQU1FLGtCQUFrQjtBQUN0QkMsU0FBTyx1QkFEZTtBQUV0QkMsUUFBTSxNQUZnQjtBQUd0QkMsUUFBTSxnQkFIZ0I7QUFJdEJDLFVBQVEsU0FKYztBQUt0QkMsV0FBUztBQUxhLENBQXhCOztBQVFBLE1BQU1DLEtBQU4sQ0FBWTtBQUNWQyxjQUFZQyxJQUFaLEVBQWtCQyxXQUFXLE9BQTdCLEVBQXNDQyxXQUFXLElBQWpELEVBQXVEO0FBQ3JELFFBQUlDLE9BQU9DLElBQVAsQ0FBWVosZUFBWixFQUE2QmEsT0FBN0IsQ0FBcUNKLFFBQXJDLE1BQW1ELENBQUMsQ0FBeEQsRUFBMkQ7QUFDekQsWUFBTSxJQUFJSyxLQUFKLENBQVcsMENBQXlDSCxPQUFPQyxJQUFQLENBQVlaLGVBQVosRUFBNkJlLElBQTdCLENBQWtDLElBQWxDLENBQXdDLEVBQTVGLENBQU47QUFDRDs7QUFDRCxTQUFLUCxJQUFMLEdBQVlBLElBQVo7QUFDQSxTQUFLQyxRQUFMLEdBQWdCQSxRQUFo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QUFDRDs7QUFFRDNCLE1BQUlzQixLQUFKLEVBQVc7QUFDVCxVQUFNQyxTQUFTLE1BQU12QixHQUFOLENBQVVzQixLQUFWLENBQWY7QUFDQSxXQUFPLENBQUMsR0FBRCxFQUFNLE1BQU4sRUFBY04sT0FBZCxDQUFzQk8sTUFBdEIsTUFBa0MsQ0FBQyxDQUExQztBQUNEOztBQVJzQjs7QUFVekJPLE9BQU9DLE9BQVAsQ0FBZUssSUFBZixHQUFzQixDQUFDLEdBQUdULElBQUosS0FBYSxJQUFJUyxJQUFKLENBQVMsR0FBR1QsSUFBWixDQUFuQyIsImZpbGUiOiJwYXJhbS5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGdldCA9IHJlcXVpcmUoXCJsb2Rhc2guZ2V0XCIpO1xuY29uc3QgcmVzcG9uc2UgPSByZXF1aXJlKFwiLi9yZXNwb25zZVwiKTtcblxuY29uc3QgcG9zaXRpb25NYXBwaW5nID0ge1xuICBxdWVyeTogXCJxdWVyeVN0cmluZ1BhcmFtZXRlcnNcIixcbiAganNvbjogXCJib2R5XCIsXG4gIHBhdGg6IFwicGF0aFBhcmFtZXRlcnNcIixcbiAgaGVhZGVyOiBcImhlYWRlcnNcIixcbiAgY29udGV4dDogXCJyZXF1ZXN0Q29udGV4dFwiXG59O1xuXG5jbGFzcyBQYXJhbSB7XG4gIGNvbnN0cnVjdG9yKG5hbWUsIHBvc2l0aW9uID0gJ3F1ZXJ5JywgcmVxdWlyZWQgPSB0cnVlKSB7XG4gICAgaWYgKE9iamVjdC5rZXlzKHBvc2l0aW9uTWFwcGluZykuaW5kZXhPZihwb3NpdGlvbikgPT09IC0xKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhcmFtZXRlciBQb3NpdGlvbiBuZWVkcyB0byBiZSBvbmUgb2Y6ICR7T2JqZWN0LmtleXMocG9zaXRpb25NYXBwaW5nKS5qb2luKFwiLCBcIil9YCk7XG4gICAgfVxuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5wb3NpdGlvbiA9IHBvc2l0aW9uO1xuICAgIHRoaXMucmVxdWlyZWQgPSByZXF1aXJlZDtcbiAgICB0aGlzLnR5cGUgPSBudWxsO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXNcbiAgdmFsaWRhdGUodmFsdWUpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGdldChldmVudCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGdldChldmVudCwgYCR7cG9zaXRpb25NYXBwaW5nW3RoaXMucG9zaXRpb25dfS4ke3RoaXMubmFtZX1gKTtcbiAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICh0aGlzLnJlcXVpcmVkKSB7XG4gICAgICAgIHRocm93IHJlc3BvbnNlLkFwaUVycm9yKGBSZXF1aXJlZCAke3RoaXMucG9zaXRpb259LVBhcmFtZXRlciBcIiR7dGhpcy5uYW1lfVwiIG1pc3NpbmcuYCwgNDAwLCA5OTAwMik7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICghdGhpcy52YWxpZGF0ZShyZXN1bHQpKSB7XG4gICAgICB0aHJvdyByZXNwb25zZS5BcGlFcnJvcihgSW52YWxpZCBWYWx1ZSBmb3IgJHt0aGlzLnBvc2l0aW9ufS1QYXJhbWV0ZXIgXCIke3RoaXMubmFtZX1cIiBwcm92aWRlZC5gLCA0MDAsIDk5MDAzLCB7XG4gICAgICAgIHZhbHVlOiByZXN1bHRcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG5cbmNsYXNzIFN0ciBleHRlbmRzIFBhcmFtIHtcbiAgY29uc3RydWN0b3IoLi4uYXJncykge1xuICAgIHN1cGVyKC4uLmFyZ3MpO1xuICAgIHRoaXMudHlwZSA9IFwic3RyaW5nXCI7XG4gIH1cblxuICB2YWxpZGF0ZSh2YWx1ZSkge1xuICAgIGxldCB2YWxpZCA9IHN1cGVyLnZhbGlkYXRlKHZhbHVlKTtcbiAgICBpZiAoISh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHZhbHVlIGluc3RhbmNlb2YgU3RyaW5nKSkge1xuICAgICAgdmFsaWQgPSBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbGlkO1xuICB9XG59XG5tb2R1bGUuZXhwb3J0cy5TdHIgPSAoLi4uYXJncykgPT4gbmV3IFN0ciguLi5hcmdzKTtcblxuY2xhc3MgUmVnRXggZXh0ZW5kcyBTdHIge1xuICBjb25zdHJ1Y3RvcihuYW1lLCByZWdleCwgLi4uYXJncykge1xuICAgIHN1cGVyKG5hbWUsIC4uLmFyZ3MpO1xuICAgIHRoaXMucmVnZXggPSByZWdleDtcbiAgfVxuXG4gIHZhbGlkYXRlKHZhbHVlKSB7XG4gICAgbGV0IHZhbGlkID0gc3VwZXIudmFsaWRhdGUodmFsdWUpO1xuICAgIGlmICghdmFsdWUubWF0Y2godGhpcy5yZWdleCkpIHtcbiAgICAgIHZhbGlkID0gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB2YWxpZDtcbiAgfVxufVxubW9kdWxlLmV4cG9ydHMuUmVnRXggPSAoLi4uYXJncykgPT4gbmV3IFJlZ0V4KC4uLmFyZ3MpO1xuXG5jbGFzcyBFbWFpbCBleHRlbmRzIFJlZ0V4IHtcbiAgY29uc3RydWN0b3IobmFtZSwgLi4uYXJncykge1xuICAgIHN1cGVyKG5hbWUsIC9eW0EtWmEtejAtOS5fJSstXStAW0EtWmEtejAtOS4tXStcXC5bQS1aYS16XXsyLH0kLywgLi4uYXJncyk7XG4gIH1cbn1cbm1vZHVsZS5leHBvcnRzLkVtYWlsID0gKC4uLmFyZ3MpID0+IG5ldyBFbWFpbCguLi5hcmdzKTtcblxuY2xhc3MgQm9vbCBleHRlbmRzIFJlZ0V4IHtcbiAgY29uc3RydWN0b3IobmFtZSwgLi4uYXJncykge1xuICAgIHN1cGVyKG5hbWUsIC9eKDB8MXx0cnVlfGZhbHNlKSQvLCAuLi5hcmdzKTtcbiAgfVxuXG4gIGdldChldmVudCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IHN1cGVyLmdldChldmVudCk7XG4gICAgcmV0dXJuIFtcIjFcIiwgXCJ0cnVlXCJdLmluZGV4T2YocmVzdWx0KSAhPT0gLTE7XG4gIH1cbn1cbm1vZHVsZS5leHBvcnRzLkJvb2wgPSAoLi4uYXJncykgPT4gbmV3IEJvb2woLi4uYXJncyk7XG4iXX0= |
@@ -10,4 +10,7 @@ class ApiError extends Error { | ||
} | ||
} | ||
module.exports.ApiErrorClass = ApiError; | ||
module.exports.ApiError = (...args) => new ApiError(...args); | ||
@@ -21,8 +24,10 @@ | ||
} | ||
} | ||
module.exports.ApiResponseClass = ApiResponse; | ||
module.exports.ApiResponse = (...args) => new ApiResponse(...args); | ||
// -------------------------- | ||
module.exports.ApiResponse = (...args) => new ApiResponse(...args); // -------------------------- | ||
class JsonResponse extends ApiResponse { | ||
@@ -32,3 +37,6 @@ constructor(payload, ...args) { | ||
} | ||
} | ||
module.exports.JsonResponse = (...args) => new JsonResponse(...args); | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZXNwb25zZS5qcyJdLCJuYW1lcyI6WyJBcGlFcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJtZXNzYWdlIiwic3RhdHVzQ29kZSIsIm1lc3NhZ2VJZCIsInVuZGVmaW5lZCIsImNvbnRleHQiLCJuYW1lIiwiY2FwdHVyZVN0YWNrVHJhY2UiLCJtb2R1bGUiLCJleHBvcnRzIiwiQXBpRXJyb3JDbGFzcyIsImFyZ3MiLCJBcGlSZXNwb25zZSIsInBheWxvYWQiLCJoZWFkZXJzIiwiQXBpUmVzcG9uc2VDbGFzcyIsIkpzb25SZXNwb25zZSIsIkpTT04iLCJzdHJpbmdpZnkiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLFFBQU4sU0FBdUJDLEtBQXZCLENBQTZCO0FBQzNCQyxjQUFZQyxPQUFaLEVBQXFCQyxhQUFhLEdBQWxDLEVBQXVDQyxZQUFZQyxTQUFuRCxFQUE4REMsVUFBVUQsU0FBeEUsRUFBbUY7QUFDakYsVUFBTUgsT0FBTjtBQUNBLFNBQUtLLElBQUwsR0FBWSxLQUFLTixXQUFMLENBQWlCTSxJQUE3QjtBQUNBUCxVQUFNUSxpQkFBTixDQUF3QixJQUF4QixFQUE4QixLQUFLUCxXQUFuQztBQUNBLFNBQUtFLFVBQUwsR0FBa0JBLFVBQWxCO0FBQ0EsU0FBS0MsU0FBTCxHQUFpQkEsU0FBakI7QUFDQSxTQUFLRSxPQUFMLEdBQWVBLE9BQWY7QUFDRDs7QUFSMEI7O0FBVTdCRyxPQUFPQyxPQUFQLENBQWVDLGFBQWYsR0FBK0JaLFFBQS9COztBQUNBVSxPQUFPQyxPQUFQLENBQWVYLFFBQWYsR0FBMEIsQ0FBQyxHQUFHYSxJQUFKLEtBQWEsSUFBSWIsUUFBSixDQUFhLEdBQUdhLElBQWhCLENBQXZDOztBQUVBLE1BQU1DLFdBQU4sQ0FBa0I7QUFDaEJaLGNBQVlhLE9BQVosRUFBcUJYLGFBQWEsR0FBbEMsRUFBdUNZLFVBQVUsRUFBakQsRUFBcUQ7QUFDbkQsU0FBS0QsT0FBTCxHQUFlQSxPQUFmO0FBQ0EsU0FBS1gsVUFBTCxHQUFrQkEsVUFBbEI7QUFDQSxTQUFLWSxPQUFMLEdBQWVBLE9BQWY7QUFDRDs7QUFMZTs7QUFPbEJOLE9BQU9DLE9BQVAsQ0FBZU0sZ0JBQWYsR0FBa0NILFdBQWxDOztBQUNBSixPQUFPQyxPQUFQLENBQWVHLFdBQWYsR0FBNkIsQ0FBQyxHQUFHRCxJQUFKLEtBQWEsSUFBSUMsV0FBSixDQUFnQixHQUFHRCxJQUFuQixDQUExQyxDLENBRUE7OztBQUVBLE1BQU1LLFlBQU4sU0FBMkJKLFdBQTNCLENBQXVDO0FBQ3JDWixjQUFZYSxPQUFaLEVBQXFCLEdBQUdGLElBQXhCLEVBQThCO0FBQzVCLFVBQU1NLEtBQUtDLFNBQUwsQ0FBZUwsT0FBZixDQUFOLEVBQStCLEdBQUdGLElBQWxDO0FBQ0Q7O0FBSG9DOztBQUt2Q0gsT0FBT0MsT0FBUCxDQUFlTyxZQUFmLEdBQThCLENBQUMsR0FBR0wsSUFBSixLQUFhLElBQUlLLFlBQUosQ0FBaUIsR0FBR0wsSUFBcEIsQ0FBM0MiLCJmaWxlIjoicmVzcG9uc2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjbGFzcyBBcGlFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZSwgc3RhdHVzQ29kZSA9IDQwMCwgbWVzc2FnZUlkID0gdW5kZWZpbmVkLCBjb250ZXh0ID0gdW5kZWZpbmVkKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lO1xuICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsIHRoaXMuY29uc3RydWN0b3IpO1xuICAgIHRoaXMuc3RhdHVzQ29kZSA9IHN0YXR1c0NvZGU7XG4gICAgdGhpcy5tZXNzYWdlSWQgPSBtZXNzYWdlSWQ7XG4gICAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcbiAgfVxufVxubW9kdWxlLmV4cG9ydHMuQXBpRXJyb3JDbGFzcyA9IEFwaUVycm9yO1xubW9kdWxlLmV4cG9ydHMuQXBpRXJyb3IgPSAoLi4uYXJncykgPT4gbmV3IEFwaUVycm9yKC4uLmFyZ3MpO1xuXG5jbGFzcyBBcGlSZXNwb25zZSB7XG4gIGNvbnN0cnVjdG9yKHBheWxvYWQsIHN0YXR1c0NvZGUgPSAyMDAsIGhlYWRlcnMgPSB7fSkge1xuICAgIHRoaXMucGF5bG9hZCA9IHBheWxvYWQ7XG4gICAgdGhpcy5zdGF0dXNDb2RlID0gc3RhdHVzQ29kZTtcbiAgICB0aGlzLmhlYWRlcnMgPSBoZWFkZXJzO1xuICB9XG59XG5tb2R1bGUuZXhwb3J0cy5BcGlSZXNwb25zZUNsYXNzID0gQXBpUmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cy5BcGlSZXNwb25zZSA9ICguLi5hcmdzKSA9PiBuZXcgQXBpUmVzcG9uc2UoLi4uYXJncyk7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmNsYXNzIEpzb25SZXNwb25zZSBleHRlbmRzIEFwaVJlc3BvbnNlIHtcbiAgY29uc3RydWN0b3IocGF5bG9hZCwgLi4uYXJncykge1xuICAgIHN1cGVyKEpTT04uc3RyaW5naWZ5KHBheWxvYWQpLCAuLi5hcmdzKTtcbiAgfVxufVxubW9kdWxlLmV4cG9ydHMuSnNvblJlc3BvbnNlID0gKC4uLmFyZ3MpID0+IG5ldyBKc29uUmVzcG9uc2UoLi4uYXJncyk7XG4iXX0= |
const SwaggerParser = require('swagger-parser'); | ||
const merge = require("./util/merge")([ | ||
"swagger", | ||
"produces", | ||
"paths.*.*.parameters", | ||
"paths.*.*.consumes" | ||
], [ | ||
"paths.*.*.description" | ||
]); | ||
const merge = require("./util/merge")(["swagger", "produces", "paths.*.*.parameters", "paths.*.*.consumes"], ["paths.*.*.description"]); | ||
@@ -22,18 +15,14 @@ module.exports = (endpoints, existing) => { | ||
}; | ||
Object.keys(endpoints).forEach((request) => { | ||
const parameters = endpoints[request] | ||
.filter(p => ["json", "context"].indexOf(p.position) === -1) | ||
.map(p => Object.assign( | ||
{ | ||
name: p.name, | ||
required: p.required, | ||
type: p.type, | ||
format: p.constructor.name, | ||
in: p.position | ||
}, | ||
p.regex === undefined ? {} : { pattern: p.regex.toString() } | ||
)); | ||
Object.keys(endpoints).forEach(request => { | ||
const parameters = endpoints[request].filter(p => ["json", "context"].indexOf(p.position) === -1).map(p => Object.assign({ | ||
name: p.name, | ||
required: p.required, | ||
type: p.type, | ||
format: p.constructor.name, | ||
in: p.position | ||
}, p.regex === undefined ? {} : { | ||
pattern: p.regex.toString() | ||
})); | ||
const jsonParams = endpoints[request].filter(p => p.position === "json"); | ||
const jsonParams = endpoints[request] | ||
.filter(p => p.position === "json"); | ||
if (jsonParams.length !== 0) { | ||
@@ -47,9 +36,8 @@ parameters.push({ | ||
properties: jsonParams.reduce((prev, p) => Object.assign(prev, { | ||
[p.name]: Object.assign( | ||
{ | ||
type: p.type, | ||
format: p.constructor.name | ||
}, | ||
p.regex === undefined ? {} : { pattern: p.regex.toString() } | ||
) | ||
[p.name]: Object.assign({ | ||
type: p.type, | ||
format: p.constructor.name | ||
}, p.regex === undefined ? {} : { | ||
pattern: p.regex.toString() | ||
}) | ||
}), {}) | ||
@@ -61,5 +49,4 @@ } | ||
const description = []; | ||
const contextParams = endpoints[request] | ||
.filter(p => p.position === "context") | ||
.map(p => p.name); | ||
const contextParams = endpoints[request].filter(p => p.position === "context").map(p => p.name); | ||
if (contextParams.length !== 0) { | ||
@@ -82,3 +69,2 @@ description.push(`Internally contexts are used: ${contextParams.join(", ")}`); | ||
}); | ||
const result = JSON.parse(JSON.stringify(existing)); | ||
@@ -88,1 +74,2 @@ merge(result, data); | ||
}; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zd2FnZ2VyLmpzIl0sIm5hbWVzIjpbIlN3YWdnZXJQYXJzZXIiLCJyZXF1aXJlIiwibWVyZ2UiLCJtb2R1bGUiLCJleHBvcnRzIiwiZW5kcG9pbnRzIiwiZXhpc3RpbmciLCJkYXRhIiwic3dhZ2dlciIsInByb2R1Y2VzIiwiaW5mbyIsInRpdGxlIiwidmVyc2lvbiIsInBhdGhzIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJyZXF1ZXN0IiwicGFyYW1ldGVycyIsImZpbHRlciIsInAiLCJpbmRleE9mIiwicG9zaXRpb24iLCJtYXAiLCJhc3NpZ24iLCJuYW1lIiwicmVxdWlyZWQiLCJ0eXBlIiwiZm9ybWF0IiwiY29uc3RydWN0b3IiLCJpbiIsInJlZ2V4IiwidW5kZWZpbmVkIiwicGF0dGVybiIsInRvU3RyaW5nIiwianNvblBhcmFtcyIsImxlbmd0aCIsInB1c2giLCJzY2hlbWEiLCJwcm9wZXJ0aWVzIiwicmVkdWNlIiwicHJldiIsImRlc2NyaXB0aW9uIiwiY29udGV4dFBhcmFtcyIsImpvaW4iLCJzcGxpdCIsInRvTG93ZXJDYXNlIiwiY29uc3VtZXMiLCJyZXNwb25zZXMiLCJkZWZhdWx0IiwicmVzdWx0IiwiSlNPTiIsInBhcnNlIiwic3RyaW5naWZ5IiwidmFsaWRhdGUiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLGdCQUFnQkMsUUFBUSxnQkFBUixDQUF0Qjs7QUFFQSxNQUFNQyxRQUFRRCxRQUFRLGNBQVIsRUFBd0IsQ0FDcEMsU0FEb0MsRUFFcEMsVUFGb0MsRUFHcEMsc0JBSG9DLEVBSXBDLG9CQUpvQyxDQUF4QixFQUtYLENBQ0QsdUJBREMsQ0FMVyxDQUFkOztBQVNBRSxPQUFPQyxPQUFQLEdBQWlCLENBQUNDLFNBQUQsRUFBWUMsUUFBWixLQUF5QjtBQUN4QyxRQUFNQyxPQUFPO0FBQ1hDLGFBQVMsS0FERTtBQUVYQyxjQUFVLENBQUMsa0JBQUQsQ0FGQztBQUdYQyxVQUFNO0FBQ0pDLGFBQU8sVUFESDtBQUVKQyxl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QyxJQUFkO0FBQ0EsU0FBT1AsY0FBY3NELFFBQWQsQ0FBdUJKLE1BQXZCLENBQVA7QUFDRCxDQXZFRCIsImZpbGUiOiJzd2FnZ2VyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgU3dhZ2dlclBhcnNlciA9IHJlcXVpcmUoJ3N3YWdnZXItcGFyc2VyJyk7XG5cbmNvbnN0IG1lcmdlID0gcmVxdWlyZShcIi4vdXRpbC9tZXJnZVwiKShbXG4gIFwic3dhZ2dlclwiLFxuICBcInByb2R1Y2VzXCIsXG4gIFwicGF0aHMuKi4qLnBhcmFtZXRlcnNcIixcbiAgXCJwYXRocy4qLiouY29uc3VtZXNcIlxuXSwgW1xuICBcInBhdGhzLiouKi5kZXNjcmlwdGlvblwiXG5dKTtcblxubW9kdWxlLmV4cG9ydHMgPSAoZW5kcG9pbnRzLCBleGlzdGluZykgPT4ge1xuICBjb25zdCBkYXRhID0ge1xuICAgIHN3YWdnZXI6IFwiMi4wXCIsXG4gICAgcHJvZHVjZXM6IFtcImFwcGxpY2F0aW9uL2pzb25cIl0sXG4gICAgaW5mbzoge1xuICAgICAgdGl0bGU6IFwiQXBpIE5hbWVcIixcbiAgICAgIHZlcnNpb246IFwiMC4wLjFcIlxuICAgIH0sXG4gICAgcGF0aHM6IHt9XG4gIH07XG4gIE9iamVjdC5rZXlzKGVuZHBvaW50cykuZm9yRWFjaCgocmVxdWVzdCkgPT4ge1xuICAgIGNvbnN0IHBhcmFtZXRlcnMgPSBlbmRwb2ludHNbcmVxdWVzdF1cbiAgICAgIC5maWx0ZXIocCA9PiBbXCJqc29uXCIsIFwiY29udGV4dFwiXS5pbmRleE9mKHAucG9zaXRpb24pID09PSAtMSlcbiAgICAgIC5tYXAocCA9PiBPYmplY3QuYXNzaWduKFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogcC5uYW1lLFxuICAgICAgICAgIHJlcXVpcmVkOiBwLnJlcXVpcmVkLFxuICAgICAgICAgIHR5cGU6IHAudHlwZSxcbiAgICAgICAgICBmb3JtYXQ6IHAuY29uc3RydWN0b3IubmFtZSxcbiAgICAgICAgICBpbjogcC5wb3NpdGlvblxuICAgICAgICB9LFxuICAgICAgICBwLnJlZ2V4ID09PSB1bmRlZmluZWQgPyB7fSA6IHsgcGF0dGVybjogcC5yZWdleC50b1N0cmluZygpIH1cbiAgICAgICkpO1xuXG4gICAgY29uc3QganNvblBhcmFtcyA9IGVuZHBvaW50c1tyZXF1ZXN0XVxuICAgICAgLmZpbHRlcihwID0+IHAucG9zaXRpb24gPT09IFwianNvblwiKTtcbiAgICBpZiAoanNvblBhcmFtcy5sZW5ndGggIT09IDApIHtcbiAgICAgIHBhcmFtZXRlcnMucHVzaCh7XG4gICAgICAgIGluOiBcImJvZHlcIixcbiAgICAgICAgbmFtZTogXCJib2R5UGFyYW1EYXRhXCIsXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgcmVxdWlyZWQ6IGpzb25QYXJhbXMuZmlsdGVyKHAgPT4gcC5yZXF1aXJlZCkubWFwKHAgPT4gcC5uYW1lKSxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiBqc29uUGFyYW1zLnJlZHVjZSgocHJldiwgcCkgPT4gT2JqZWN0LmFzc2lnbihwcmV2LCB7XG4gICAgICAgICAgICBbcC5uYW1lXTogT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHR5cGU6IHAudHlwZSxcbiAgICAgICAgICAgICAgICBmb3JtYXQ6IHAuY29uc3RydWN0b3IubmFtZVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBwLnJlZ2V4ID09PSB1bmRlZmluZWQgPyB7fSA6IHsgcGF0dGVybjogcC5yZWdleC50b1N0cmluZygpIH1cbiAgICAgICAgICAgIClcbiAgICAgICAgICB9KSwge30pXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gW107XG4gICAgY29uc3QgY29udGV4dFBhcmFtcyA9IGVuZHBvaW50c1tyZXF1ZXN0XVxuICAgICAgLmZpbHRlcihwID0+IHAucG9zaXRpb24gPT09IFwiY29udGV4dFwiKVxuICAgICAgLm1hcChwID0+IHAubmFtZSk7XG4gICAgaWYgKGNvbnRleHRQYXJhbXMubGVuZ3RoICE9PSAwKSB7XG4gICAgICBkZXNjcmlwdGlvbi5wdXNoKGBJbnRlcm5hbGx5IGNvbnRleHRzIGFyZSB1c2VkOiAke2NvbnRleHRQYXJhbXMuam9pbihcIiwgXCIpfWApO1xuICAgIH1cblxuICAgIGRhdGEucGF0aHNbYC8ke3JlcXVlc3Quc3BsaXQoXCIgXCIpWzFdfWBdID0ge1xuICAgICAgW3JlcXVlc3Quc3BsaXQoXCIgXCIpWzBdLnRvTG93ZXJDYXNlKCldOiB7XG4gICAgICAgIGNvbnN1bWVzOiBbXCJhcHBsaWNhdGlvbi9qc29uXCJdLFxuICAgICAgICBkZXNjcmlwdGlvbjogZGVzY3JpcHRpb24uam9pbihcIlxcblwiKSxcbiAgICAgICAgcGFyYW1ldGVycyxcbiAgICAgICAgcmVzcG9uc2VzOiB7XG4gICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiVW5leHBlY3RlZCBFcnJvclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSk7XG5cbiAgY29uc3QgcmVzdWx0ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShleGlzdGluZykpO1xuICBtZXJnZShyZXN1bHQsIGRhdGEpO1xuICByZXR1cm4gU3dhZ2dlclBhcnNlci52YWxpZGF0ZShyZXN1bHQpO1xufTtcbiJdfQ== |
@@ -1,2 +0,2 @@ | ||
module.exports = (needles) => { | ||
module.exports = needles => { | ||
const compiledSearch = needles.map(n => new RegExp(`^${n.replace(/\./g, "\\.").replace(/\*/g, "[^.]+?")}$`)); | ||
@@ -7,5 +7,7 @@ | ||
const selector = hierarchy.join("."); | ||
if (compiledSearch.some(search => selector.match(search))) { | ||
result.push(selector); | ||
} | ||
if (haystack instanceof Object) { | ||
@@ -17,3 +19,3 @@ if (Array.isArray(haystack)) { | ||
} else { | ||
Object.keys(haystack).forEach((key) => { | ||
Object.keys(haystack).forEach(key => { | ||
result.push(...find(haystack[key], hierarchy.concat([key]))); | ||
@@ -23,2 +25,3 @@ }); | ||
} | ||
return result; | ||
@@ -29,1 +32,2 @@ }; | ||
}; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2ZpbmQuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm5lZWRsZXMiLCJjb21waWxlZFNlYXJjaCIsIm1hcCIsIm4iLCJSZWdFeHAiLCJyZXBsYWNlIiwiZmluZCIsImhheXN0YWNrIiwiaGllcmFyY2h5IiwicmVzdWx0Iiwic2VsZWN0b3IiLCJqb2luIiwic29tZSIsInNlYXJjaCIsIm1hdGNoIiwicHVzaCIsIk9iamVjdCIsIkFycmF5IiwiaXNBcnJheSIsImkiLCJsZW5ndGgiLCJjb25jYXQiLCJrZXlzIiwiZm9yRWFjaCIsImtleSJdLCJtYXBwaW5ncyI6IkFBQUFBLE9BQU9DLE9BQVAsR0FBa0JDLE9BQUQsSUFBYTtBQUM1QixRQUFNQyxpQkFBaUJELFFBQVFFLEdBQVIsQ0FBWUMsS0FBSyxJQUFJQyxNQUFKLENBQVksSUFBR0QsRUFBRUUsT0FBRixDQUFVLEtBQVYsRUFBaUIsS0FBakIsRUFBd0JBLE9BQXhCLENBQWdDLEtBQWhDLEVBQXVDLFFBQXZDLENBQWlELEdBQWhFLENBQWpCLENBQXZCOztBQUVBLFFBQU1DLE9BQU8sQ0FBQ0MsUUFBRCxFQUFXQyxZQUFZLEVBQXZCLEtBQThCO0FBQ3pDLFVBQU1DLFNBQVMsRUFBZjtBQUNBLFVBQU1DLFdBQVdGLFVBQVVHLElBQVYsQ0FBZSxHQUFmLENBQWpCOztBQUNBLFFBQUlWLGVBQWVXLElBQWYsQ0FBb0JDLFVBQVVILFNBQVNJLEtBQVQsQ0FBZUQsTUFBZixDQUE5QixDQUFKLEVBQTJEO0FBQ3pESixhQUFPTSxJQUFQLENBQVlMLFFBQVo7QUFDRDs7QUFDRCxRQUFJSCxvQkFBb0JTLE1BQXhCLEVBQWdDO0FBQzlCLFVBQUlDLE1BQU1DLE9BQU4sQ0FBY1gsUUFBZCxDQUFKLEVBQTZCO0FBQzNCLGFBQUssSUFBSVksSUFBSSxDQUFiLEVBQWdCQSxJQUFJWixTQUFTYSxNQUE3QixFQUFxQ0QsS0FBSyxDQUExQyxFQUE2QztBQUMzQ1YsaUJBQU9NLElBQVAsQ0FBWSxHQUFHVCxLQUFLQyxTQUFTWSxDQUFULENBQUwsRUFBa0JYLFVBQVVhLE1BQVYsQ0FBaUIsQ0FBQ0YsQ0FBRCxDQUFqQixDQUFsQixDQUFmO0FBQ0Q7QUFDRixPQUpELE1BSU87QUFDTEgsZUFBT00sSUFBUCxDQUFZZixRQUFaLEVBQXNCZ0IsT0FBdEIsQ0FBK0JDLEdBQUQsSUFBUztBQUNyQ2YsaUJBQU9NLElBQVAsQ0FBWSxHQUFHVCxLQUFLQyxTQUFTaUIsR0FBVCxDQUFMLEVBQW9CaEIsVUFBVWEsTUFBVixDQUFpQixDQUFDRyxHQUFELENBQWpCLENBQXBCLENBQWY7QUFDRCxTQUZEO0FBR0Q7QUFDRjs7QUFDRCxXQUFPZixNQUFQO0FBQ0QsR0FsQkQ7O0FBb0JBLFNBQU9ILElBQVA7QUFDRCxDQXhCRCIsImZpbGUiOiJmaW5kLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSAobmVlZGxlcykgPT4ge1xuICBjb25zdCBjb21waWxlZFNlYXJjaCA9IG5lZWRsZXMubWFwKG4gPT4gbmV3IFJlZ0V4cChgXiR7bi5yZXBsYWNlKC9cXC4vZywgXCJcXFxcLlwiKS5yZXBsYWNlKC9cXCovZywgXCJbXi5dKz9cIil9JGApKTtcblxuICBjb25zdCBmaW5kID0gKGhheXN0YWNrLCBoaWVyYXJjaHkgPSBbXSkgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgIGNvbnN0IHNlbGVjdG9yID0gaGllcmFyY2h5LmpvaW4oXCIuXCIpO1xuICAgIGlmIChjb21waWxlZFNlYXJjaC5zb21lKHNlYXJjaCA9PiBzZWxlY3Rvci5tYXRjaChzZWFyY2gpKSkge1xuICAgICAgcmVzdWx0LnB1c2goc2VsZWN0b3IpO1xuICAgIH1cbiAgICBpZiAoaGF5c3RhY2sgaW5zdGFuY2VvZiBPYmplY3QpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGhheXN0YWNrKSkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGhheXN0YWNrLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goLi4uZmluZChoYXlzdGFja1tpXSwgaGllcmFyY2h5LmNvbmNhdChbaV0pKSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIE9iamVjdC5rZXlzKGhheXN0YWNrKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICByZXN1bHQucHVzaCguLi5maW5kKGhheXN0YWNrW2tleV0sIGhpZXJhcmNoeS5jb25jYXQoW2tleV0pKSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xuXG4gIHJldHVybiBmaW5kO1xufTtcbiJdfQ== |
const get = require("lodash.get"); | ||
const set = require("lodash.set"); | ||
const defaultsdeep = require("lodash.defaultsdeep"); | ||
const Find = require("./find"); | ||
@@ -9,9 +12,9 @@ | ||
const findContains = Find(contains); | ||
return (target, data) => { | ||
defaultsdeep(target, data); | ||
findExact(data).forEach(m => set(target, m, get(data, m))); | ||
findContains(data).forEach((m) => { | ||
findContains(data).forEach(m => { | ||
const current = get(target, m); | ||
const shouldContain = get(data, m); | ||
if ((current || "").indexOf(shouldContain) === -1) { | ||
@@ -23,1 +26,2 @@ set(target, m, [current, shouldContain].filter(e => e !== undefined).join("\n")); | ||
}; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL21lcmdlLmpzIl0sIm5hbWVzIjpbImdldCIsInJlcXVpcmUiLCJzZXQiLCJkZWZhdWx0c2RlZXAiLCJGaW5kIiwibW9kdWxlIiwiZXhwb3J0cyIsImV4YWN0IiwiY29udGFpbnMiLCJmaW5kRXhhY3QiLCJmaW5kQ29udGFpbnMiLCJ0YXJnZXQiLCJkYXRhIiwiZm9yRWFjaCIsIm0iLCJjdXJyZW50Iiwic2hvdWxkQ29udGFpbiIsImluZGV4T2YiLCJmaWx0ZXIiLCJlIiwidW5kZWZpbmVkIiwiam9pbiJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsTUFBTUMsUUFBUSxZQUFSLENBQVo7O0FBQ0EsTUFBTUMsTUFBTUQsUUFBUSxZQUFSLENBQVo7O0FBQ0EsTUFBTUUsZUFBZUYsUUFBUSxxQkFBUixDQUFyQjs7QUFDQSxNQUFNRyxPQUFPSCxRQUFRLFFBQVIsQ0FBYjs7QUFFQUksT0FBT0MsT0FBUCxHQUFpQixDQUFDQyxLQUFELEVBQVFDLFFBQVIsS0FBcUI7QUFDcEMsUUFBTUMsWUFBWUwsS0FBS0csS0FBTCxDQUFsQjtBQUNBLFFBQU1HLGVBQWVOLEtBQUtJLFFBQUwsQ0FBckI7QUFFQSxTQUFPLENBQUNHLE1BQUQsRUFBU0MsSUFBVCxLQUFrQjtBQUN2QlQsaUJBQWFRLE1BQWIsRUFBcUJDLElBQXJCO0FBQ0FILGNBQVVHLElBQVYsRUFBZ0JDLE9BQWhCLENBQXdCQyxLQUFLWixJQUFJUyxNQUFKLEVBQVlHLENBQVosRUFBZWQsSUFBSVksSUFBSixFQUFVRSxDQUFWLENBQWYsQ0FBN0I7QUFDQUosaUJBQWFFLElBQWIsRUFBbUJDLE9BQW5CLENBQTRCQyxDQUFELElBQU87QUFDaEMsWUFBTUMsVUFBVWYsSUFBSVcsTUFBSixFQUFZRyxDQUFaLENBQWhCO0FBQ0EsWUFBTUUsZ0JBQWdCaEIsSUFBSVksSUFBSixFQUFVRSxDQUFWLENBQXRCOztBQUNBLFVBQUksQ0FBQ0MsV0FBVyxFQUFaLEVBQWdCRSxPQUFoQixDQUF3QkQsYUFBeEIsTUFBMkMsQ0FBQyxDQUFoRCxFQUFtRDtBQUNqRGQsWUFBSVMsTUFBSixFQUFZRyxDQUFaLEVBQWUsQ0FBQ0MsT0FBRCxFQUFVQyxhQUFWLEVBQXlCRSxNQUF6QixDQUFnQ0MsS0FBS0EsTUFBTUMsU0FBM0MsRUFBc0RDLElBQXRELENBQTJELElBQTNELENBQWY7QUFDRDtBQUNGLEtBTkQ7QUFPRCxHQVZEO0FBV0QsQ0FmRCIsImZpbGUiOiJtZXJnZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGdldCA9IHJlcXVpcmUoXCJsb2Rhc2guZ2V0XCIpO1xuY29uc3Qgc2V0ID0gcmVxdWlyZShcImxvZGFzaC5zZXRcIik7XG5jb25zdCBkZWZhdWx0c2RlZXAgPSByZXF1aXJlKFwibG9kYXNoLmRlZmF1bHRzZGVlcFwiKTtcbmNvbnN0IEZpbmQgPSByZXF1aXJlKFwiLi9maW5kXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IChleGFjdCwgY29udGFpbnMpID0+IHtcbiAgY29uc3QgZmluZEV4YWN0ID0gRmluZChleGFjdCk7XG4gIGNvbnN0IGZpbmRDb250YWlucyA9IEZpbmQoY29udGFpbnMpO1xuXG4gIHJldHVybiAodGFyZ2V0LCBkYXRhKSA9PiB7XG4gICAgZGVmYXVsdHNkZWVwKHRhcmdldCwgZGF0YSk7XG4gICAgZmluZEV4YWN0KGRhdGEpLmZvckVhY2gobSA9PiBzZXQodGFyZ2V0LCBtLCBnZXQoZGF0YSwgbSkpKTtcbiAgICBmaW5kQ29udGFpbnMoZGF0YSkuZm9yRWFjaCgobSkgPT4ge1xuICAgICAgY29uc3QgY3VycmVudCA9IGdldCh0YXJnZXQsIG0pO1xuICAgICAgY29uc3Qgc2hvdWxkQ29udGFpbiA9IGdldChkYXRhLCBtKTtcbiAgICAgIGlmICgoY3VycmVudCB8fCBcIlwiKS5pbmRleE9mKHNob3VsZENvbnRhaW4pID09PSAtMSkge1xuICAgICAgICBzZXQodGFyZ2V0LCBtLCBbY3VycmVudCwgc2hvdWxkQ29udGFpbl0uZmlsdGVyKGUgPT4gZSAhPT0gdW5kZWZpbmVkKS5qb2luKFwiXFxuXCIpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcbn07XG4iXX0= |
@@ -20,11 +20,17 @@ { | ||
"lambda-tdd": "1.11.15", | ||
"js-gardener": "1.15.0", | ||
"js-gardener": "1.16.0", | ||
"nyc": "11.6.0", | ||
"semantic-release": "15.1.5" | ||
"semantic-release": "15.1.5", | ||
"babel-cli": "7.0.0-beta.3" | ||
}, | ||
"version": "1.12.6", | ||
"version": "1.12.7", | ||
"scripts": { | ||
"test": "node gardener && nyc mocha --recursive", | ||
"test": "npm run clean && npm run gardener && npm run test-simple", | ||
"coveralls": "node ./node_modules/coveralls/bin/coveralls.js < ./coverage/lcov.info", | ||
"semantic-release": "semantic-release" | ||
"semantic-release": "npm run clean-build && semantic-release", | ||
"clean": "rm -rf lib", | ||
"build": "npx babel src --out-dir lib --source-maps inline --copy-files --include-dotfiles", | ||
"clean-build": "npm run clean && npm run build", | ||
"test-simple": "nyc mocha --recursive", | ||
"gardener": "node gardener" | ||
}, | ||
@@ -80,3 +86,4 @@ "homepage": "https://github.com/simlu/lambda-serverless-api#readme", | ||
"coverage/*", | ||
"flow-typed/*" | ||
"flow-typed/*", | ||
"lib/*" | ||
], | ||
@@ -83,0 +90,0 @@ "reporter": [ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
51664
8
298