UNPKG

@vulcan-sql/build

Version:

VulcanSQL package for building projects

38 lines 1.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GeneratePathParameters = void 0; const tslib_1 = require("tslib"); const core_1 = require("@vulcan-sql/core"); const middleware_1 = require("./middleware"); // /user/{id} => {request: [{fieldName: 'id', fieldIn: 'path' ....}]} class GeneratePathParameters extends middleware_1.SchemaParserMiddleware { handle(schema, next) { return tslib_1.__awaiter(this, void 0, void 0, function* () { yield next(); const pattern = /:([^/]+)/g; const pathParameters = []; let param = pattern.exec(schema.urlPath || ''); while (param) { pathParameters.push(param[1]); param = pattern.exec(schema.urlPath || ''); } const request = schema.request || []; pathParameters .filter((param) => !request.some((req) => req.fieldName === param)) .forEach((param) => request.push({ fieldName: param, fieldIn: core_1.FieldInType.PATH, type: core_1.FieldDataType.STRING, validators: [ { name: 'required', args: {}, }, ], })); schema.request = request; }); } } exports.GeneratePathParameters = GeneratePathParameters; //# sourceMappingURL=generatePathParameters.js.map