UNPKG

aspida-mock

Version:

TypeScript friendly RESTful API mock for aspida

38 lines 1.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.hasMockHandler = void 0; const utils_1 = require("./utils"); const findHandler = (path, method, routes) => routes.find(route => (0, utils_1.createPathRegExp)(route.path).test(path) && route.methods[method.toLowerCase()]); const hasMockHandler = (path, method, routes) => { var _a; return !!((_a = findHandler(path, method, routes)) === null || _a === void 0 ? void 0 : _a.methods[method.toLowerCase()]); }; exports.hasMockHandler = hasMockHandler; exports.default = async (config, routes, middleware) => { const route = findHandler(config.path, config.method, routes); const controller = route === null || route === void 0 ? void 0 : route.methods[config.method.toLowerCase()]; if (!route || !controller) return; let params = { ...config, values: (0, utils_1.createValues)(route.path, config.path), }; if (middleware) { for (let i = 0; i < middleware.length; i += 1) { const { isNext, response, config } = await new Promise(resolve => { middleware[i](params, res => { resolve({ isNext: false, response: res }); }, req => { resolve({ isNext: true, config: req }); }); }); if (isNext) { params = config || params; } else { return (0, utils_1.copyData)((response instanceof Promise ? await response : response)); } } } const res = controller(params); return (0, utils_1.copyData)((res instanceof Promise ? await res : res)); }; //# sourceMappingURL=callMockHandler.js.map