1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.createRoute = void 0;
|
4 |
|
5 | const route_1 = require("./types/route");
|
6 | const serverless_1 = require("./utils/serverless");
|
7 | const with_serverless_1 = require("./with-serverless");
|
8 | exports.createRoute = () => {
|
9 | let route = JSON.parse('{}');
|
10 | const middleware = [];
|
11 | route.middleware = middleware;
|
12 | |
13 |
|
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 | };
|