@devbro/neko-router 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -0
- package/dist/CompiledRoute.d.mts +23 -0
- package/dist/CompiledRoute.d.ts +23 -0
- package/dist/CompiledRoute.js +162 -0
- package/dist/CompiledRoute.js.map +1 -0
- package/dist/CompiledRoute.mjs +138 -0
- package/dist/CompiledRoute.mjs.map +1 -0
- package/dist/Controller.d.mts +38 -0
- package/dist/Controller.d.ts +38 -0
- package/dist/Controller.js +146 -0
- package/dist/Controller.js.map +1 -0
- package/dist/Controller.mjs +115 -0
- package/dist/Controller.mjs.map +1 -0
- package/dist/Middleware-BjWt0Uml.d.mts +29 -0
- package/dist/Middleware-BjWt0Uml.d.ts +29 -0
- package/dist/Middleware.d.mts +2 -0
- package/dist/Middleware.d.ts +2 -0
- package/dist/Middleware.js +35 -0
- package/dist/Middleware.js.map +1 -0
- package/dist/Middleware.mjs +11 -0
- package/dist/Middleware.mjs.map +1 -0
- package/dist/MiddlewareFactory.d.mts +8 -0
- package/dist/MiddlewareFactory.d.ts +8 -0
- package/dist/MiddlewareFactory.js +42 -0
- package/dist/MiddlewareFactory.js.map +1 -0
- package/dist/MiddlewareFactory.mjs +18 -0
- package/dist/MiddlewareFactory.mjs.map +1 -0
- package/dist/Route.d.mts +39 -0
- package/dist/Route.d.ts +39 -0
- package/dist/Route.js +135 -0
- package/dist/Route.js.map +1 -0
- package/dist/Route.mjs +111 -0
- package/dist/Route.mjs.map +1 -0
- package/dist/Router.d.mts +17 -0
- package/dist/Router.d.ts +17 -0
- package/dist/Router.js +106 -0
- package/dist/Router.js.map +1 -0
- package/dist/Router.mjs +72 -0
- package/dist/Router.mjs.map +1 -0
- package/dist/helpers.d.mts +6 -0
- package/dist/helpers.d.ts +6 -0
- package/dist/helpers.js +70 -0
- package/dist/helpers.js.map +1 -0
- package/dist/helpers.mjs +46 -0
- package/dist/helpers.mjs.map +1 -0
- package/dist/index.d.mts +8 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +9 -0
- package/dist/index.mjs.map +1 -0
- package/dist/types.d.mts +2 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.js +17 -0
- package/dist/types.js.map +1 -0
- package/dist/types.mjs +1 -0
- package/dist/types.mjs.map +1 -0
- package/package.json +63 -0
package/dist/Route.mjs
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
class Route {
|
|
2
|
+
constructor(methods, path, handler) {
|
|
3
|
+
this.methods = methods;
|
|
4
|
+
this.path = path;
|
|
5
|
+
this.handler = handler;
|
|
6
|
+
this.middlewares = [];
|
|
7
|
+
this.urlRegex = this.pathToRegex(path);
|
|
8
|
+
}
|
|
9
|
+
pathToRegex(path) {
|
|
10
|
+
const lex = this.lexUrlPath(path);
|
|
11
|
+
return this.tokensToRegex(lex);
|
|
12
|
+
}
|
|
13
|
+
lexUrlPath(path) {
|
|
14
|
+
const tokens = [];
|
|
15
|
+
let i = 0;
|
|
16
|
+
while (i < path.length) {
|
|
17
|
+
const char = path[i];
|
|
18
|
+
if (char === "/") {
|
|
19
|
+
tokens.push({ type: "SLASH", value: "/" });
|
|
20
|
+
i++;
|
|
21
|
+
} else if (char === ":") {
|
|
22
|
+
let start = i + 1;
|
|
23
|
+
while (start < path.length && /[a-zA-Z0-9_]/.test(path[start])) {
|
|
24
|
+
start++;
|
|
25
|
+
}
|
|
26
|
+
tokens.push({ type: "PARAM", value: path.slice(i + 1, start) });
|
|
27
|
+
i = start;
|
|
28
|
+
} else if (char === "*") {
|
|
29
|
+
let start = i + 1;
|
|
30
|
+
while (start < path.length && /[a-zA-Z0-9_]/.test(path[start])) {
|
|
31
|
+
start++;
|
|
32
|
+
}
|
|
33
|
+
tokens.push({ type: "WILDCARD", value: path.slice(i + 1, start) });
|
|
34
|
+
i = start;
|
|
35
|
+
} else {
|
|
36
|
+
let start = i;
|
|
37
|
+
while (start < path.length && !["/", ":", "*"].includes(path[start])) {
|
|
38
|
+
start++;
|
|
39
|
+
}
|
|
40
|
+
tokens.push({ type: "TEXT", value: path.slice(i, start) });
|
|
41
|
+
i = start;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return tokens;
|
|
45
|
+
}
|
|
46
|
+
tokensToRegex(tokens) {
|
|
47
|
+
const regexParts = [];
|
|
48
|
+
for (const token of tokens) {
|
|
49
|
+
if (token.type === "SLASH") {
|
|
50
|
+
regexParts.push("\\/");
|
|
51
|
+
} else if (token.type === "PARAM") {
|
|
52
|
+
regexParts.push(`(?<${token.value}>[^\\/]+)`);
|
|
53
|
+
} else if (token.type === "WILDCARD") {
|
|
54
|
+
regexParts.push("(.+)");
|
|
55
|
+
} else if (token.type === "TEXT") {
|
|
56
|
+
regexParts.push(token.value.replace(/[-\/\\^$.*+?()[\]{}|]/g, "\\$&"));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (regexParts.length > 0 && regexParts[regexParts.length - 1] === "\\/") {
|
|
60
|
+
regexParts[regexParts.length - 1] = "\\/?";
|
|
61
|
+
} else {
|
|
62
|
+
regexParts.push("\\/?");
|
|
63
|
+
}
|
|
64
|
+
return new RegExp(`^${regexParts.join("")}$`);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* to evaludate if request is a match for this route
|
|
68
|
+
* @param request http request
|
|
69
|
+
* @returns return true if route is a match for this request
|
|
70
|
+
*/
|
|
71
|
+
test(request) {
|
|
72
|
+
if (this.methods.indexOf(request.method) === -1) {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
const url = new URL(request.url || "/", "http://localhost");
|
|
76
|
+
return this.urlRegex.test(url.pathname);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* returns details of the match, otherwise it returns false
|
|
80
|
+
* @param request the request to match
|
|
81
|
+
* @returns object cotaining details of match including matched params
|
|
82
|
+
*/
|
|
83
|
+
match(request) {
|
|
84
|
+
if (this.methods.indexOf(request.method) === -1) {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
const url = new URL(request.url || "/", "http://localhost");
|
|
88
|
+
const r = this.urlRegex.exec(url.pathname);
|
|
89
|
+
if (!r) {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
return {
|
|
93
|
+
url,
|
|
94
|
+
params: r.groups || {}
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
addMiddleware(middlewares) {
|
|
98
|
+
this.middlewares = this.middlewares.concat(middlewares);
|
|
99
|
+
return this;
|
|
100
|
+
}
|
|
101
|
+
getMiddlewares() {
|
|
102
|
+
return this.middlewares;
|
|
103
|
+
}
|
|
104
|
+
callHanlder(request, response) {
|
|
105
|
+
return this.handler(request, response);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
export {
|
|
109
|
+
Route
|
|
110
|
+
};
|
|
111
|
+
//# sourceMappingURL=Route.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/Route.ts"],"sourcesContent":["import { Middleware } from './Middleware';\nimport { MiddlewareFactory } from './MiddlewareFactory';\nimport { HandlerType, MiddlewareProvider } from './types';\nimport { LexerToken, Request, Response } from './types';\n\nexport class Route {\n private middlewares: MiddlewareProvider[] = [];\n private urlRegex: RegExp;\n constructor(\n public methods: string[],\n public path: string,\n public handler: HandlerType\n ) {\n this.urlRegex = this.pathToRegex(path);\n }\n pathToRegex(path: string): RegExp {\n const lex = this.lexUrlPath(path);\n return this.tokensToRegex(lex);\n }\n\n lexUrlPath(path: string) {\n const tokens = [];\n let i = 0;\n\n while (i < path.length) {\n const char = path[i];\n\n if (char === '/') {\n tokens.push({ type: 'SLASH', value: '/' });\n i++;\n } else if (char === ':') {\n let start = i + 1;\n while (start < path.length && /[a-zA-Z0-9_]/.test(path[start])) {\n start++;\n }\n tokens.push({ type: 'PARAM', value: path.slice(i + 1, start) });\n i = start;\n } else if (char === '*') {\n let start = i + 1;\n while (start < path.length && /[a-zA-Z0-9_]/.test(path[start])) {\n start++;\n }\n tokens.push({ type: 'WILDCARD', value: path.slice(i + 1, start) });\n i = start;\n } else {\n let start = i;\n while (start < path.length && !['/', ':', '*'].includes(path[start])) {\n start++;\n }\n tokens.push({ type: 'TEXT', value: path.slice(i, start) });\n i = start;\n }\n }\n\n return tokens;\n }\n tokensToRegex(tokens: LexerToken[]) {\n const regexParts = [];\n\n for (const token of tokens) {\n if (token.type === 'SLASH') {\n regexParts.push('\\\\/');\n } else if (token.type === 'PARAM') {\n regexParts.push(`(?<${token.value}>[^\\\\/]+)`);\n } else if (token.type === 'WILDCARD') {\n regexParts.push('(.+)');\n } else if (token.type === 'TEXT') {\n regexParts.push(token.value.replace(/[-\\/\\\\^$.*+?()[\\]{}|]/g, '\\\\$&'));\n }\n }\n\n if (regexParts.length > 0 && regexParts[regexParts.length - 1] === '\\\\/') {\n regexParts[regexParts.length - 1] = '\\\\/?';\n } else {\n regexParts.push('\\\\/?');\n }\n\n return new RegExp(`^${regexParts.join('')}$`);\n }\n\n /**\n * to evaludate if request is a match for this route\n * @param request http request\n * @returns return true if route is a match for this request\n */\n test(request: Request) {\n if (this.methods.indexOf(request.method) === -1) {\n return false;\n }\n const url = new URL(request.url || '/', 'http://localhost');\n\n return this.urlRegex.test(url.pathname);\n }\n\n /**\n * returns details of the match, otherwise it returns false\n * @param request the request to match\n * @returns object cotaining details of match including matched params\n */\n match(request: Request) {\n if (this.methods.indexOf(request.method) === -1) {\n return false;\n }\n\n const url = new URL(request.url || '/', 'http://localhost');\n\n const r = this.urlRegex.exec(url.pathname);\n if (!r) {\n return false;\n }\n\n return {\n url,\n params: r.groups || {},\n };\n }\n\n addMiddleware(middlewares: MiddlewareProvider | MiddlewareProvider[]) {\n this.middlewares = this.middlewares.concat(middlewares);\n return this;\n }\n\n getMiddlewares() {\n return this.middlewares;\n }\n\n callHanlder(request: Request, response: Response) {\n return this.handler(request, response);\n }\n}\n"],"mappings":"AAKO,MAAM,MAAM;AAAA,EAGjB,YACS,SACA,MACA,SACP;AAHO;AACA;AACA;AALT,SAAQ,cAAoC,CAAC;AAO3C,SAAK,WAAW,KAAK,YAAY,IAAI;AAAA,EACvC;AAAA,EACA,YAAY,MAAsB;AAChC,UAAM,MAAM,KAAK,WAAW,IAAI;AAChC,WAAO,KAAK,cAAc,GAAG;AAAA,EAC/B;AAAA,EAEA,WAAW,MAAc;AACvB,UAAM,SAAS,CAAC;AAChB,QAAI,IAAI;AAER,WAAO,IAAI,KAAK,QAAQ;AACtB,YAAM,OAAO,KAAK,CAAC;AAEnB,UAAI,SAAS,KAAK;AAChB,eAAO,KAAK,EAAE,MAAM,SAAS,OAAO,IAAI,CAAC;AACzC;AAAA,MACF,WAAW,SAAS,KAAK;AACvB,YAAI,QAAQ,IAAI;AAChB,eAAO,QAAQ,KAAK,UAAU,eAAe,KAAK,KAAK,KAAK,CAAC,GAAG;AAC9D;AAAA,QACF;AACA,eAAO,KAAK,EAAE,MAAM,SAAS,OAAO,KAAK,MAAM,IAAI,GAAG,KAAK,EAAE,CAAC;AAC9D,YAAI;AAAA,MACN,WAAW,SAAS,KAAK;AACvB,YAAI,QAAQ,IAAI;AAChB,eAAO,QAAQ,KAAK,UAAU,eAAe,KAAK,KAAK,KAAK,CAAC,GAAG;AAC9D;AAAA,QACF;AACA,eAAO,KAAK,EAAE,MAAM,YAAY,OAAO,KAAK,MAAM,IAAI,GAAG,KAAK,EAAE,CAAC;AACjE,YAAI;AAAA,MACN,OAAO;AACL,YAAI,QAAQ;AACZ,eAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,KAAK,KAAK,GAAG,EAAE,SAAS,KAAK,KAAK,CAAC,GAAG;AACpE;AAAA,QACF;AACA,eAAO,KAAK,EAAE,MAAM,QAAQ,OAAO,KAAK,MAAM,GAAG,KAAK,EAAE,CAAC;AACzD,YAAI;AAAA,MACN;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EACA,cAAc,QAAsB;AAClC,UAAM,aAAa,CAAC;AAEpB,eAAW,SAAS,QAAQ;AAC1B,UAAI,MAAM,SAAS,SAAS;AAC1B,mBAAW,KAAK,KAAK;AAAA,MACvB,WAAW,MAAM,SAAS,SAAS;AACjC,mBAAW,KAAK,MAAM,MAAM,KAAK,WAAW;AAAA,MAC9C,WAAW,MAAM,SAAS,YAAY;AACpC,mBAAW,KAAK,MAAM;AAAA,MACxB,WAAW,MAAM,SAAS,QAAQ;AAChC,mBAAW,KAAK,MAAM,MAAM,QAAQ,0BAA0B,MAAM,CAAC;AAAA,MACvE;AAAA,IACF;AAEA,QAAI,WAAW,SAAS,KAAK,WAAW,WAAW,SAAS,CAAC,MAAM,OAAO;AACxE,iBAAW,WAAW,SAAS,CAAC,IAAI;AAAA,IACtC,OAAO;AACL,iBAAW,KAAK,MAAM;AAAA,IACxB;AAEA,WAAO,IAAI,OAAO,IAAI,WAAW,KAAK,EAAE,CAAC,GAAG;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,KAAK,SAAkB;AACrB,QAAI,KAAK,QAAQ,QAAQ,QAAQ,MAAM,MAAM,IAAI;AAC/C,aAAO;AAAA,IACT;AACA,UAAM,MAAM,IAAI,IAAI,QAAQ,OAAO,KAAK,kBAAkB;AAE1D,WAAO,KAAK,SAAS,KAAK,IAAI,QAAQ;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,SAAkB;AACtB,QAAI,KAAK,QAAQ,QAAQ,QAAQ,MAAM,MAAM,IAAI;AAC/C,aAAO;AAAA,IACT;AAEA,UAAM,MAAM,IAAI,IAAI,QAAQ,OAAO,KAAK,kBAAkB;AAE1D,UAAM,IAAI,KAAK,SAAS,KAAK,IAAI,QAAQ;AACzC,QAAI,CAAC,GAAG;AACN,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,MACL;AAAA,MACA,QAAQ,EAAE,UAAU,CAAC;AAAA,IACvB;AAAA,EACF;AAAA,EAEA,cAAc,aAAwD;AACpE,SAAK,cAAc,KAAK,YAAY,OAAO,WAAW;AACtD,WAAO;AAAA,EACT;AAAA,EAEA,iBAAiB;AACf,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,YAAY,SAAkB,UAAoB;AAChD,WAAO,KAAK,QAAQ,SAAS,QAAQ;AAAA,EACvC;AACF;","names":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { CompiledRoute } from './CompiledRoute.mjs';
|
|
2
|
+
import { BaseController } from './Controller.mjs';
|
|
3
|
+
import { Route } from './Route.mjs';
|
|
4
|
+
import { H as HandlerType, M as MiddlewareProvider, R as Request, a as Response } from './Middleware-BjWt0Uml.mjs';
|
|
5
|
+
import 'http';
|
|
6
|
+
|
|
7
|
+
declare class Router {
|
|
8
|
+
routes: Route[];
|
|
9
|
+
addRoute(methods: string[], path: string, handler: HandlerType): Route;
|
|
10
|
+
addController(controller: typeof BaseController): void;
|
|
11
|
+
private middlewares;
|
|
12
|
+
addGlobalMiddleware(middlewares: MiddlewareProvider | MiddlewareProvider[]): void;
|
|
13
|
+
resolve(request: Request): Route | undefined;
|
|
14
|
+
getCompiledRoute(request: Request, response: Response): CompiledRoute | undefined;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export { Router };
|
package/dist/Router.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { CompiledRoute } from './CompiledRoute.js';
|
|
2
|
+
import { BaseController } from './Controller.js';
|
|
3
|
+
import { Route } from './Route.js';
|
|
4
|
+
import { H as HandlerType, M as MiddlewareProvider, R as Request, a as Response } from './Middleware-BjWt0Uml.js';
|
|
5
|
+
import 'http';
|
|
6
|
+
|
|
7
|
+
declare class Router {
|
|
8
|
+
routes: Route[];
|
|
9
|
+
addRoute(methods: string[], path: string, handler: HandlerType): Route;
|
|
10
|
+
addController(controller: typeof BaseController): void;
|
|
11
|
+
private middlewares;
|
|
12
|
+
addGlobalMiddleware(middlewares: MiddlewareProvider | MiddlewareProvider[]): void;
|
|
13
|
+
resolve(request: Request): Route | undefined;
|
|
14
|
+
getCompiledRoute(request: Request, response: Response): CompiledRoute | undefined;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export { Router };
|
package/dist/Router.js
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var __async = (__this, __arguments, generator) => {
|
|
30
|
+
return new Promise((resolve, reject) => {
|
|
31
|
+
var fulfilled = (value) => {
|
|
32
|
+
try {
|
|
33
|
+
step(generator.next(value));
|
|
34
|
+
} catch (e) {
|
|
35
|
+
reject(e);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var rejected = (value) => {
|
|
39
|
+
try {
|
|
40
|
+
step(generator.throw(value));
|
|
41
|
+
} catch (e) {
|
|
42
|
+
reject(e);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
46
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
var Router_exports = {};
|
|
50
|
+
__export(Router_exports, {
|
|
51
|
+
Router: () => Router
|
|
52
|
+
});
|
|
53
|
+
module.exports = __toCommonJS(Router_exports);
|
|
54
|
+
var import_CompiledRoute = require("./CompiledRoute");
|
|
55
|
+
var import_Route = require("./Route");
|
|
56
|
+
var import_path = __toESM(require("path"));
|
|
57
|
+
class Router {
|
|
58
|
+
constructor() {
|
|
59
|
+
this.routes = [];
|
|
60
|
+
this.middlewares = [];
|
|
61
|
+
}
|
|
62
|
+
addRoute(methods, path2, handler) {
|
|
63
|
+
const route = new import_Route.Route(methods, path2, handler);
|
|
64
|
+
this.routes.push(route);
|
|
65
|
+
return route;
|
|
66
|
+
}
|
|
67
|
+
addController(controller) {
|
|
68
|
+
const basePath = controller.basePath || "";
|
|
69
|
+
for (const route of controller.routes) {
|
|
70
|
+
const urlPath = import_path.default.join(basePath, route.path);
|
|
71
|
+
this.addRoute(route.methods, urlPath, (req, res) => __async(this, null, function* () {
|
|
72
|
+
const controllerInstance = controller.getInstance();
|
|
73
|
+
return yield controllerInstance[route.handler]();
|
|
74
|
+
})).addMiddleware([...controller.baseMiddlewares, ...route.middlewares]);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
addGlobalMiddleware(middlewares) {
|
|
78
|
+
this.middlewares = this.middlewares.concat(middlewares);
|
|
79
|
+
}
|
|
80
|
+
resolve(request) {
|
|
81
|
+
for (const route of this.routes) {
|
|
82
|
+
if (route.test(request)) {
|
|
83
|
+
return route;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return void 0;
|
|
87
|
+
}
|
|
88
|
+
getCompiledRoute(request, response) {
|
|
89
|
+
const route = this.resolve(request);
|
|
90
|
+
if (!route) {
|
|
91
|
+
return void 0;
|
|
92
|
+
}
|
|
93
|
+
const match = route.match(request);
|
|
94
|
+
if (!match) {
|
|
95
|
+
return void 0;
|
|
96
|
+
}
|
|
97
|
+
request.query = Object.fromEntries(match.url.searchParams.entries());
|
|
98
|
+
request.params = match.params;
|
|
99
|
+
return new import_CompiledRoute.CompiledRoute(route, match, request, response, this.middlewares);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
103
|
+
0 && (module.exports = {
|
|
104
|
+
Router
|
|
105
|
+
});
|
|
106
|
+
//# sourceMappingURL=Router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/Router.ts"],"sourcesContent":["import { CompiledRoute } from './CompiledRoute';\nimport { BaseController } from './Controller';\nimport { Middleware } from './Middleware';\nimport { MiddlewareFactory } from './MiddlewareFactory';\nimport { Route } from './Route';\nimport { HandlerType, MiddlewareProvider } from './types';\nimport { LexerToken, Request, Response } from './types';\nimport path from 'path';\n\nexport class Router {\n routes: Route[] = [];\n addRoute(methods: string[], path: string, handler: HandlerType) {\n const route: Route = new Route(methods, path, handler);\n this.routes.push(route);\n return route;\n }\n\n addController(controller: typeof BaseController) {\n const basePath = controller.basePath || '';\n for (const route of controller.routes) {\n const urlPath = path.join(basePath, route.path);\n this.addRoute(route.methods, urlPath, async (req: Request, res: Response) => {\n const controllerInstance = controller.getInstance();\n // @ts-ignore\n return await controllerInstance[route.handler]();\n }).addMiddleware([...controller.baseMiddlewares, ...route.middlewares]);\n }\n }\n\n private middlewares: MiddlewareProvider[] = [];\n addGlobalMiddleware(middlewares: MiddlewareProvider | MiddlewareProvider[]) {\n this.middlewares = this.middlewares.concat(middlewares);\n }\n\n resolve(request: Request): Route | undefined {\n for (const route of this.routes) {\n if (route.test(request)) {\n return route;\n }\n }\n return undefined;\n }\n\n getCompiledRoute(request: Request, response: Response) {\n const route = this.resolve(request);\n if (!route) {\n return undefined;\n }\n const match = route.match(request);\n if (!match) {\n return undefined;\n }\n\n request.query = Object.fromEntries(match.url.searchParams.entries());\n request.params = match.params;\n return new CompiledRoute(route, match, request, response, this.middlewares);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAA8B;AAI9B,mBAAsB;AAGtB,kBAAiB;AAEV,MAAM,OAAO;AAAA,EAAb;AACL,kBAAkB,CAAC;AAmBnB,SAAQ,cAAoC,CAAC;AAAA;AAAA,EAlB7C,SAAS,SAAmBA,OAAc,SAAsB;AAC9D,UAAM,QAAe,IAAI,mBAAM,SAASA,OAAM,OAAO;AACrD,SAAK,OAAO,KAAK,KAAK;AACtB,WAAO;AAAA,EACT;AAAA,EAEA,cAAc,YAAmC;AAC/C,UAAM,WAAW,WAAW,YAAY;AACxC,eAAW,SAAS,WAAW,QAAQ;AACrC,YAAM,UAAU,YAAAA,QAAK,KAAK,UAAU,MAAM,IAAI;AAC9C,WAAK,SAAS,MAAM,SAAS,SAAS,CAAO,KAAc,QAAkB;AAC3E,cAAM,qBAAqB,WAAW,YAAY;AAElD,eAAO,MAAM,mBAAmB,MAAM,OAAO,EAAE;AAAA,MACjD,EAAC,EAAE,cAAc,CAAC,GAAG,WAAW,iBAAiB,GAAG,MAAM,WAAW,CAAC;AAAA,IACxE;AAAA,EACF;AAAA,EAGA,oBAAoB,aAAwD;AAC1E,SAAK,cAAc,KAAK,YAAY,OAAO,WAAW;AAAA,EACxD;AAAA,EAEA,QAAQ,SAAqC;AAC3C,eAAW,SAAS,KAAK,QAAQ;AAC/B,UAAI,MAAM,KAAK,OAAO,GAAG;AACvB,eAAO;AAAA,MACT;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,iBAAiB,SAAkB,UAAoB;AACrD,UAAM,QAAQ,KAAK,QAAQ,OAAO;AAClC,QAAI,CAAC,OAAO;AACV,aAAO;AAAA,IACT;AACA,UAAM,QAAQ,MAAM,MAAM,OAAO;AACjC,QAAI,CAAC,OAAO;AACV,aAAO;AAAA,IACT;AAEA,YAAQ,QAAQ,OAAO,YAAY,MAAM,IAAI,aAAa,QAAQ,CAAC;AACnE,YAAQ,SAAS,MAAM;AACvB,WAAO,IAAI,mCAAc,OAAO,OAAO,SAAS,UAAU,KAAK,WAAW;AAAA,EAC5E;AACF;","names":["path"]}
|
package/dist/Router.mjs
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
var __async = (__this, __arguments, generator) => {
|
|
2
|
+
return new Promise((resolve, reject) => {
|
|
3
|
+
var fulfilled = (value) => {
|
|
4
|
+
try {
|
|
5
|
+
step(generator.next(value));
|
|
6
|
+
} catch (e) {
|
|
7
|
+
reject(e);
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
var rejected = (value) => {
|
|
11
|
+
try {
|
|
12
|
+
step(generator.throw(value));
|
|
13
|
+
} catch (e) {
|
|
14
|
+
reject(e);
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
18
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
import { CompiledRoute } from "./CompiledRoute";
|
|
22
|
+
import { Route } from "./Route";
|
|
23
|
+
import path from "path";
|
|
24
|
+
class Router {
|
|
25
|
+
constructor() {
|
|
26
|
+
this.routes = [];
|
|
27
|
+
this.middlewares = [];
|
|
28
|
+
}
|
|
29
|
+
addRoute(methods, path2, handler) {
|
|
30
|
+
const route = new Route(methods, path2, handler);
|
|
31
|
+
this.routes.push(route);
|
|
32
|
+
return route;
|
|
33
|
+
}
|
|
34
|
+
addController(controller) {
|
|
35
|
+
const basePath = controller.basePath || "";
|
|
36
|
+
for (const route of controller.routes) {
|
|
37
|
+
const urlPath = path.join(basePath, route.path);
|
|
38
|
+
this.addRoute(route.methods, urlPath, (req, res) => __async(this, null, function* () {
|
|
39
|
+
const controllerInstance = controller.getInstance();
|
|
40
|
+
return yield controllerInstance[route.handler]();
|
|
41
|
+
})).addMiddleware([...controller.baseMiddlewares, ...route.middlewares]);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
addGlobalMiddleware(middlewares) {
|
|
45
|
+
this.middlewares = this.middlewares.concat(middlewares);
|
|
46
|
+
}
|
|
47
|
+
resolve(request) {
|
|
48
|
+
for (const route of this.routes) {
|
|
49
|
+
if (route.test(request)) {
|
|
50
|
+
return route;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return void 0;
|
|
54
|
+
}
|
|
55
|
+
getCompiledRoute(request, response) {
|
|
56
|
+
const route = this.resolve(request);
|
|
57
|
+
if (!route) {
|
|
58
|
+
return void 0;
|
|
59
|
+
}
|
|
60
|
+
const match = route.match(request);
|
|
61
|
+
if (!match) {
|
|
62
|
+
return void 0;
|
|
63
|
+
}
|
|
64
|
+
request.query = Object.fromEntries(match.url.searchParams.entries());
|
|
65
|
+
request.params = match.params;
|
|
66
|
+
return new CompiledRoute(route, match, request, response, this.middlewares);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
export {
|
|
70
|
+
Router
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=Router.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/Router.ts"],"sourcesContent":["import { CompiledRoute } from './CompiledRoute';\nimport { BaseController } from './Controller';\nimport { Middleware } from './Middleware';\nimport { MiddlewareFactory } from './MiddlewareFactory';\nimport { Route } from './Route';\nimport { HandlerType, MiddlewareProvider } from './types';\nimport { LexerToken, Request, Response } from './types';\nimport path from 'path';\n\nexport class Router {\n routes: Route[] = [];\n addRoute(methods: string[], path: string, handler: HandlerType) {\n const route: Route = new Route(methods, path, handler);\n this.routes.push(route);\n return route;\n }\n\n addController(controller: typeof BaseController) {\n const basePath = controller.basePath || '';\n for (const route of controller.routes) {\n const urlPath = path.join(basePath, route.path);\n this.addRoute(route.methods, urlPath, async (req: Request, res: Response) => {\n const controllerInstance = controller.getInstance();\n // @ts-ignore\n return await controllerInstance[route.handler]();\n }).addMiddleware([...controller.baseMiddlewares, ...route.middlewares]);\n }\n }\n\n private middlewares: MiddlewareProvider[] = [];\n addGlobalMiddleware(middlewares: MiddlewareProvider | MiddlewareProvider[]) {\n this.middlewares = this.middlewares.concat(middlewares);\n }\n\n resolve(request: Request): Route | undefined {\n for (const route of this.routes) {\n if (route.test(request)) {\n return route;\n }\n }\n return undefined;\n }\n\n getCompiledRoute(request: Request, response: Response) {\n const route = this.resolve(request);\n if (!route) {\n return undefined;\n }\n const match = route.match(request);\n if (!match) {\n return undefined;\n }\n\n request.query = Object.fromEntries(match.url.searchParams.entries());\n request.params = match.params;\n return new CompiledRoute(route, match, request, response, this.middlewares);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,SAAS,qBAAqB;AAI9B,SAAS,aAAa;AAGtB,OAAO,UAAU;AAEV,MAAM,OAAO;AAAA,EAAb;AACL,kBAAkB,CAAC;AAmBnB,SAAQ,cAAoC,CAAC;AAAA;AAAA,EAlB7C,SAAS,SAAmBA,OAAc,SAAsB;AAC9D,UAAM,QAAe,IAAI,MAAM,SAASA,OAAM,OAAO;AACrD,SAAK,OAAO,KAAK,KAAK;AACtB,WAAO;AAAA,EACT;AAAA,EAEA,cAAc,YAAmC;AAC/C,UAAM,WAAW,WAAW,YAAY;AACxC,eAAW,SAAS,WAAW,QAAQ;AACrC,YAAM,UAAU,KAAK,KAAK,UAAU,MAAM,IAAI;AAC9C,WAAK,SAAS,MAAM,SAAS,SAAS,CAAO,KAAc,QAAkB;AAC3E,cAAM,qBAAqB,WAAW,YAAY;AAElD,eAAO,MAAM,mBAAmB,MAAM,OAAO,EAAE;AAAA,MACjD,EAAC,EAAE,cAAc,CAAC,GAAG,WAAW,iBAAiB,GAAG,MAAM,WAAW,CAAC;AAAA,IACxE;AAAA,EACF;AAAA,EAGA,oBAAoB,aAAwD;AAC1E,SAAK,cAAc,KAAK,YAAY,OAAO,WAAW;AAAA,EACxD;AAAA,EAEA,QAAQ,SAAqC;AAC3C,eAAW,SAAS,KAAK,QAAQ;AAC/B,UAAI,MAAM,KAAK,OAAO,GAAG;AACvB,eAAO;AAAA,MACT;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,iBAAiB,SAAkB,UAAoB;AACrD,UAAM,QAAQ,KAAK,QAAQ,OAAO;AAClC,QAAI,CAAC,OAAO;AACV,aAAO;AAAA,IACT;AACA,UAAM,QAAQ,MAAM,MAAM,OAAO;AACjC,QAAI,CAAC,OAAO;AACV,aAAO;AAAA,IACT;AAEA,YAAQ,QAAQ,OAAO,YAAY,MAAM,IAAI,aAAa,QAAQ,CAAC;AACnE,YAAQ,SAAS,MAAM;AACvB,WAAO,IAAI,cAAc,OAAO,OAAO,SAAS,UAAU,KAAK,WAAW;AAAA,EAC5E;AACF;","names":["path"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { b as Middleware, R as Request, a as Response } from './Middleware-BjWt0Uml.mjs';
|
|
2
|
+
import 'http';
|
|
3
|
+
|
|
4
|
+
declare function runNext(middlewares: Middleware[], req: Request, res: Response, final: (request: Request, response: Response) => Promise<void>): Promise<void>;
|
|
5
|
+
|
|
6
|
+
export { runNext };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { b as Middleware, R as Request, a as Response } from './Middleware-BjWt0Uml.js';
|
|
2
|
+
import 'http';
|
|
3
|
+
|
|
4
|
+
declare function runNext(middlewares: Middleware[], req: Request, res: Response, final: (request: Request, response: Response) => Promise<void>): Promise<void>;
|
|
5
|
+
|
|
6
|
+
export { runNext };
|
package/dist/helpers.js
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var __async = (__this, __arguments, generator) => {
|
|
20
|
+
return new Promise((resolve, reject) => {
|
|
21
|
+
var fulfilled = (value) => {
|
|
22
|
+
try {
|
|
23
|
+
step(generator.next(value));
|
|
24
|
+
} catch (e) {
|
|
25
|
+
reject(e);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
var rejected = (value) => {
|
|
29
|
+
try {
|
|
30
|
+
step(generator.throw(value));
|
|
31
|
+
} catch (e) {
|
|
32
|
+
reject(e);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
36
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
var helpers_exports = {};
|
|
40
|
+
__export(helpers_exports, {
|
|
41
|
+
runNext: () => runNext
|
|
42
|
+
});
|
|
43
|
+
module.exports = __toCommonJS(helpers_exports);
|
|
44
|
+
var import_Middleware = require("./Middleware");
|
|
45
|
+
function runNext(middlewares, req, res, final) {
|
|
46
|
+
return __async(this, null, function* () {
|
|
47
|
+
let index = 0;
|
|
48
|
+
function next() {
|
|
49
|
+
return __async(this, null, function* () {
|
|
50
|
+
if (index >= middlewares.length) {
|
|
51
|
+
return yield final(req, res);
|
|
52
|
+
}
|
|
53
|
+
const middleware = middlewares[index++];
|
|
54
|
+
if (middleware instanceof import_Middleware.Middleware) {
|
|
55
|
+
yield middleware.call(req, res, next);
|
|
56
|
+
} else if (typeof middleware === "function") {
|
|
57
|
+
yield middleware(req, res, next);
|
|
58
|
+
} else {
|
|
59
|
+
throw new Error("does not know how to run middleware");
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
yield next();
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
67
|
+
0 && (module.exports = {
|
|
68
|
+
runNext
|
|
69
|
+
});
|
|
70
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/helpers.ts"],"sourcesContent":["import { Middleware } from './Middleware';\nimport { Request, Response } from './types';\n\nexport async function runNext(\n middlewares: Middleware[],\n req: Request,\n res: Response,\n final: (request: Request, response: Response) => Promise<void>\n) {\n let index = 0;\n\n async function next() {\n if (index >= middlewares.length) {\n return await final(req, res);\n }\n\n const middleware: Middleware | any = middlewares[index++];\n\n if (middleware instanceof Middleware) {\n await middleware.call(req, res, next);\n } else if (typeof middleware === 'function') {\n await middleware(req, res, next);\n } else {\n throw new Error('does not know how to run middleware');\n }\n }\n\n await next();\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAA2B;AAG3B,SAAsB,QACpB,aACA,KACA,KACA,OACA;AAAA;AACA,QAAI,QAAQ;AAEZ,aAAe,OAAO;AAAA;AACpB,YAAI,SAAS,YAAY,QAAQ;AAC/B,iBAAO,MAAM,MAAM,KAAK,GAAG;AAAA,QAC7B;AAEA,cAAM,aAA+B,YAAY,OAAO;AAExD,YAAI,sBAAsB,8BAAY;AACpC,gBAAM,WAAW,KAAK,KAAK,KAAK,IAAI;AAAA,QACtC,WAAW,OAAO,eAAe,YAAY;AAC3C,gBAAM,WAAW,KAAK,KAAK,IAAI;AAAA,QACjC,OAAO;AACL,gBAAM,IAAI,MAAM,qCAAqC;AAAA,QACvD;AAAA,MACF;AAAA;AAEA,UAAM,KAAK;AAAA,EACb;AAAA;","names":[]}
|
package/dist/helpers.mjs
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
var __async = (__this, __arguments, generator) => {
|
|
2
|
+
return new Promise((resolve, reject) => {
|
|
3
|
+
var fulfilled = (value) => {
|
|
4
|
+
try {
|
|
5
|
+
step(generator.next(value));
|
|
6
|
+
} catch (e) {
|
|
7
|
+
reject(e);
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
var rejected = (value) => {
|
|
11
|
+
try {
|
|
12
|
+
step(generator.throw(value));
|
|
13
|
+
} catch (e) {
|
|
14
|
+
reject(e);
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
18
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
import { Middleware } from "./Middleware";
|
|
22
|
+
function runNext(middlewares, req, res, final) {
|
|
23
|
+
return __async(this, null, function* () {
|
|
24
|
+
let index = 0;
|
|
25
|
+
function next() {
|
|
26
|
+
return __async(this, null, function* () {
|
|
27
|
+
if (index >= middlewares.length) {
|
|
28
|
+
return yield final(req, res);
|
|
29
|
+
}
|
|
30
|
+
const middleware = middlewares[index++];
|
|
31
|
+
if (middleware instanceof Middleware) {
|
|
32
|
+
yield middleware.call(req, res, next);
|
|
33
|
+
} else if (typeof middleware === "function") {
|
|
34
|
+
yield middleware(req, res, next);
|
|
35
|
+
} else {
|
|
36
|
+
throw new Error("does not know how to run middleware");
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
yield next();
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
export {
|
|
44
|
+
runNext
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=helpers.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/helpers.ts"],"sourcesContent":["import { Middleware } from './Middleware';\nimport { Request, Response } from './types';\n\nexport async function runNext(\n middlewares: Middleware[],\n req: Request,\n res: Response,\n final: (request: Request, response: Response) => Promise<void>\n) {\n let index = 0;\n\n async function next() {\n if (index >= middlewares.length) {\n return await final(req, res);\n }\n\n const middleware: Middleware | any = middlewares[index++];\n\n if (middleware instanceof Middleware) {\n await middleware.call(req, res, next);\n } else if (typeof middleware === 'function') {\n await middleware(req, res, next);\n } else {\n throw new Error('does not know how to run middleware');\n }\n }\n\n await next();\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,SAAS,kBAAkB;AAG3B,SAAsB,QACpB,aACA,KACA,KACA,OACA;AAAA;AACA,QAAI,QAAQ;AAEZ,aAAe,OAAO;AAAA;AACpB,YAAI,SAAS,YAAY,QAAQ;AAC/B,iBAAO,MAAM,MAAM,KAAK,GAAG;AAAA,QAC7B;AAEA,cAAM,aAA+B,YAAY,OAAO;AAExD,YAAI,sBAAsB,YAAY;AACpC,gBAAM,WAAW,KAAK,KAAK,KAAK,IAAI;AAAA,QACtC,WAAW,OAAO,eAAe,YAAY;AAC3C,gBAAM,WAAW,KAAK,KAAK,IAAI;AAAA,QACjC,OAAO;AACL,gBAAM,IAAI,MAAM,qCAAqC;AAAA,QACvD;AAAA,MACF;AAAA;AAEA,UAAM,KAAK;AAAA,EACb;AAAA;","names":[]}
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { C as ControllerDecoratorOptions, H as HandlerType, L as LexerToken, b as Middleware, M as MiddlewareProvider, R as Request, a as Response } from './Middleware-BjWt0Uml.mjs';
|
|
2
|
+
export { CompiledRoute } from './CompiledRoute.mjs';
|
|
3
|
+
export { BaseController, Controller, Delete, Get, Patch, Post, Put, createParamDecorator } from './Controller.mjs';
|
|
4
|
+
export { Route } from './Route.mjs';
|
|
5
|
+
export { Router } from './Router.mjs';
|
|
6
|
+
export { MiddlewareFactory } from './MiddlewareFactory.mjs';
|
|
7
|
+
export { runNext } from './helpers.mjs';
|
|
8
|
+
import 'http';
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { C as ControllerDecoratorOptions, H as HandlerType, L as LexerToken, b as Middleware, M as MiddlewareProvider, R as Request, a as Response } from './Middleware-BjWt0Uml.js';
|
|
2
|
+
export { CompiledRoute } from './CompiledRoute.js';
|
|
3
|
+
export { BaseController, Controller, Delete, Get, Patch, Post, Put, createParamDecorator } from './Controller.js';
|
|
4
|
+
export { Route } from './Route.js';
|
|
5
|
+
export { Router } from './Router.js';
|
|
6
|
+
export { MiddlewareFactory } from './MiddlewareFactory.js';
|
|
7
|
+
export { runNext } from './helpers.js';
|
|
8
|
+
import 'http';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
|
+
var index_exports = {};
|
|
17
|
+
module.exports = __toCommonJS(index_exports);
|
|
18
|
+
__reExport(index_exports, require("./types"), module.exports);
|
|
19
|
+
__reExport(index_exports, require("./CompiledRoute"), module.exports);
|
|
20
|
+
__reExport(index_exports, require("./Controller"), module.exports);
|
|
21
|
+
__reExport(index_exports, require("./Route"), module.exports);
|
|
22
|
+
__reExport(index_exports, require("./Router"), module.exports);
|
|
23
|
+
__reExport(index_exports, require("./Middleware"), module.exports);
|
|
24
|
+
__reExport(index_exports, require("./MiddlewareFactory"), module.exports);
|
|
25
|
+
__reExport(index_exports, require("./helpers"), module.exports);
|
|
26
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
27
|
+
0 && (module.exports = {
|
|
28
|
+
...require("./types"),
|
|
29
|
+
...require("./CompiledRoute"),
|
|
30
|
+
...require("./Controller"),
|
|
31
|
+
...require("./Route"),
|
|
32
|
+
...require("./Router"),
|
|
33
|
+
...require("./Middleware"),
|
|
34
|
+
...require("./MiddlewareFactory"),
|
|
35
|
+
...require("./helpers")
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './types';\nexport * from './CompiledRoute';\nexport * from './Controller';\nexport * from './Route';\nexport * from './Router';\nexport * from './Middleware';\nexport * from './MiddlewareFactory';\nexport * from './helpers';\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,oBAAd;AACA,0BAAc,4BADd;AAEA,0BAAc,yBAFd;AAGA,0BAAc,oBAHd;AAIA,0BAAc,qBAJd;AAKA,0BAAc,yBALd;AAMA,0BAAc,gCANd;AAOA,0BAAc,sBAPd;","names":[]}
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from "./types";
|
|
2
|
+
export * from "./CompiledRoute";
|
|
3
|
+
export * from "./Controller";
|
|
4
|
+
export * from "./Route";
|
|
5
|
+
export * from "./Router";
|
|
6
|
+
export * from "./Middleware";
|
|
7
|
+
export * from "./MiddlewareFactory";
|
|
8
|
+
export * from "./helpers";
|
|
9
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './types';\nexport * from './CompiledRoute';\nexport * from './Controller';\nexport * from './Route';\nexport * from './Router';\nexport * from './Middleware';\nexport * from './MiddlewareFactory';\nexport * from './helpers';\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
|
package/dist/types.d.mts
ADDED
package/dist/types.d.ts
ADDED
package/dist/types.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var types_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(types_exports);
|
|
17
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/types.ts"],"sourcesContent":["import { IncomingMessage, ServerResponse } from 'http';\nimport { Middleware } from './Middleware';\n\nexport type Request = IncomingMessage & {\n params: any;\n method: string;\n headers?: Record<string, string>;\n body?: any;\n raw_body?: any;\n files?: any;\n query?: Record<string, string>;\n};\n\nexport type Response = ServerResponse;\n\nexport type LexerToken = {\n type: string;\n value: string;\n};\n\nexport type HandlerType = (\n req: Request,\n res: Response,\n next?: (() => any) | undefined\n) => Promise<any> | any;\n\nexport type ControllerDecoratorOptions = {\n middlewares?: MiddlewareProvider[];\n};\n\nexport type MiddlewareProvider =\n | typeof Middleware\n | Middleware\n | ((request: Request, response: Response, next: () => Promise<void>) => Promise<void>);\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
|
package/dist/types.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=types.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|