UNPKG

turtle-express

Version:

`turtle-express` is kinda a framework or a library based on `express.js` with an opinionated express router with type safety and schema validation with zod. Also many [more features](https://github.com/mm-ninja-turtles/turtle-express/discussions/7) planni

45 lines 1.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createPath = void 0; const create_handler_1 = require("../handler/create-handler"); function createPath(_path, _options) { const _handlers = []; return { _path, _handlers, _openApi: _options?.openApi, path: (_subPath, _subOptions) => { const path = (_path + _subPath); return createPath(path, _subOptions); }, handler(_handlerOptions) { // generate handler const _handlerInfo = (0, create_handler_1.createHandler)(_handlerOptions); // add handler to path context _handlers.push({ _id: _handlerInfo._id, _method: _handlerOptions.method, _middlewares: [], _getOpenApiSchemas: _handlerInfo._getOpenApiSchemas, _getOpenApiPathItem: _handlerInfo._getOpenApiPathItem, }); // get currently pushed handler const currentHandler = _handlers.find((handle) => handle._id === _handlerInfo._id); // if currently push handler exist if (currentHandler) { // 1. add path level middlewares to handler first _options?.middlewares?.forEach((middleware) => { currentHandler._middlewares.push(middleware); }); // 2. add handler level middlewares _handlerInfo._middlewares.forEach((middleware) => { currentHandler._middlewares.push(middleware); }); // 3. add handler to path context currentHandler._middlewares.push(_handlerInfo._handlerFunc); } }, }; } exports.createPath = createPath; //# sourceMappingURL=create-path.js.map