UNPKG

1.4 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.createRoute = void 0;
4/* eslint-disable @typescript-eslint/naming-convention */
5const route_1 = require("./types/route");
6const serverless_1 = require("./utils/serverless");
7const with_serverless_1 = require("./with-serverless");
8exports.createRoute = () => {
9 let route = JSON.parse('{}');
10 const middleware = [];
11 route.middleware = middleware;
12 /**
13 * Generate wrapper functions for all http methods
14 */
15 const genFunction = (key) => (fn, opts) => {
16 if (!fn)
17 throw new Error('please provide a function to method');
18 route[key] = {
19 handler: fn,
20 middleware: (opts === null || opts === void 0 ? void 0 : opts.middleware) || [],
21 };
22 if (serverless_1.isServerless()) {
23 route = with_serverless_1.withServerless(route);
24 }
25 };
26 const wrappers = JSON.parse('{}');
27 [...route_1.Methods].forEach((method) => {
28 wrappers[method] = genFunction(method);
29 });
30 if (serverless_1.isServerless()) {
31 route = with_serverless_1.withServerless(route);
32 }
33 return Object.assign({ route, useMiddleware: (mw) => {
34 if (!Array.isArray(mw)) {
35 middleware.push(mw);
36 return;
37 }
38 middleware.push(...mw);
39 } }, wrappers);
40};