lambda-serverless-api
Advanced tools
Comparing version 11.1.1 to 11.2.0
import assert from 'assert'; | ||
import get from 'lodash.get'; | ||
import { ApiErrorFn } from '../response/api-error.js'; | ||
import { VERSION_REGEX } from '../resources/format.js'; | ||
@@ -19,3 +20,4 @@ const positionMapping = { | ||
getter = null, | ||
lowercase = false | ||
lowercase = false, | ||
deprecated = null | ||
} = {}) { | ||
@@ -27,2 +29,4 @@ assert(Object.keys(positionMapping).includes(position), `Unknown Parameter Position: ${position}`); | ||
); | ||
assert(deprecated === null | ||
|| VERSION_REGEX.test(deprecated), `Incorrect version format for Param "${name}"`); | ||
this.nameOriginal = name; | ||
@@ -36,2 +40,3 @@ this.name = name.endsWith('+') ? name.slice(0, name.length - 1) : name; | ||
this.lowercase = lowercase; | ||
this.deprecated = deprecated; | ||
this.getter = getter; | ||
@@ -38,0 +43,0 @@ this.type = null; |
@@ -75,2 +75,10 @@ import get from 'lodash.get'; | ||
} | ||
const pDepr = get(request, 'params', []).find((p) => ( | ||
p.deprecated !== null | ||
&& test(`${p.deprecated} <= ${apiVersion}`) | ||
&& p.get(event) !== undefined | ||
)); | ||
if (pDepr) { | ||
throw ApiErrorFn(`Param "${pDepr.name}" deprecated since version "${pDepr.deprecated}"`, 403); | ||
} | ||
const apiVersionMeta = versions[apiVersion]; | ||
@@ -77,0 +85,0 @@ if (apiVersionMeta.isDeprecated) { |
@@ -41,3 +41,3 @@ { | ||
}, | ||
"version": "11.1.1", | ||
"version": "11.2.0", | ||
"scripts": { | ||
@@ -44,0 +44,0 @@ "clean": "rm -rf lib", |
102398
3002