@devbro/neko-router 0.1.0 → 0.1.1
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/dist/CompiledRoute.d.mts +2 -3
- package/dist/CompiledRoute.d.ts +2 -3
- package/dist/CompiledRoute.js +1 -2
- package/dist/CompiledRoute.js.map +1 -1
- package/dist/CompiledRoute.mjs +1 -2
- package/dist/CompiledRoute.mjs.map +1 -1
- package/dist/Controller.d.mts +7 -3
- package/dist/Controller.d.ts +7 -3
- package/dist/Controller.js +9 -0
- package/dist/Controller.js.map +1 -1
- package/dist/Controller.mjs +8 -0
- package/dist/Controller.mjs.map +1 -1
- package/dist/{Middleware-BjWt0Uml.d.mts → Middleware-C8dxjlFD.d.mts} +3 -2
- package/dist/{Middleware-BjWt0Uml.d.ts → Middleware-C8dxjlFD.d.ts} +3 -2
- package/dist/Middleware.d.mts +1 -1
- package/dist/Middleware.d.ts +1 -1
- package/dist/MiddlewareFactory.d.mts +1 -1
- package/dist/MiddlewareFactory.d.ts +1 -1
- package/dist/Route.d.mts +4 -3
- package/dist/Route.d.ts +4 -3
- package/dist/Route.js +4 -1
- package/dist/Route.js.map +1 -1
- package/dist/Route.mjs +4 -1
- package/dist/Route.mjs.map +1 -1
- package/dist/Router.d.mts +5 -3
- package/dist/Router.d.ts +5 -3
- package/dist/Router.js +15 -2
- package/dist/Router.js.map +1 -1
- package/dist/Router.mjs +15 -2
- package/dist/Router.mjs.map +1 -1
- package/dist/helpers.d.mts +1 -1
- package/dist/helpers.d.ts +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/types.d.mts +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/dist/CompiledRoute.d.mts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { R as Request, a as Response, M as MiddlewareProvider,
|
|
1
|
+
import { R as Request, a as Response, M as MiddlewareProvider, c as Middleware } from './Middleware-C8dxjlFD.mjs';
|
|
2
2
|
import { Route } from './Route.mjs';
|
|
3
3
|
import 'http';
|
|
4
4
|
|
|
5
5
|
declare class CompiledRoute {
|
|
6
6
|
route: Route;
|
|
7
|
-
match: any;
|
|
8
7
|
request: Request;
|
|
9
8
|
response: Response;
|
|
10
9
|
globalMiddlewares: MiddlewareProvider[];
|
|
11
|
-
constructor(route: Route,
|
|
10
|
+
constructor(route: Route, request: Request, response: Response, globalMiddlewares?: MiddlewareProvider[]);
|
|
12
11
|
private middlewares;
|
|
13
12
|
getMiddlewares(): Middleware[];
|
|
14
13
|
private prepareMiddlewares;
|
package/dist/CompiledRoute.d.ts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { R as Request, a as Response, M as MiddlewareProvider,
|
|
1
|
+
import { R as Request, a as Response, M as MiddlewareProvider, c as Middleware } from './Middleware-C8dxjlFD.js';
|
|
2
2
|
import { Route } from './Route.js';
|
|
3
3
|
import 'http';
|
|
4
4
|
|
|
5
5
|
declare class CompiledRoute {
|
|
6
6
|
route: Route;
|
|
7
|
-
match: any;
|
|
8
7
|
request: Request;
|
|
9
8
|
response: Response;
|
|
10
9
|
globalMiddlewares: MiddlewareProvider[];
|
|
11
|
-
constructor(route: Route,
|
|
10
|
+
constructor(route: Route, request: Request, response: Response, globalMiddlewares?: MiddlewareProvider[]);
|
|
12
11
|
private middlewares;
|
|
13
12
|
getMiddlewares(): Middleware[];
|
|
14
13
|
private prepareMiddlewares;
|
package/dist/CompiledRoute.js
CHANGED
|
@@ -44,9 +44,8 @@ module.exports = __toCommonJS(CompiledRoute_exports);
|
|
|
44
44
|
var import_Middleware = require("./Middleware");
|
|
45
45
|
var import_MiddlewareFactory = require("./MiddlewareFactory");
|
|
46
46
|
class CompiledRoute {
|
|
47
|
-
constructor(route,
|
|
47
|
+
constructor(route, request, response, globalMiddlewares = []) {
|
|
48
48
|
this.route = route;
|
|
49
|
-
this.match = match;
|
|
50
49
|
this.request = request;
|
|
51
50
|
this.response = response;
|
|
52
51
|
this.globalMiddlewares = globalMiddlewares;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/CompiledRoute.ts"],"sourcesContent":["import { Middleware } from './Middleware';\nimport { MiddlewareFactory } from './MiddlewareFactory';\nimport { Route } from './Route';\nimport { HandlerType, MiddlewareProvider } from './types';\nimport { LexerToken, Request, Response } from './types';\n\nexport class CompiledRoute {\n constructor(\n public route: Route,\n public
|
|
1
|
+
{"version":3,"sources":["../src/CompiledRoute.ts"],"sourcesContent":["import { Middleware } from './Middleware';\nimport { MiddlewareFactory } from './MiddlewareFactory';\nimport { Route } from './Route';\nimport { HandlerType, MiddlewareProvider } from './types';\nimport { LexerToken, Request, Response } from './types';\n\nexport class CompiledRoute {\n constructor(\n public route: Route,\n public request: Request,\n public response: Response,\n public globalMiddlewares: MiddlewareProvider[] = []\n ) {\n this.prepareMiddlewares();\n }\n\n private middlewares: Middleware[] = [];\n\n getMiddlewares() {\n return this.middlewares;\n }\n\n private prepareMiddlewares() {\n this.middlewares = [];\n for (const middleware of [...this.globalMiddlewares, ...this.route.getMiddlewares()]) {\n if (middleware instanceof Middleware) {\n this.middlewares.push(middleware);\n } else if (this.isClass(middleware)) {\n this.middlewares.push((middleware as any).getInstance({}));\n } else if (typeof middleware === 'function') {\n this.middlewares.push(MiddlewareFactory.create(middleware as HandlerType));\n } else {\n throw new Error('Invalid middleware type');\n }\n }\n }\n\n isClass(func: any) {\n return typeof func === 'function' && /^class\\s/.test(Function.prototype.toString.call(func));\n }\n\n async run() {\n return await this.runMiddlewares(this.middlewares, this.request, this.response);\n }\n\n prepareOutputJsonFormat<T>(obj: object | Array<any>): T {\n function traverse(value: any): any {\n if (!value || typeof value !== 'object') {\n return value;\n }\n\n if (typeof value.toJson === 'function') {\n return traverse(value.toJson());\n }\n\n if (Array.isArray(value)) {\n return value.map(traverse);\n }\n\n const result: Record<string, any> = {};\n for (const key in value) {\n if (Object.prototype.hasOwnProperty.call(value, key)) {\n result[key] = traverse(value[key]);\n }\n }\n return result;\n }\n\n return traverse(obj);\n }\n\n convertToString(obj: any) {\n if (typeof obj === 'string') {\n return obj;\n } else if (obj instanceof Buffer) {\n return obj.toString();\n } else if (typeof obj === 'object') {\n return JSON.stringify(this.prepareOutputJsonFormat(obj));\n }\n return String(obj);\n }\n\n processResponseBody(res: Response, controller_rc: any) {\n if (controller_rc && res.writableEnded) {\n throw new Error('cannot write to response, response has already ended');\n }\n\n if (res.writableEnded) {\n return;\n }\n\n if (controller_rc) {\n const header_content_type = res.getHeader('Content-Type');\n if (!header_content_type && typeof controller_rc === 'object') {\n res.setHeader('Content-Type', 'application/json');\n } else if (!header_content_type) {\n res.setHeader('Content-Type', 'text/plain');\n }\n\n res.end(this.convertToString(controller_rc));\n return;\n } else {\n res.statusCode = [200].includes(res.statusCode) ? 204 : res.statusCode;\n res.end();\n }\n }\n\n async runMiddlewares(middlewares: Middleware[], req: Request, res: Response) {\n let index = 0;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n\n async function next() {\n if (index >= middlewares.length) {\n const controller_rc = await me.route.callHanlder(req, res);\n await me.processResponseBody(res, controller_rc);\n return;\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}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAA2B;AAC3B,+BAAkC;AAK3B,MAAM,cAAc;AAAA,EACzB,YACS,OACA,SACA,UACA,oBAA0C,CAAC,GAClD;AAJO;AACA;AACA;AACA;AAKT,SAAQ,cAA4B,CAAC;AAHnC,SAAK,mBAAmB;AAAA,EAC1B;AAAA,EAIA,iBAAiB;AACf,WAAO,KAAK;AAAA,EACd;AAAA,EAEQ,qBAAqB;AAC3B,SAAK,cAAc,CAAC;AACpB,eAAW,cAAc,CAAC,GAAG,KAAK,mBAAmB,GAAG,KAAK,MAAM,eAAe,CAAC,GAAG;AACpF,UAAI,sBAAsB,8BAAY;AACpC,aAAK,YAAY,KAAK,UAAU;AAAA,MAClC,WAAW,KAAK,QAAQ,UAAU,GAAG;AACnC,aAAK,YAAY,KAAM,WAAmB,YAAY,CAAC,CAAC,CAAC;AAAA,MAC3D,WAAW,OAAO,eAAe,YAAY;AAC3C,aAAK,YAAY,KAAK,2CAAkB,OAAO,UAAyB,CAAC;AAAA,MAC3E,OAAO;AACL,cAAM,IAAI,MAAM,yBAAyB;AAAA,MAC3C;AAAA,IACF;AAAA,EACF;AAAA,EAEA,QAAQ,MAAW;AACjB,WAAO,OAAO,SAAS,cAAc,WAAW,KAAK,SAAS,UAAU,SAAS,KAAK,IAAI,CAAC;AAAA,EAC7F;AAAA,EAEM,MAAM;AAAA;AACV,aAAO,MAAM,KAAK,eAAe,KAAK,aAAa,KAAK,SAAS,KAAK,QAAQ;AAAA,IAChF;AAAA;AAAA,EAEA,wBAA2B,KAA6B;AACtD,aAAS,SAAS,OAAiB;AACjC,UAAI,CAAC,SAAS,OAAO,UAAU,UAAU;AACvC,eAAO;AAAA,MACT;AAEA,UAAI,OAAO,MAAM,WAAW,YAAY;AACtC,eAAO,SAAS,MAAM,OAAO,CAAC;AAAA,MAChC;AAEA,UAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,eAAO,MAAM,IAAI,QAAQ;AAAA,MAC3B;AAEA,YAAM,SAA8B,CAAC;AACrC,iBAAW,OAAO,OAAO;AACvB,YAAI,OAAO,UAAU,eAAe,KAAK,OAAO,GAAG,GAAG;AACpD,iBAAO,GAAG,IAAI,SAAS,MAAM,GAAG,CAAC;AAAA,QACnC;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAEA,WAAO,SAAS,GAAG;AAAA,EACrB;AAAA,EAEA,gBAAgB,KAAU;AACxB,QAAI,OAAO,QAAQ,UAAU;AAC3B,aAAO;AAAA,IACT,WAAW,eAAe,QAAQ;AAChC,aAAO,IAAI,SAAS;AAAA,IACtB,WAAW,OAAO,QAAQ,UAAU;AAClC,aAAO,KAAK,UAAU,KAAK,wBAAwB,GAAG,CAAC;AAAA,IACzD;AACA,WAAO,OAAO,GAAG;AAAA,EACnB;AAAA,EAEA,oBAAoB,KAAe,eAAoB;AACrD,QAAI,iBAAiB,IAAI,eAAe;AACtC,YAAM,IAAI,MAAM,sDAAsD;AAAA,IACxE;AAEA,QAAI,IAAI,eAAe;AACrB;AAAA,IACF;AAEA,QAAI,eAAe;AACjB,YAAM,sBAAsB,IAAI,UAAU,cAAc;AACxD,UAAI,CAAC,uBAAuB,OAAO,kBAAkB,UAAU;AAC7D,YAAI,UAAU,gBAAgB,kBAAkB;AAAA,MAClD,WAAW,CAAC,qBAAqB;AAC/B,YAAI,UAAU,gBAAgB,YAAY;AAAA,MAC5C;AAEA,UAAI,IAAI,KAAK,gBAAgB,aAAa,CAAC;AAC3C;AAAA,IACF,OAAO;AACL,UAAI,aAAa,CAAC,GAAG,EAAE,SAAS,IAAI,UAAU,IAAI,MAAM,IAAI;AAC5D,UAAI,IAAI;AAAA,IACV;AAAA,EACF;AAAA,EAEM,eAAe,aAA2B,KAAc,KAAe;AAAA;AAC3E,UAAI,QAAQ;AAEZ,YAAM,KAAK;AAEX,eAAe,OAAO;AAAA;AACpB,cAAI,SAAS,YAAY,QAAQ;AAC/B,kBAAM,gBAAgB,MAAM,GAAG,MAAM,YAAY,KAAK,GAAG;AACzD,kBAAM,GAAG,oBAAoB,KAAK,aAAa;AAC/C;AAAA,UACF;AAEA,gBAAM,aAA+B,YAAY,OAAO;AAExD,cAAI,sBAAsB,8BAAY;AACpC,kBAAM,WAAW,KAAK,KAAK,KAAK,IAAI;AAAA,UACtC,WAAW,OAAO,eAAe,YAAY;AAC3C,kBAAM,WAAW,KAAK,KAAK,IAAI;AAAA,UACjC,OAAO;AACL,kBAAM,IAAI,MAAM,qCAAqC;AAAA,UACvD;AAAA,QACF;AAAA;AAEA,YAAM,KAAK;AAAA,IACb;AAAA;AACF;","names":[]}
|
package/dist/CompiledRoute.mjs
CHANGED
|
@@ -21,9 +21,8 @@ var __async = (__this, __arguments, generator) => {
|
|
|
21
21
|
import { Middleware } from "./Middleware";
|
|
22
22
|
import { MiddlewareFactory } from "./MiddlewareFactory";
|
|
23
23
|
class CompiledRoute {
|
|
24
|
-
constructor(route,
|
|
24
|
+
constructor(route, request, response, globalMiddlewares = []) {
|
|
25
25
|
this.route = route;
|
|
26
|
-
this.match = match;
|
|
27
26
|
this.request = request;
|
|
28
27
|
this.response = response;
|
|
29
28
|
this.globalMiddlewares = globalMiddlewares;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/CompiledRoute.ts"],"sourcesContent":["import { Middleware } from './Middleware';\nimport { MiddlewareFactory } from './MiddlewareFactory';\nimport { Route } from './Route';\nimport { HandlerType, MiddlewareProvider } from './types';\nimport { LexerToken, Request, Response } from './types';\n\nexport class CompiledRoute {\n constructor(\n public route: Route,\n public
|
|
1
|
+
{"version":3,"sources":["../src/CompiledRoute.ts"],"sourcesContent":["import { Middleware } from './Middleware';\nimport { MiddlewareFactory } from './MiddlewareFactory';\nimport { Route } from './Route';\nimport { HandlerType, MiddlewareProvider } from './types';\nimport { LexerToken, Request, Response } from './types';\n\nexport class CompiledRoute {\n constructor(\n public route: Route,\n public request: Request,\n public response: Response,\n public globalMiddlewares: MiddlewareProvider[] = []\n ) {\n this.prepareMiddlewares();\n }\n\n private middlewares: Middleware[] = [];\n\n getMiddlewares() {\n return this.middlewares;\n }\n\n private prepareMiddlewares() {\n this.middlewares = [];\n for (const middleware of [...this.globalMiddlewares, ...this.route.getMiddlewares()]) {\n if (middleware instanceof Middleware) {\n this.middlewares.push(middleware);\n } else if (this.isClass(middleware)) {\n this.middlewares.push((middleware as any).getInstance({}));\n } else if (typeof middleware === 'function') {\n this.middlewares.push(MiddlewareFactory.create(middleware as HandlerType));\n } else {\n throw new Error('Invalid middleware type');\n }\n }\n }\n\n isClass(func: any) {\n return typeof func === 'function' && /^class\\s/.test(Function.prototype.toString.call(func));\n }\n\n async run() {\n return await this.runMiddlewares(this.middlewares, this.request, this.response);\n }\n\n prepareOutputJsonFormat<T>(obj: object | Array<any>): T {\n function traverse(value: any): any {\n if (!value || typeof value !== 'object') {\n return value;\n }\n\n if (typeof value.toJson === 'function') {\n return traverse(value.toJson());\n }\n\n if (Array.isArray(value)) {\n return value.map(traverse);\n }\n\n const result: Record<string, any> = {};\n for (const key in value) {\n if (Object.prototype.hasOwnProperty.call(value, key)) {\n result[key] = traverse(value[key]);\n }\n }\n return result;\n }\n\n return traverse(obj);\n }\n\n convertToString(obj: any) {\n if (typeof obj === 'string') {\n return obj;\n } else if (obj instanceof Buffer) {\n return obj.toString();\n } else if (typeof obj === 'object') {\n return JSON.stringify(this.prepareOutputJsonFormat(obj));\n }\n return String(obj);\n }\n\n processResponseBody(res: Response, controller_rc: any) {\n if (controller_rc && res.writableEnded) {\n throw new Error('cannot write to response, response has already ended');\n }\n\n if (res.writableEnded) {\n return;\n }\n\n if (controller_rc) {\n const header_content_type = res.getHeader('Content-Type');\n if (!header_content_type && typeof controller_rc === 'object') {\n res.setHeader('Content-Type', 'application/json');\n } else if (!header_content_type) {\n res.setHeader('Content-Type', 'text/plain');\n }\n\n res.end(this.convertToString(controller_rc));\n return;\n } else {\n res.statusCode = [200].includes(res.statusCode) ? 204 : res.statusCode;\n res.end();\n }\n }\n\n async runMiddlewares(middlewares: Middleware[], req: Request, res: Response) {\n let index = 0;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n\n async function next() {\n if (index >= middlewares.length) {\n const controller_rc = await me.route.callHanlder(req, res);\n await me.processResponseBody(res, controller_rc);\n return;\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}\n"],"mappings":"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","names":[]}
|
package/dist/Controller.d.mts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { M as MiddlewareProvider, C as ControllerDecoratorOptions } from './Middleware-
|
|
1
|
+
import { b as HttpMethod, M as MiddlewareProvider, C as ControllerDecoratorOptions } from './Middleware-C8dxjlFD.mjs';
|
|
2
2
|
import 'http';
|
|
3
3
|
|
|
4
4
|
declare class BaseController {
|
|
5
5
|
static routes: {
|
|
6
|
-
methods:
|
|
6
|
+
methods: HttpMethod[];
|
|
7
7
|
path: string;
|
|
8
8
|
handler: string;
|
|
9
9
|
middlewares: MiddlewareProvider[];
|
|
@@ -33,6 +33,10 @@ declare function Delete(data?: {
|
|
|
33
33
|
path?: string;
|
|
34
34
|
middlewares?: MiddlewareProvider[];
|
|
35
35
|
}): MethodDecorator;
|
|
36
|
+
declare function Options(data?: {
|
|
37
|
+
path?: string;
|
|
38
|
+
middlewares?: MiddlewareProvider[];
|
|
39
|
+
}): MethodDecorator;
|
|
36
40
|
declare function createParamDecorator(func: () => Promise<any> | (() => any)): ParameterDecorator;
|
|
37
41
|
|
|
38
|
-
export { BaseController, Controller, Delete, Get, Patch, Post, Put, createParamDecorator };
|
|
42
|
+
export { BaseController, Controller, Delete, Get, Options, Patch, Post, Put, createParamDecorator };
|
package/dist/Controller.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { M as MiddlewareProvider, C as ControllerDecoratorOptions } from './Middleware-
|
|
1
|
+
import { b as HttpMethod, M as MiddlewareProvider, C as ControllerDecoratorOptions } from './Middleware-C8dxjlFD.js';
|
|
2
2
|
import 'http';
|
|
3
3
|
|
|
4
4
|
declare class BaseController {
|
|
5
5
|
static routes: {
|
|
6
|
-
methods:
|
|
6
|
+
methods: HttpMethod[];
|
|
7
7
|
path: string;
|
|
8
8
|
handler: string;
|
|
9
9
|
middlewares: MiddlewareProvider[];
|
|
@@ -33,6 +33,10 @@ declare function Delete(data?: {
|
|
|
33
33
|
path?: string;
|
|
34
34
|
middlewares?: MiddlewareProvider[];
|
|
35
35
|
}): MethodDecorator;
|
|
36
|
+
declare function Options(data?: {
|
|
37
|
+
path?: string;
|
|
38
|
+
middlewares?: MiddlewareProvider[];
|
|
39
|
+
}): MethodDecorator;
|
|
36
40
|
declare function createParamDecorator(func: () => Promise<any> | (() => any)): ParameterDecorator;
|
|
37
41
|
|
|
38
|
-
export { BaseController, Controller, Delete, Get, Patch, Post, Put, createParamDecorator };
|
|
42
|
+
export { BaseController, Controller, Delete, Get, Options, Patch, Post, Put, createParamDecorator };
|
package/dist/Controller.js
CHANGED
|
@@ -42,6 +42,7 @@ __export(Controller_exports, {
|
|
|
42
42
|
Controller: () => Controller,
|
|
43
43
|
Delete: () => Delete,
|
|
44
44
|
Get: () => Get,
|
|
45
|
+
Options: () => Options,
|
|
45
46
|
Patch: () => Patch,
|
|
46
47
|
Post: () => Post,
|
|
47
48
|
Put: () => Put,
|
|
@@ -127,6 +128,13 @@ function Delete(data = {}) {
|
|
|
127
128
|
middlewares: data.middlewares || []
|
|
128
129
|
});
|
|
129
130
|
}
|
|
131
|
+
function Options(data = {}) {
|
|
132
|
+
return createHttpDecorator({
|
|
133
|
+
methods: ["OPTIONS"],
|
|
134
|
+
path: data.path || "/",
|
|
135
|
+
middlewares: data.middlewares || []
|
|
136
|
+
});
|
|
137
|
+
}
|
|
130
138
|
function createParamDecorator(func) {
|
|
131
139
|
return function MyParamDecorator(target, propertyKey, parameterIndex) {
|
|
132
140
|
Reflect.set(target, `${propertyKey == null ? void 0 : propertyKey.toString()}:${parameterIndex}:custom`, func);
|
|
@@ -138,6 +146,7 @@ function createParamDecorator(func) {
|
|
|
138
146
|
Controller,
|
|
139
147
|
Delete,
|
|
140
148
|
Get,
|
|
149
|
+
Options,
|
|
141
150
|
Patch,
|
|
142
151
|
Post,
|
|
143
152
|
Put,
|
package/dist/Controller.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Controller.ts"],"sourcesContent":["import { ControllerDecoratorOptions, MiddlewareProvider } from './types';\nimport { Middleware } from './Middleware';\n\nexport class BaseController {\n static routes: {\n methods:
|
|
1
|
+
{"version":3,"sources":["../src/Controller.ts"],"sourcesContent":["import { ControllerDecoratorOptions, HttpMethod, MiddlewareProvider } from './types';\nimport { Middleware } from './Middleware';\n\nexport class BaseController {\n static routes: {\n methods: HttpMethod[];\n path: string;\n handler: string;\n middlewares: MiddlewareProvider[];\n }[] = [];\n static basePath: string = '';\n static baseMiddlewares: MiddlewareProvider[];\n\n static getInstance() {\n return new this();\n }\n}\n\nexport function Controller(path: string, options: ControllerDecoratorOptions = {}): ClassDecorator {\n return function (target: any) {\n (target as any).routes = (target as any).routes || [];\n (target as any).basePath = path;\n (target as any).baseMiddlewares = options.middlewares || [];\n };\n}\n\nfunction createHttpDecorator(data: {\n methods: HttpMethod[];\n path: string;\n middlewares: MiddlewareProvider[];\n}): MethodDecorator {\n return function (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) {\n if (!target.constructor.routes) {\n target.constructor.routes = [];\n }\n target.constructor.routes.push({\n methods: data.methods,\n path: data.path,\n handler: propertyKey,\n middlewares: data.middlewares || [],\n });\n\n const originalMethod = descriptor.value!;\n const paramKeys = Reflect.ownKeys(target);\n\n descriptor.value = async function (...args: any[]) {\n const paramCustomKeys = paramKeys.filter(\n (key) => typeof key === 'string' && key.endsWith(':custom')\n );\n for (const paramKey of paramCustomKeys) {\n const paramIndex = parseInt((paramKey as string).split(':')[1]);\n let method = Reflect.get(target, paramKey.toString());\n if (typeof paramIndex === 'number' && typeof method === 'function') {\n args[paramIndex] = await method();\n }\n }\n\n return originalMethod.apply(this, args);\n };\n };\n}\n\nexport function Get(\n data: { path?: string; middlewares?: MiddlewareProvider[] } = {}\n): MethodDecorator {\n return createHttpDecorator({\n methods: ['GET', 'HEAD'],\n path: data.path || '/',\n middlewares: data.middlewares || [],\n });\n}\n\nexport function Post(\n data: { path?: string; middlewares?: MiddlewareProvider[] } = {}\n): MethodDecorator {\n return createHttpDecorator({\n methods: ['POST'],\n path: data.path || '/',\n middlewares: data.middlewares || [],\n });\n}\n\nexport function Put(\n data: { path?: string; middlewares?: MiddlewareProvider[] } = {}\n): MethodDecorator {\n return createHttpDecorator({\n methods: ['PUT'],\n path: data.path || '/',\n middlewares: data.middlewares || [],\n });\n}\n\nexport function Patch(\n data: { path?: string; middlewares?: MiddlewareProvider[] } = {}\n): MethodDecorator {\n return createHttpDecorator({\n methods: ['PATCH'],\n path: data.path || '/',\n middlewares: data.middlewares || [],\n });\n}\n\nexport function Delete(\n data: { path?: string; middlewares?: MiddlewareProvider[] } = {}\n): MethodDecorator {\n return createHttpDecorator({\n methods: ['DELETE'],\n path: data.path || '/',\n middlewares: data.middlewares || [],\n });\n}\n\nexport function Options(\n data: { path?: string; middlewares?: MiddlewareProvider[] } = {}\n): MethodDecorator {\n return createHttpDecorator({\n methods: ['OPTIONS'],\n path: data.path || '/',\n middlewares: data.middlewares || [],\n });\n}\n\nexport function createParamDecorator(func: () => Promise<any> | (() => any)): ParameterDecorator {\n return function MyParamDecorator(\n target: Object,\n propertyKey: string | symbol | undefined,\n parameterIndex: number\n ) {\n Reflect.set(target, `${propertyKey?.toString()}:${parameterIndex}:custom`, func);\n };\n}\n"],"mappings":"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","names":[]}
|
package/dist/Controller.mjs
CHANGED
|
@@ -97,6 +97,13 @@ function Delete(data = {}) {
|
|
|
97
97
|
middlewares: data.middlewares || []
|
|
98
98
|
});
|
|
99
99
|
}
|
|
100
|
+
function Options(data = {}) {
|
|
101
|
+
return createHttpDecorator({
|
|
102
|
+
methods: ["OPTIONS"],
|
|
103
|
+
path: data.path || "/",
|
|
104
|
+
middlewares: data.middlewares || []
|
|
105
|
+
});
|
|
106
|
+
}
|
|
100
107
|
function createParamDecorator(func) {
|
|
101
108
|
return function MyParamDecorator(target, propertyKey, parameterIndex) {
|
|
102
109
|
Reflect.set(target, `${propertyKey == null ? void 0 : propertyKey.toString()}:${parameterIndex}:custom`, func);
|
|
@@ -107,6 +114,7 @@ export {
|
|
|
107
114
|
Controller,
|
|
108
115
|
Delete,
|
|
109
116
|
Get,
|
|
117
|
+
Options,
|
|
110
118
|
Patch,
|
|
111
119
|
Post,
|
|
112
120
|
Put,
|
package/dist/Controller.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Controller.ts"],"sourcesContent":["import { ControllerDecoratorOptions, MiddlewareProvider } from './types';\nimport { Middleware } from './Middleware';\n\nexport class BaseController {\n static routes: {\n methods:
|
|
1
|
+
{"version":3,"sources":["../src/Controller.ts"],"sourcesContent":["import { ControllerDecoratorOptions, HttpMethod, MiddlewareProvider } from './types';\nimport { Middleware } from './Middleware';\n\nexport class BaseController {\n static routes: {\n methods: HttpMethod[];\n path: string;\n handler: string;\n middlewares: MiddlewareProvider[];\n }[] = [];\n static basePath: string = '';\n static baseMiddlewares: MiddlewareProvider[];\n\n static getInstance() {\n return new this();\n }\n}\n\nexport function Controller(path: string, options: ControllerDecoratorOptions = {}): ClassDecorator {\n return function (target: any) {\n (target as any).routes = (target as any).routes || [];\n (target as any).basePath = path;\n (target as any).baseMiddlewares = options.middlewares || [];\n };\n}\n\nfunction createHttpDecorator(data: {\n methods: HttpMethod[];\n path: string;\n middlewares: MiddlewareProvider[];\n}): MethodDecorator {\n return function (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) {\n if (!target.constructor.routes) {\n target.constructor.routes = [];\n }\n target.constructor.routes.push({\n methods: data.methods,\n path: data.path,\n handler: propertyKey,\n middlewares: data.middlewares || [],\n });\n\n const originalMethod = descriptor.value!;\n const paramKeys = Reflect.ownKeys(target);\n\n descriptor.value = async function (...args: any[]) {\n const paramCustomKeys = paramKeys.filter(\n (key) => typeof key === 'string' && key.endsWith(':custom')\n );\n for (const paramKey of paramCustomKeys) {\n const paramIndex = parseInt((paramKey as string).split(':')[1]);\n let method = Reflect.get(target, paramKey.toString());\n if (typeof paramIndex === 'number' && typeof method === 'function') {\n args[paramIndex] = await method();\n }\n }\n\n return originalMethod.apply(this, args);\n };\n };\n}\n\nexport function Get(\n data: { path?: string; middlewares?: MiddlewareProvider[] } = {}\n): MethodDecorator {\n return createHttpDecorator({\n methods: ['GET', 'HEAD'],\n path: data.path || '/',\n middlewares: data.middlewares || [],\n });\n}\n\nexport function Post(\n data: { path?: string; middlewares?: MiddlewareProvider[] } = {}\n): MethodDecorator {\n return createHttpDecorator({\n methods: ['POST'],\n path: data.path || '/',\n middlewares: data.middlewares || [],\n });\n}\n\nexport function Put(\n data: { path?: string; middlewares?: MiddlewareProvider[] } = {}\n): MethodDecorator {\n return createHttpDecorator({\n methods: ['PUT'],\n path: data.path || '/',\n middlewares: data.middlewares || [],\n });\n}\n\nexport function Patch(\n data: { path?: string; middlewares?: MiddlewareProvider[] } = {}\n): MethodDecorator {\n return createHttpDecorator({\n methods: ['PATCH'],\n path: data.path || '/',\n middlewares: data.middlewares || [],\n });\n}\n\nexport function Delete(\n data: { path?: string; middlewares?: MiddlewareProvider[] } = {}\n): MethodDecorator {\n return createHttpDecorator({\n methods: ['DELETE'],\n path: data.path || '/',\n middlewares: data.middlewares || [],\n });\n}\n\nexport function Options(\n data: { path?: string; middlewares?: MiddlewareProvider[] } = {}\n): MethodDecorator {\n return createHttpDecorator({\n methods: ['OPTIONS'],\n path: data.path || '/',\n middlewares: data.middlewares || [],\n });\n}\n\nexport function createParamDecorator(func: () => Promise<any> | (() => any)): ParameterDecorator {\n return function MyParamDecorator(\n target: Object,\n propertyKey: string | symbol | undefined,\n parameterIndex: number\n ) {\n Reflect.set(target, `${propertyKey?.toString()}:${parameterIndex}:custom`, func);\n };\n}\n"],"mappings":"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","names":[]}
|
|
@@ -2,7 +2,7 @@ import { IncomingMessage, ServerResponse } from 'http';
|
|
|
2
2
|
|
|
3
3
|
type Request = IncomingMessage & {
|
|
4
4
|
params: any;
|
|
5
|
-
method:
|
|
5
|
+
method: HttpMethod;
|
|
6
6
|
headers?: Record<string, string>;
|
|
7
7
|
body?: any;
|
|
8
8
|
raw_body?: any;
|
|
@@ -19,6 +19,7 @@ type ControllerDecoratorOptions = {
|
|
|
19
19
|
middlewares?: MiddlewareProvider[];
|
|
20
20
|
};
|
|
21
21
|
type MiddlewareProvider = typeof Middleware | Middleware | ((request: Request, response: Response, next: () => Promise<void>) => Promise<void>);
|
|
22
|
+
type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS';
|
|
22
23
|
|
|
23
24
|
declare abstract class Middleware {
|
|
24
25
|
protected constructor(params?: any);
|
|
@@ -26,4 +27,4 @@ declare abstract class Middleware {
|
|
|
26
27
|
abstract call(req: Request, res: Response, next: () => Promise<void>): Promise<void>;
|
|
27
28
|
}
|
|
28
29
|
|
|
29
|
-
export { type ControllerDecoratorOptions as C, type HandlerType as H, type LexerToken as L, type MiddlewareProvider as M, type Request as R, type Response as a,
|
|
30
|
+
export { type ControllerDecoratorOptions as C, type HandlerType as H, type LexerToken as L, type MiddlewareProvider as M, type Request as R, type Response as a, type HttpMethod as b, Middleware as c };
|
|
@@ -2,7 +2,7 @@ import { IncomingMessage, ServerResponse } from 'http';
|
|
|
2
2
|
|
|
3
3
|
type Request = IncomingMessage & {
|
|
4
4
|
params: any;
|
|
5
|
-
method:
|
|
5
|
+
method: HttpMethod;
|
|
6
6
|
headers?: Record<string, string>;
|
|
7
7
|
body?: any;
|
|
8
8
|
raw_body?: any;
|
|
@@ -19,6 +19,7 @@ type ControllerDecoratorOptions = {
|
|
|
19
19
|
middlewares?: MiddlewareProvider[];
|
|
20
20
|
};
|
|
21
21
|
type MiddlewareProvider = typeof Middleware | Middleware | ((request: Request, response: Response, next: () => Promise<void>) => Promise<void>);
|
|
22
|
+
type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS';
|
|
22
23
|
|
|
23
24
|
declare abstract class Middleware {
|
|
24
25
|
protected constructor(params?: any);
|
|
@@ -26,4 +27,4 @@ declare abstract class Middleware {
|
|
|
26
27
|
abstract call(req: Request, res: Response, next: () => Promise<void>): Promise<void>;
|
|
27
28
|
}
|
|
28
29
|
|
|
29
|
-
export { type ControllerDecoratorOptions as C, type HandlerType as H, type LexerToken as L, type MiddlewareProvider as M, type Request as R, type Response as a,
|
|
30
|
+
export { type ControllerDecoratorOptions as C, type HandlerType as H, type LexerToken as L, type MiddlewareProvider as M, type Request as R, type Response as a, type HttpMethod as b, Middleware as c };
|
package/dist/Middleware.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { c as Middleware } from './Middleware-C8dxjlFD.mjs';
|
|
2
2
|
import 'http';
|
package/dist/Middleware.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { c as Middleware } from './Middleware-C8dxjlFD.js';
|
|
2
2
|
import 'http';
|
package/dist/Route.d.mts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { H as HandlerType, L as LexerToken, R as Request, M as MiddlewareProvider, a as Response } from './Middleware-
|
|
1
|
+
import { b as HttpMethod, H as HandlerType, L as LexerToken, R as Request, M as MiddlewareProvider, a as Response } from './Middleware-C8dxjlFD.mjs';
|
|
2
2
|
import 'http';
|
|
3
3
|
|
|
4
4
|
declare class Route {
|
|
5
|
-
methods:
|
|
5
|
+
methods: HttpMethod[];
|
|
6
6
|
path: string;
|
|
7
7
|
handler: HandlerType;
|
|
8
8
|
private middlewares;
|
|
9
9
|
private urlRegex;
|
|
10
|
-
constructor(methods:
|
|
10
|
+
constructor(methods: HttpMethod[], path: string, handler: HandlerType);
|
|
11
11
|
pathToRegex(path: string): RegExp;
|
|
12
12
|
lexUrlPath(path: string): {
|
|
13
13
|
type: string;
|
|
@@ -20,6 +20,7 @@ declare class Route {
|
|
|
20
20
|
* @returns return true if route is a match for this request
|
|
21
21
|
*/
|
|
22
22
|
test(request: Request): boolean;
|
|
23
|
+
testPath(pathname: string): boolean;
|
|
23
24
|
/**
|
|
24
25
|
* returns details of the match, otherwise it returns false
|
|
25
26
|
* @param request the request to match
|
package/dist/Route.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { H as HandlerType, L as LexerToken, R as Request, M as MiddlewareProvider, a as Response } from './Middleware-
|
|
1
|
+
import { b as HttpMethod, H as HandlerType, L as LexerToken, R as Request, M as MiddlewareProvider, a as Response } from './Middleware-C8dxjlFD.js';
|
|
2
2
|
import 'http';
|
|
3
3
|
|
|
4
4
|
declare class Route {
|
|
5
|
-
methods:
|
|
5
|
+
methods: HttpMethod[];
|
|
6
6
|
path: string;
|
|
7
7
|
handler: HandlerType;
|
|
8
8
|
private middlewares;
|
|
9
9
|
private urlRegex;
|
|
10
|
-
constructor(methods:
|
|
10
|
+
constructor(methods: HttpMethod[], path: string, handler: HandlerType);
|
|
11
11
|
pathToRegex(path: string): RegExp;
|
|
12
12
|
lexUrlPath(path: string): {
|
|
13
13
|
type: string;
|
|
@@ -20,6 +20,7 @@ declare class Route {
|
|
|
20
20
|
* @returns return true if route is a match for this request
|
|
21
21
|
*/
|
|
22
22
|
test(request: Request): boolean;
|
|
23
|
+
testPath(pathname: string): boolean;
|
|
23
24
|
/**
|
|
24
25
|
* returns details of the match, otherwise it returns false
|
|
25
26
|
* @param request the request to match
|
package/dist/Route.js
CHANGED
|
@@ -96,7 +96,10 @@ class Route {
|
|
|
96
96
|
return false;
|
|
97
97
|
}
|
|
98
98
|
const url = new URL(request.url || "/", "http://localhost");
|
|
99
|
-
return this.
|
|
99
|
+
return this.testPath(url.pathname);
|
|
100
|
+
}
|
|
101
|
+
testPath(pathname) {
|
|
102
|
+
return this.urlRegex.test(pathname);
|
|
100
103
|
}
|
|
101
104
|
/**
|
|
102
105
|
* returns details of the match, otherwise it returns false
|
package/dist/Route.js.map
CHANGED
|
@@ -1 +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:
|
|
1
|
+
{"version":3,"sources":["../src/Route.ts"],"sourcesContent":["import { Middleware } from './Middleware';\nimport { MiddlewareFactory } from './MiddlewareFactory';\nimport { HandlerType, HttpMethod, 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: HttpMethod[],\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 as HttpMethod) === -1) {\n return false;\n }\n const url = new URL(request.url || '/', 'http://localhost');\n return this.testPath(url.pathname);\n }\n\n testPath(pathname: string) {\n return this.urlRegex.test(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 as HttpMethod) === -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":"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","names":[]}
|
package/dist/Route.mjs
CHANGED
|
@@ -73,7 +73,10 @@ class Route {
|
|
|
73
73
|
return false;
|
|
74
74
|
}
|
|
75
75
|
const url = new URL(request.url || "/", "http://localhost");
|
|
76
|
-
return this.
|
|
76
|
+
return this.testPath(url.pathname);
|
|
77
|
+
}
|
|
78
|
+
testPath(pathname) {
|
|
79
|
+
return this.urlRegex.test(pathname);
|
|
77
80
|
}
|
|
78
81
|
/**
|
|
79
82
|
* returns details of the match, otherwise it returns false
|
package/dist/Route.mjs.map
CHANGED
|
@@ -1 +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:
|
|
1
|
+
{"version":3,"sources":["../src/Route.ts"],"sourcesContent":["import { Middleware } from './Middleware';\nimport { MiddlewareFactory } from './MiddlewareFactory';\nimport { HandlerType, HttpMethod, 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: HttpMethod[],\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 as HttpMethod) === -1) {\n return false;\n }\n const url = new URL(request.url || '/', 'http://localhost');\n return this.testPath(url.pathname);\n }\n\n testPath(pathname: string) {\n return this.urlRegex.test(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 as HttpMethod) === -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":"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","names":[]}
|
package/dist/Router.d.mts
CHANGED
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { CompiledRoute } from './CompiledRoute.mjs';
|
|
2
2
|
import { BaseController } from './Controller.mjs';
|
|
3
3
|
import { Route } from './Route.mjs';
|
|
4
|
-
import { H as HandlerType, M as MiddlewareProvider, R as Request, a as Response } from './Middleware-
|
|
4
|
+
import { b as HttpMethod, H as HandlerType, M as MiddlewareProvider, R as Request, a as Response } from './Middleware-C8dxjlFD.mjs';
|
|
5
5
|
import 'http';
|
|
6
6
|
|
|
7
7
|
declare class Router {
|
|
8
|
+
private middlewares;
|
|
8
9
|
routes: Route[];
|
|
9
|
-
addRoute(methods:
|
|
10
|
+
addRoute(methods: HttpMethod[], path: string, handler: HandlerType): Route;
|
|
11
|
+
getMiddlewares(): MiddlewareProvider[];
|
|
10
12
|
addController(controller: typeof BaseController): void;
|
|
11
|
-
private middlewares;
|
|
12
13
|
addGlobalMiddleware(middlewares: MiddlewareProvider | MiddlewareProvider[]): void;
|
|
13
14
|
resolve(request: Request): Route | undefined;
|
|
15
|
+
resolveMultiple(request: Request): Route[];
|
|
14
16
|
getCompiledRoute(request: Request, response: Response): CompiledRoute | undefined;
|
|
15
17
|
}
|
|
16
18
|
|
package/dist/Router.d.ts
CHANGED
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { CompiledRoute } from './CompiledRoute.js';
|
|
2
2
|
import { BaseController } from './Controller.js';
|
|
3
3
|
import { Route } from './Route.js';
|
|
4
|
-
import { H as HandlerType, M as MiddlewareProvider, R as Request, a as Response } from './Middleware-
|
|
4
|
+
import { b as HttpMethod, H as HandlerType, M as MiddlewareProvider, R as Request, a as Response } from './Middleware-C8dxjlFD.js';
|
|
5
5
|
import 'http';
|
|
6
6
|
|
|
7
7
|
declare class Router {
|
|
8
|
+
private middlewares;
|
|
8
9
|
routes: Route[];
|
|
9
|
-
addRoute(methods:
|
|
10
|
+
addRoute(methods: HttpMethod[], path: string, handler: HandlerType): Route;
|
|
11
|
+
getMiddlewares(): MiddlewareProvider[];
|
|
10
12
|
addController(controller: typeof BaseController): void;
|
|
11
|
-
private middlewares;
|
|
12
13
|
addGlobalMiddleware(middlewares: MiddlewareProvider | MiddlewareProvider[]): void;
|
|
13
14
|
resolve(request: Request): Route | undefined;
|
|
15
|
+
resolveMultiple(request: Request): Route[];
|
|
14
16
|
getCompiledRoute(request: Request, response: Response): CompiledRoute | undefined;
|
|
15
17
|
}
|
|
16
18
|
|
package/dist/Router.js
CHANGED
|
@@ -56,14 +56,17 @@ var import_Route = require("./Route");
|
|
|
56
56
|
var import_path = __toESM(require("path"));
|
|
57
57
|
class Router {
|
|
58
58
|
constructor() {
|
|
59
|
-
this.routes = [];
|
|
60
59
|
this.middlewares = [];
|
|
60
|
+
this.routes = [];
|
|
61
61
|
}
|
|
62
62
|
addRoute(methods, path2, handler) {
|
|
63
63
|
const route = new import_Route.Route(methods, path2, handler);
|
|
64
64
|
this.routes.push(route);
|
|
65
65
|
return route;
|
|
66
66
|
}
|
|
67
|
+
getMiddlewares() {
|
|
68
|
+
return [...this.middlewares];
|
|
69
|
+
}
|
|
67
70
|
addController(controller) {
|
|
68
71
|
const basePath = controller.basePath || "";
|
|
69
72
|
for (const route of controller.routes) {
|
|
@@ -85,6 +88,16 @@ class Router {
|
|
|
85
88
|
}
|
|
86
89
|
return void 0;
|
|
87
90
|
}
|
|
91
|
+
resolveMultiple(request) {
|
|
92
|
+
const rc = [];
|
|
93
|
+
const url = new URL(request.url || "/", "http://localhost");
|
|
94
|
+
for (const route of this.routes) {
|
|
95
|
+
if (route.testPath(url.pathname)) {
|
|
96
|
+
rc.push(route);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return rc;
|
|
100
|
+
}
|
|
88
101
|
getCompiledRoute(request, response) {
|
|
89
102
|
const route = this.resolve(request);
|
|
90
103
|
if (!route) {
|
|
@@ -96,7 +109,7 @@ class Router {
|
|
|
96
109
|
}
|
|
97
110
|
request.query = Object.fromEntries(match.url.searchParams.entries());
|
|
98
111
|
request.params = match.params;
|
|
99
|
-
return new import_CompiledRoute.CompiledRoute(route,
|
|
112
|
+
return new import_CompiledRoute.CompiledRoute(route, request, response, this.middlewares);
|
|
100
113
|
}
|
|
101
114
|
}
|
|
102
115
|
// Annotate the CommonJS export names for ESM import in node:
|
package/dist/Router.js.map
CHANGED
|
@@ -1 +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:
|
|
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, HttpMethod, MiddlewareProvider } from './types';\nimport { LexerToken, Request, Response } from './types';\nimport path from 'path';\n\nexport class Router {\n private middlewares: MiddlewareProvider[] = [];\n routes: Route[] = [];\n addRoute(methods: HttpMethod[], path: string, handler: HandlerType) {\n const route: Route = new Route(methods, path, handler);\n this.routes.push(route);\n return route;\n }\n\n getMiddlewares() {\n return [...this.middlewares];\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 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 resolveMultiple(request: Request): Route[] {\n const rc: Route[] = [];\n const url = new URL(request.url || '/', 'http://localhost');\n for (const route of this.routes) {\n if (route.testPath(url.pathname)) {\n rc.push(route);\n }\n }\n return rc;\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, 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,SAAQ,cAAoC,CAAC;AAC7C,kBAAkB,CAAC;AAAA;AAAA,EACnB,SAAS,SAAuBA,OAAc,SAAsB;AAClE,UAAM,QAAe,IAAI,mBAAM,SAASA,OAAM,OAAO;AACrD,SAAK,OAAO,KAAK,KAAK;AACtB,WAAO;AAAA,EACT;AAAA,EAEA,iBAAiB;AACf,WAAO,CAAC,GAAG,KAAK,WAAW;AAAA,EAC7B;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,EAEA,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,gBAAgB,SAA2B;AACzC,UAAM,KAAc,CAAC;AACrB,UAAM,MAAM,IAAI,IAAI,QAAQ,OAAO,KAAK,kBAAkB;AAC1D,eAAW,SAAS,KAAK,QAAQ;AAC/B,UAAI,MAAM,SAAS,IAAI,QAAQ,GAAG;AAChC,WAAG,KAAK,KAAK;AAAA,MACf;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,SAAS,UAAU,KAAK,WAAW;AAAA,EACrE;AACF;","names":["path"]}
|
package/dist/Router.mjs
CHANGED
|
@@ -23,14 +23,17 @@ import { Route } from "./Route";
|
|
|
23
23
|
import path from "path";
|
|
24
24
|
class Router {
|
|
25
25
|
constructor() {
|
|
26
|
-
this.routes = [];
|
|
27
26
|
this.middlewares = [];
|
|
27
|
+
this.routes = [];
|
|
28
28
|
}
|
|
29
29
|
addRoute(methods, path2, handler) {
|
|
30
30
|
const route = new Route(methods, path2, handler);
|
|
31
31
|
this.routes.push(route);
|
|
32
32
|
return route;
|
|
33
33
|
}
|
|
34
|
+
getMiddlewares() {
|
|
35
|
+
return [...this.middlewares];
|
|
36
|
+
}
|
|
34
37
|
addController(controller) {
|
|
35
38
|
const basePath = controller.basePath || "";
|
|
36
39
|
for (const route of controller.routes) {
|
|
@@ -52,6 +55,16 @@ class Router {
|
|
|
52
55
|
}
|
|
53
56
|
return void 0;
|
|
54
57
|
}
|
|
58
|
+
resolveMultiple(request) {
|
|
59
|
+
const rc = [];
|
|
60
|
+
const url = new URL(request.url || "/", "http://localhost");
|
|
61
|
+
for (const route of this.routes) {
|
|
62
|
+
if (route.testPath(url.pathname)) {
|
|
63
|
+
rc.push(route);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return rc;
|
|
67
|
+
}
|
|
55
68
|
getCompiledRoute(request, response) {
|
|
56
69
|
const route = this.resolve(request);
|
|
57
70
|
if (!route) {
|
|
@@ -63,7 +76,7 @@ class Router {
|
|
|
63
76
|
}
|
|
64
77
|
request.query = Object.fromEntries(match.url.searchParams.entries());
|
|
65
78
|
request.params = match.params;
|
|
66
|
-
return new CompiledRoute(route,
|
|
79
|
+
return new CompiledRoute(route, request, response, this.middlewares);
|
|
67
80
|
}
|
|
68
81
|
}
|
|
69
82
|
export {
|
package/dist/Router.mjs.map
CHANGED
|
@@ -1 +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:
|
|
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, HttpMethod, MiddlewareProvider } from './types';\nimport { LexerToken, Request, Response } from './types';\nimport path from 'path';\n\nexport class Router {\n private middlewares: MiddlewareProvider[] = [];\n routes: Route[] = [];\n addRoute(methods: HttpMethod[], path: string, handler: HandlerType) {\n const route: Route = new Route(methods, path, handler);\n this.routes.push(route);\n return route;\n }\n\n getMiddlewares() {\n return [...this.middlewares];\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 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 resolveMultiple(request: Request): Route[] {\n const rc: Route[] = [];\n const url = new URL(request.url || '/', 'http://localhost');\n for (const route of this.routes) {\n if (route.testPath(url.pathname)) {\n rc.push(route);\n }\n }\n return rc;\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, request, response, this.middlewares);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,SAAS,qBAAqB;AAI9B,SAAS,aAAa;AAGtB,OAAO,UAAU;AAEV,MAAM,OAAO;AAAA,EAAb;AACL,SAAQ,cAAoC,CAAC;AAC7C,kBAAkB,CAAC;AAAA;AAAA,EACnB,SAAS,SAAuBA,OAAc,SAAsB;AAClE,UAAM,QAAe,IAAI,MAAM,SAASA,OAAM,OAAO;AACrD,SAAK,OAAO,KAAK,KAAK;AACtB,WAAO;AAAA,EACT;AAAA,EAEA,iBAAiB;AACf,WAAO,CAAC,GAAG,KAAK,WAAW;AAAA,EAC7B;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,EAEA,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,gBAAgB,SAA2B;AACzC,UAAM,KAAc,CAAC;AACrB,UAAM,MAAM,IAAI,IAAI,QAAQ,OAAO,KAAK,kBAAkB;AAC1D,eAAW,SAAS,KAAK,QAAQ;AAC/B,UAAI,MAAM,SAAS,IAAI,QAAQ,GAAG;AAChC,WAAG,KAAK,KAAK;AAAA,MACf;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,SAAS,UAAU,KAAK,WAAW;AAAA,EACrE;AACF;","names":["path"]}
|
package/dist/helpers.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { c as Middleware, R as Request, a as Response } from './Middleware-C8dxjlFD.mjs';
|
|
2
2
|
import 'http';
|
|
3
3
|
|
|
4
4
|
declare function runNext(middlewares: Middleware[], req: Request, res: Response, final: (request: Request, response: Response) => Promise<void>): Promise<void>;
|
package/dist/helpers.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { c as Middleware, R as Request, a as Response } from './Middleware-C8dxjlFD.js';
|
|
2
2
|
import 'http';
|
|
3
3
|
|
|
4
4
|
declare function runNext(middlewares: Middleware[], req: Request, res: Response, final: (request: Request, response: Response) => Promise<void>): Promise<void>;
|
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { C as ControllerDecoratorOptions, H as HandlerType, L as LexerToken,
|
|
1
|
+
export { C as ControllerDecoratorOptions, H as HandlerType, b as HttpMethod, L as LexerToken, c as Middleware, M as MiddlewareProvider, R as Request, a as Response } from './Middleware-C8dxjlFD.mjs';
|
|
2
2
|
export { CompiledRoute } from './CompiledRoute.mjs';
|
|
3
|
-
export { BaseController, Controller, Delete, Get, Patch, Post, Put, createParamDecorator } from './Controller.mjs';
|
|
3
|
+
export { BaseController, Controller, Delete, Get, Options, Patch, Post, Put, createParamDecorator } from './Controller.mjs';
|
|
4
4
|
export { Route } from './Route.mjs';
|
|
5
5
|
export { Router } from './Router.mjs';
|
|
6
6
|
export { MiddlewareFactory } from './MiddlewareFactory.mjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { C as ControllerDecoratorOptions, H as HandlerType, L as LexerToken,
|
|
1
|
+
export { C as ControllerDecoratorOptions, H as HandlerType, b as HttpMethod, L as LexerToken, c as Middleware, M as MiddlewareProvider, R as Request, a as Response } from './Middleware-C8dxjlFD.js';
|
|
2
2
|
export { CompiledRoute } from './CompiledRoute.js';
|
|
3
|
-
export { BaseController, Controller, Delete, Get, Patch, Post, Put, createParamDecorator } from './Controller.js';
|
|
3
|
+
export { BaseController, Controller, Delete, Get, Options, Patch, Post, Put, createParamDecorator } from './Controller.js';
|
|
4
4
|
export { Route } from './Route.js';
|
|
5
5
|
export { Router } from './Router.js';
|
|
6
6
|
export { MiddlewareFactory } from './MiddlewareFactory.js';
|
package/dist/types.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import 'http';
|
|
2
|
-
export { C as ControllerDecoratorOptions, H as HandlerType, L as LexerToken, M as MiddlewareProvider, R as Request, a as Response } from './Middleware-
|
|
2
|
+
export { C as ControllerDecoratorOptions, H as HandlerType, b as HttpMethod, L as LexerToken, M as MiddlewareProvider, R as Request, a as Response } from './Middleware-C8dxjlFD.mjs';
|
package/dist/types.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import 'http';
|
|
2
|
-
export { C as ControllerDecoratorOptions, H as HandlerType, L as LexerToken, M as MiddlewareProvider, R as Request, a as Response } from './Middleware-
|
|
2
|
+
export { C as ControllerDecoratorOptions, H as HandlerType, b as HttpMethod, L as LexerToken, M as MiddlewareProvider, R as Request, a as Response } from './Middleware-C8dxjlFD.js';
|
package/dist/types.js.map
CHANGED
|
@@ -1 +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:
|
|
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: HttpMethod;\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\nexport type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS';\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
|