@faceteer/cdk
Version:
CDK 2.0 constructs and helpers that make composing a Lambda powered service easier.
22 lines (21 loc) • 907 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.validatePathParameters = exports.getParametersFromRoute = void 0;
const regex = /\{[a-zA-Z_$0-9+]+\}/g;
const getParametersFromRoute = (route) => {
const matched = route.match(regex);
if (!matched)
return [];
const params = matched.map((param) => param.substring(1, param.length - 1).replace('+', ''));
return params;
};
exports.getParametersFromRoute = getParametersFromRoute;
const validatePathParameters = (route, parameters) => {
const routeParameters = (0, exports.getParametersFromRoute)(route);
routeParameters.sort();
parameters.sort();
if (JSON.stringify(routeParameters) !== JSON.stringify(parameters)) {
throw new Error(`The Api route ${route} does not have properly configured path parameters`);
}
};
exports.validatePathParameters = validatePathParameters;