@deepkit/http 1.0.1-alpha.92 → 1.0.1-alpha.93
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/cjs/src/http.d.ts +7 -6
- package/dist/cjs/src/http.js +22 -12
- package/dist/cjs/src/http.js.map +1 -1
- package/dist/cjs/src/kernel.js +18 -1
- package/dist/cjs/src/kernel.js.map +1 -1
- package/dist/cjs/src/logger.js +1 -1
- package/dist/cjs/src/logger.js.map +1 -1
- package/dist/cjs/src/model.d.ts +17 -0
- package/dist/cjs/src/model.js +10 -2
- package/dist/cjs/src/model.js.map +1 -1
- package/dist/cjs/src/module.d.ts +4 -1
- package/dist/cjs/src/module.js +57 -1
- package/dist/cjs/src/module.js.map +1 -1
- package/dist/cjs/src/request-parser.d.ts +35 -0
- package/dist/cjs/src/request-parser.js +302 -0
- package/dist/cjs/src/request-parser.js.map +1 -0
- package/dist/cjs/src/resolver.d.ts +27 -0
- package/dist/cjs/src/resolver.js +246 -0
- package/dist/cjs/src/resolver.js.map +1 -0
- package/dist/cjs/src/router.d.ts +7 -20
- package/dist/cjs/src/router.js +23 -247
- package/dist/cjs/src/router.js.map +1 -1
- package/dist/cjs/src/static-serving.js +1 -1
- package/dist/cjs/src/static-serving.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/src/http.d.ts +7 -6
- package/dist/esm/src/http.js +22 -12
- package/dist/esm/src/http.js.map +1 -1
- package/dist/esm/src/kernel.js +19 -2
- package/dist/esm/src/kernel.js.map +1 -1
- package/dist/esm/src/logger.js +1 -1
- package/dist/esm/src/logger.js.map +1 -1
- package/dist/esm/src/model.d.ts +17 -0
- package/dist/esm/src/model.js +9 -1
- package/dist/esm/src/model.js.map +1 -1
- package/dist/esm/src/module.d.ts +4 -1
- package/dist/esm/src/module.js +59 -3
- package/dist/esm/src/module.js.map +1 -1
- package/dist/esm/src/request-parser.d.ts +35 -0
- package/dist/esm/src/request-parser.js +292 -0
- package/dist/esm/src/request-parser.js.map +1 -0
- package/dist/esm/src/resolver.d.ts +27 -0
- package/dist/esm/src/resolver.js +238 -0
- package/dist/esm/src/resolver.js.map +1 -0
- package/dist/esm/src/router.d.ts +7 -20
- package/dist/esm/src/router.js +26 -250
- package/dist/esm/src/router.js.map +1 -1
- package/dist/esm/src/static-serving.js +1 -1
- package/dist/esm/src/static-serving.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +11 -11
- package/src/http.ts +15 -8
- package/src/kernel.ts +22 -3
- package/src/logger.ts +1 -1
- package/src/model.ts +6 -1
- package/src/module.ts +59 -2
- package/src/request-parser.ts +340 -0
- package/src/router.ts +26 -290
- package/src/static-serving.ts +1 -1
package/dist/esm/src/model.d.ts
CHANGED
|
@@ -20,6 +20,10 @@ export declare type HttpRequestQuery = {
|
|
|
20
20
|
export declare type HttpRequestResolvedParameters = {
|
|
21
21
|
[name: string]: any;
|
|
22
22
|
};
|
|
23
|
+
export declare type HttpRequestPositionedParameters = {
|
|
24
|
+
arguments: any[];
|
|
25
|
+
parameters: HttpRequestResolvedParameters;
|
|
26
|
+
};
|
|
23
27
|
export declare class BodyValidationError {
|
|
24
28
|
readonly errors: ValidationErrorItem[];
|
|
25
29
|
constructor(errors?: ValidationErrorItem[]);
|
|
@@ -42,6 +46,16 @@ export declare type HttpBody<T> = T & {
|
|
|
42
46
|
export declare type HttpBodyValidation<T> = ValidatedBody<T> & {
|
|
43
47
|
__meta?: ['httpBodyValidation'];
|
|
44
48
|
};
|
|
49
|
+
export declare type HttpPath<T, Options extends {
|
|
50
|
+
name?: string;
|
|
51
|
+
} = {}> = T & {
|
|
52
|
+
__meta?: ['httpPath', Options];
|
|
53
|
+
};
|
|
54
|
+
export declare type HttpHeader<T, Options extends {
|
|
55
|
+
name?: string;
|
|
56
|
+
} = {}> = T & {
|
|
57
|
+
__meta?: ['httpHeader', Options];
|
|
58
|
+
};
|
|
45
59
|
export declare type HttpQuery<T, Options extends {
|
|
46
60
|
name?: string;
|
|
47
61
|
} = {}> = T & {
|
|
@@ -140,8 +154,11 @@ export declare class MemoryHttpResponse extends HttpResponse {
|
|
|
140
154
|
}
|
|
141
155
|
export declare type __ΩHttpRequestQuery = any[];
|
|
142
156
|
export declare type __ΩHttpRequestResolvedParameters = any[];
|
|
157
|
+
export declare type __ΩHttpRequestPositionedParameters = any[];
|
|
143
158
|
export declare type __ΩHttpBody = any[];
|
|
144
159
|
export declare type __ΩHttpBodyValidation = any[];
|
|
160
|
+
export declare type __ΩHttpPath = any[];
|
|
161
|
+
export declare type __ΩHttpHeader = any[];
|
|
145
162
|
export declare type __ΩHttpQuery = any[];
|
|
146
163
|
export declare type __ΩHttpQueries = any[];
|
|
147
164
|
export declare type __ΩHttpRegExp = any[];
|
package/dist/esm/src/model.js
CHANGED
|
@@ -92,6 +92,8 @@ const __ΩHttpRequestQuery = ['P&&LM'];
|
|
|
92
92
|
export { __ΩHttpRequestQuery as __ΩHttpRequestQuery };
|
|
93
93
|
const __ΩHttpRequestResolvedParameters = ['P&"LM'];
|
|
94
94
|
export { __ΩHttpRequestResolvedParameters as __ΩHttpRequestResolvedParameters };
|
|
95
|
+
const __ΩHttpRequestPositionedParameters = ['arguments', () => __ΩHttpRequestResolvedParameters, 'parameters', 'P"F4!n"4#M'];
|
|
96
|
+
export { __ΩHttpRequestPositionedParameters as __ΩHttpRequestPositionedParameters };
|
|
95
97
|
export class BodyValidationError {
|
|
96
98
|
constructor(errors = []) {
|
|
97
99
|
this.errors = errors;
|
|
@@ -126,6 +128,10 @@ const __ΩHttpBody = ['T', "httpBody", '__meta', 'b!Pe"!PP."G4#8MK'];
|
|
|
126
128
|
export { __ΩHttpBody as __ΩHttpBody };
|
|
127
129
|
const __ΩHttpBodyValidation = ['T', () => ValidatedBody, "httpBodyValidation", '__meta', 'b!PPe#!7"PP.#G4$8MK'];
|
|
128
130
|
export { __ΩHttpBodyValidation as __ΩHttpBodyValidation };
|
|
131
|
+
const __ΩHttpPath = ['T', 'Options', "httpPath", '__meta', 'b!PMc"Pe"!PP.#e$"G4$8MK'];
|
|
132
|
+
export { __ΩHttpPath as __ΩHttpPath };
|
|
133
|
+
const __ΩHttpHeader = ['T', 'Options', "httpHeader", '__meta', 'b!PMc"Pe"!PP.#e$"G4$8MK'];
|
|
134
|
+
export { __ΩHttpHeader as __ΩHttpHeader };
|
|
129
135
|
const __ΩHttpQuery = ['T', 'Options', "httpQuery", '__meta', 'b!PMc"Pe"!PP.#e$"G4$8MK'];
|
|
130
136
|
export { __ΩHttpQuery as __ΩHttpQuery };
|
|
131
137
|
const __ΩHttpQueries = ['T', 'Options', "httpQueries", '__meta', 'b!PMc"Pe"!PP.#e$"G4$8MK'];
|
|
@@ -344,7 +350,9 @@ export class MemoryHttpResponse extends HttpResponse {
|
|
|
344
350
|
}
|
|
345
351
|
this.body = Buffer.concat([this.body, chunk]);
|
|
346
352
|
}
|
|
347
|
-
|
|
353
|
+
super.end(chunk, encoding, callback);
|
|
354
|
+
this.emit('finish');
|
|
355
|
+
return this;
|
|
348
356
|
}
|
|
349
357
|
}
|
|
350
358
|
MemoryHttpResponse.__type = [() => HttpResponse, 'body', function () { return Buffer.alloc(0); }, 'headers', function () { return Object.create(null); }, 'name', () => __ΩReadonlyArray, 'value', 'setHeader', 'removeHeader', 'getHeader', 'getHeaders', 'statusCode', 'headersOrReasonPhrase', 'writeHead', 'chunk', 'encoding', 'callback', 'write', 'end', 'P7!!3">#P&P\'&&F-JLM3$>%P&2&P\'&&o\'"J2(!0)P&2&"0*P&2&"0+P!0,P\'2-P&!!FJ2.8P!!FJ2$8!0/!!P"20"21"228"03P"20"218"228"045'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/model.ts"],"names":[],"mappings":";;;;;;;;AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,eAAe,EAA2C,cAAc,EAAE,MAAM,MAAM,CAAC;AAChG,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,WAAW,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAQ,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExD,MAAM,OAAO,YAAa,SAAQ,cAAc;IAC5C,MAAM,CAAC,IAAY;QACf,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,GAAG,EAAE,CAAC;IACf,CAAC;;;AAGL;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAwB;IAC7C,OAAO,cAAc,cAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACtC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,OAAO,CAAC,EAAE,CAAC,MAAM,eAAE,CAAC,KAAa,EAAE,EAAE;YACjC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,4BAAC,CAAC;QACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACnB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACnC,mEAAmE;YAClE,OAAuB,CAAC,IAAI,GAAG,IAAI,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,EAAE,CAAC,OAAO,eAAE,CAAC,KAAY,EAAE,EAAE;YACjC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC,6CAAC,CAAC;IACP,CAAC,2CAAC,CAAC;AACP,CAAC;;AAED,MAAM,UAAU,2BAA2B,CAAC,OAAiC,EAAE,IAAY;;IACvF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAExB,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC;QAC1B,KAAK,wBAAL,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ;YAC3B,QAAQ,EAAE,CAAC;QACf,CAAC;QACD,MAAM,wBAAN,MAAM,CAAC,MAAM,EAAE,QAAQ;YACnB,QAAQ,EAAE,CAAC;QACf,CAAC;KACJ,CAAC,CAAC;IACH,OAAO,IAAI,MAAC,KAAM,SAAQ,WAAW;YAAzB;;gBACR,QAAG,GAAG,GAAG,CAAC;gBACV,WAAM,GAAG,MAAM,CAAC;gBAChB,aAAQ,GAAG,CAAC,CAAC;gBAEb,YAAO,GAAG,OAAc,CAAC;aAW5B;YATG,KAAK,CAAC,IAAY;gBACd,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACf,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACnB;qBAAM;oBACH,sEAAsE;oBACtE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACrB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACnB;YACL,CAAC;SACJ;;WAAC,CAAC,QAAe,CAAC,CAAC;AACxB,CAAC
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/model.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/src/module.d.ts
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { HttpConfig } from './module.config.js';
|
|
2
|
-
import { AppModule } from '@deepkit/app';
|
|
2
|
+
import { AddedListener, AppModule } from '@deepkit/app';
|
|
3
3
|
import { HttpControllers } from './controllers.js';
|
|
4
4
|
import '@deepkit/type';
|
|
5
5
|
import { ClassType } from '@deepkit/core';
|
|
6
|
+
import { EventToken } from '@deepkit/event';
|
|
6
7
|
declare const HttpModule_base: import("@deepkit/app").AppModuleClass<HttpConfig>;
|
|
7
8
|
export declare class HttpModule extends HttpModule_base {
|
|
8
9
|
protected httpControllers: HttpControllers;
|
|
9
10
|
process(): void;
|
|
11
|
+
protected patchEventsForHttpRequestAccess: EventToken<any>[];
|
|
12
|
+
processListener(module: AppModule<any>, listener: AddedListener): void;
|
|
10
13
|
processController(module: AppModule<any>, controller: ClassType): void;
|
|
11
14
|
}
|
|
12
15
|
export {};
|
package/dist/esm/src/module.js
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
/*@ts-ignore*/
|
|
2
2
|
import { __ΩClassType as __ΩClassType } from '@deepkit/core';
|
|
3
|
+
function __assignType(fn, args) {
|
|
4
|
+
fn.__type = args;
|
|
5
|
+
return fn;
|
|
6
|
+
}
|
|
3
7
|
import { HttpListener, HttpResultFormatter, httpWorkflow } from './http.js';
|
|
4
8
|
import { HttpConfig } from './module.config.js';
|
|
5
|
-
import { AppModule, createModule } from '@deepkit/app';
|
|
6
|
-
import { HttpRouter, HttpRouterRegistry } from './router.js';
|
|
9
|
+
import { AppModule, createModule, stringifyListener } from '@deepkit/app';
|
|
10
|
+
import { HttpRouter, HttpRouterRegistry, RouteConfig } from './router.js';
|
|
7
11
|
import { HttpKernel } from './kernel.js';
|
|
8
12
|
import { HttpRouterFilterResolver } from './filter.js';
|
|
9
13
|
import { HttpControllers } from './controllers.js';
|
|
@@ -11,6 +15,15 @@ import { ConsoleTransport, Logger } from '@deepkit/logger';
|
|
|
11
15
|
import { HttpRequest, HttpResponse } from './model.js';
|
|
12
16
|
import '@deepkit/type';
|
|
13
17
|
import { httpClass } from './decorator.js';
|
|
18
|
+
import { EventToken } from '@deepkit/event';
|
|
19
|
+
import { metaAnnotation, ReflectionKind, ReflectionParameter } from '@deepkit/type';
|
|
20
|
+
import { buildRequestParser } from './request-parser.js';
|
|
21
|
+
import { InjectorContext } from '@deepkit/injector';
|
|
22
|
+
function parameterRequiresRequest(parameter) {
|
|
23
|
+
return Boolean(metaAnnotation.getForName(parameter.type, 'httpQueries') || metaAnnotation.getForName(parameter.type, 'httpQuery')
|
|
24
|
+
|| metaAnnotation.getForName(parameter.type, 'httpBody') || metaAnnotation.getForName(parameter.type, 'httpPath') || metaAnnotation.getForName(parameter.type, 'httpHeader'));
|
|
25
|
+
}
|
|
26
|
+
parameterRequiresRequest.__type = [() => ReflectionParameter, 'parameter', 'parameterRequiresRequest', 'PP7!2")/#'];
|
|
14
27
|
export class HttpModule extends createModule({
|
|
15
28
|
config: HttpConfig,
|
|
16
29
|
providers: [
|
|
@@ -21,6 +34,7 @@ export class HttpModule extends createModule({
|
|
|
21
34
|
HttpRouterFilterResolver,
|
|
22
35
|
{ provide: HttpResponse, scope: 'http' },
|
|
23
36
|
{ provide: HttpRequest, scope: 'http' },
|
|
37
|
+
{ provide: RouteConfig, useValue: undefined, scope: 'http' },
|
|
24
38
|
{ provide: Logger, useValue: new Logger([new ConsoleTransport()]) },
|
|
25
39
|
],
|
|
26
40
|
listeners: [
|
|
@@ -38,16 +52,58 @@ export class HttpModule extends createModule({
|
|
|
38
52
|
HttpResponse,
|
|
39
53
|
HttpRequest,
|
|
40
54
|
HttpControllers,
|
|
55
|
+
RouteConfig,
|
|
41
56
|
Logger,
|
|
42
57
|
]
|
|
43
58
|
}) {
|
|
44
59
|
constructor() {
|
|
45
60
|
super(...arguments);
|
|
46
61
|
this.httpControllers = new HttpControllers;
|
|
62
|
+
this.patchEventsForHttpRequestAccess = [httpWorkflow.onRequest, httpWorkflow.onAuth, httpWorkflow.onController];
|
|
47
63
|
}
|
|
48
64
|
process() {
|
|
49
65
|
this.addProvider({ provide: HttpControllers, useValue: this.httpControllers });
|
|
50
66
|
}
|
|
67
|
+
processListener(module, listener) {
|
|
68
|
+
if (!this.patchEventsForHttpRequestAccess.includes(listener.eventToken))
|
|
69
|
+
return;
|
|
70
|
+
let requiresHttpRequest = false;
|
|
71
|
+
let needsAsync = false;
|
|
72
|
+
const params = listener.reflection.getParameters().slice(1);
|
|
73
|
+
for (const parameter of params) {
|
|
74
|
+
if (metaAnnotation.getForName(parameter.type, 'httpBody'))
|
|
75
|
+
needsAsync = true;
|
|
76
|
+
if (parameterRequiresRequest(parameter))
|
|
77
|
+
requiresHttpRequest = true;
|
|
78
|
+
}
|
|
79
|
+
if (needsAsync) {
|
|
80
|
+
//not yet supported since we have to patch the listener to be async and redirect the call (as the DI container is sync).
|
|
81
|
+
throw new Error(`Listener ${stringifyListener(listener)} requires async HttpBody. This is not yet supported. You have to parse the request manually by injecting HttpRequest.`);
|
|
82
|
+
}
|
|
83
|
+
for (let index = 0; index < params.length; index++) {
|
|
84
|
+
const parameter = params[index];
|
|
85
|
+
if (!parameterRequiresRequest(parameter))
|
|
86
|
+
continue;
|
|
87
|
+
//change the reflection type so that we create a unique injection token for that type.
|
|
88
|
+
const unique = Symbol('unique');
|
|
89
|
+
const uniqueType = { kind: ReflectionKind.literal, literal: unique };
|
|
90
|
+
metaAnnotation.registerType(parameter.type, { name: 'inject', options: [uniqueType] });
|
|
91
|
+
let build;
|
|
92
|
+
let i = index;
|
|
93
|
+
this.addProvider({
|
|
94
|
+
provide: uniqueType, useFactory: __assignType((request, injector, config) => {
|
|
95
|
+
if (!build) {
|
|
96
|
+
const params = listener.reflection.getParameters().slice(1);
|
|
97
|
+
build = buildRequestParser(params, config === null || config === void 0 ? void 0 : config.getFullPath());
|
|
98
|
+
}
|
|
99
|
+
const parser = build(request);
|
|
100
|
+
const params = parser(injector);
|
|
101
|
+
return params.arguments[i];
|
|
102
|
+
}, [() => HttpRequest, 'request', () => InjectorContext, 'injector', () => RouteConfig, 'config', '', 'PP7!2"P7#2$P7%2&8"/\'']), scope: 'http'
|
|
103
|
+
});
|
|
104
|
+
this.addExport(uniqueType);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
51
107
|
processController(module, controller) {
|
|
52
108
|
const httpConfig = httpClass._fetch(controller);
|
|
53
109
|
if (!httpConfig)
|
|
@@ -57,5 +113,5 @@ export class HttpModule extends createModule({
|
|
|
57
113
|
this.httpControllers.add(controller, module);
|
|
58
114
|
}
|
|
59
115
|
}
|
|
60
|
-
HttpModule.__type = [() => createModule({ config: HttpConfig, providers: [HttpRouter, HttpKernel, HttpResultFormatter, HttpRouterRegistry, HttpRouterFilterResolver, { provide: HttpResponse, scope: "http" }, { provide: HttpRequest, scope: "http" }, { provide: Logger, useValue: new Logger([new ConsoleTransport()]) }], listeners: [HttpListener], workflows: [httpWorkflow], exports: [HttpRouter, HttpRouterRegistry, HttpKernel, HttpResultFormatter, HttpRouterFilterResolver, HttpResponse, HttpRequest, HttpControllers, Logger] }), 'process', () => AppModule, 'module', () => __ΩClassType, 'controller', 'processController', 'P7!P"0"PP"7
|
|
116
|
+
HttpModule.__type = [() => createModule({ config: HttpConfig, providers: [HttpRouter, HttpKernel, HttpResultFormatter, HttpRouterRegistry, HttpRouterFilterResolver, { provide: HttpResponse, scope: "http" }, { provide: HttpRequest, scope: "http" }, { provide: RouteConfig, useValue: undefined, scope: "http" }, { provide: Logger, useValue: new Logger([new ConsoleTransport()]) }], listeners: [HttpListener], workflows: [httpWorkflow], exports: [HttpRouter, HttpRouterRegistry, HttpKernel, HttpResultFormatter, HttpRouterFilterResolver, HttpResponse, HttpRequest, HttpControllers, RouteConfig, Logger] }), 'process', () => EventToken, 'patchEventsForHttpRequestAccess', function () { return [httpWorkflow.onRequest, httpWorkflow.onAuth, httpWorkflow.onController]; }, () => AppModule, 'module', 'listener', 'processListener', () => AppModule, () => __ΩClassType, 'controller', 'processController', 'P7!P"0"P"7#F3$<>%PP"7&2\'"2("0)PP"7*2\'n+2,"0-5'];
|
|
61
117
|
//# sourceMappingURL=module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../../src/module.ts"],"names":[],"mappings":";6CAU0B,eAAe
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../../src/module.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ClassType, CompilerContext } from '@deepkit/core';
|
|
2
|
+
import { InjectorModule } from '@deepkit/injector';
|
|
3
|
+
import { ReflectionParameter, Type } from '@deepkit/type';
|
|
4
|
+
import { HttpRequest } from './model.js';
|
|
5
|
+
import { RouteConfig } from './router.js';
|
|
6
|
+
export declare class ParameterForRequestParser {
|
|
7
|
+
parameter: ReflectionParameter;
|
|
8
|
+
regexPosition?: number;
|
|
9
|
+
constructor(parameter: ReflectionParameter);
|
|
10
|
+
get body(): boolean;
|
|
11
|
+
get bodyValidation(): boolean;
|
|
12
|
+
getType(): Type;
|
|
13
|
+
get header(): boolean;
|
|
14
|
+
get query(): boolean;
|
|
15
|
+
get queries(): boolean;
|
|
16
|
+
get typePath(): string | undefined;
|
|
17
|
+
getName(): string;
|
|
18
|
+
isPartOfPath(): boolean;
|
|
19
|
+
}
|
|
20
|
+
export declare function parseRoutePathToRegex(path: string, params: ReflectionParameter[]): {
|
|
21
|
+
regex: string;
|
|
22
|
+
parameterNames: {
|
|
23
|
+
[name: string]: number;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
export declare function buildRequestParser(parameters: ReflectionParameter[], path?: string): (request: HttpRequest) => any[];
|
|
27
|
+
export declare function getRequestParserCodeForParameters(compiler: CompilerContext, parameters: ParameterForRequestParser[], config: {
|
|
28
|
+
module?: InjectorModule<any>;
|
|
29
|
+
resolverForParameterName?: Map<string, ClassType>;
|
|
30
|
+
resolverForToken?: Map<any, ClassType>;
|
|
31
|
+
pathParameterNames?: {
|
|
32
|
+
[name: string]: number;
|
|
33
|
+
};
|
|
34
|
+
routeConfig?: RouteConfig;
|
|
35
|
+
}): string;
|
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
/*@ts-ignore*/
|
|
2
|
+
import { __ΩClassType as __ΩClassType } from '@deepkit/core';
|
|
3
|
+
function __assignType(fn, args) {
|
|
4
|
+
fn.__type = args;
|
|
5
|
+
return fn;
|
|
6
|
+
}
|
|
7
|
+
import { asyncOperation, CompilerContext, getClassName, isObject } from '@deepkit/core';
|
|
8
|
+
import { InjectorModule } from '@deepkit/injector';
|
|
9
|
+
import { assertType, findMember, getSerializeFunction, getValidatorFunction, metaAnnotation, ReflectionKind, ReflectionParameter, resolveReceiveType, serializer, stringifyType, typeToObject, ValidationError } from '@deepkit/type';
|
|
10
|
+
import { BodyValidationError, createRequestWithCachedBody, getRegExp, HttpRequest, ValidatedBody } from './model.js';
|
|
11
|
+
import { RouteConfig, UploadedFile } from './router.js';
|
|
12
|
+
//@ts-ignore
|
|
13
|
+
import qs from 'qs';
|
|
14
|
+
// @ts-ignore
|
|
15
|
+
import formidable from 'formidable';
|
|
16
|
+
function parseBody(req, foundFiles) {
|
|
17
|
+
const form = formidable({
|
|
18
|
+
multiples: true,
|
|
19
|
+
hash: 'sha1',
|
|
20
|
+
});
|
|
21
|
+
return asyncOperation(__assignType((resolve, reject) => {
|
|
22
|
+
function parseData(err, fields, files) {
|
|
23
|
+
if (err) {
|
|
24
|
+
reject(err);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
for (const [name, file] of Object.entries(files)) {
|
|
28
|
+
if (file.size === 0)
|
|
29
|
+
continue;
|
|
30
|
+
foundFiles[name] = {
|
|
31
|
+
size: file.size,
|
|
32
|
+
path: file.filepath,
|
|
33
|
+
name: file.originalFilename,
|
|
34
|
+
type: file.mimetype,
|
|
35
|
+
lastModifiedDate: file.lastModifiedDate,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
const body = { ...fields, ...foundFiles };
|
|
39
|
+
resolve(body);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
parseData.__type = ['err', 'fields', 'files', 'parseData', 'P"2!"2""2#"/$'];
|
|
43
|
+
if (req.body) {
|
|
44
|
+
form.parse(createRequestWithCachedBody(req, req.body), parseData);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const chunks = [];
|
|
48
|
+
function read(chunk) {
|
|
49
|
+
chunks.push(chunk);
|
|
50
|
+
}
|
|
51
|
+
read.__type = ['chunk', 'read', 'P!2!"/"'];
|
|
52
|
+
req.on('data', read);
|
|
53
|
+
req.once('end', () => {
|
|
54
|
+
req.body = Buffer.concat(chunks);
|
|
55
|
+
req.off('data', read);
|
|
56
|
+
});
|
|
57
|
+
req.once('error', () => req.off('data', read));
|
|
58
|
+
form.parse(req, parseData);
|
|
59
|
+
}, ['resolve', 'reject', '', 'P"2!"2""/#']));
|
|
60
|
+
}
|
|
61
|
+
parseBody.__type = [() => HttpRequest, 'req', () => UploadedFile, 'foundFiles', 'parseBody', 'PP7!2"P&P7#LM2$"/%'];
|
|
62
|
+
export class ParameterForRequestParser {
|
|
63
|
+
constructor(parameter) {
|
|
64
|
+
this.parameter = parameter;
|
|
65
|
+
}
|
|
66
|
+
get body() {
|
|
67
|
+
return metaAnnotation.getForName(this.parameter.type, 'httpBody') !== undefined;
|
|
68
|
+
}
|
|
69
|
+
get bodyValidation() {
|
|
70
|
+
return metaAnnotation.getForName(this.parameter.type, 'httpBodyValidation') !== undefined;
|
|
71
|
+
}
|
|
72
|
+
getType() {
|
|
73
|
+
if (this.bodyValidation) {
|
|
74
|
+
assertType(this.parameter.type, ReflectionKind.class);
|
|
75
|
+
const valueType = findMember('value', this.parameter.type.types);
|
|
76
|
+
if (!valueType || valueType.kind !== ReflectionKind.property)
|
|
77
|
+
throw new Error(`No property value found at ${stringifyType(this.parameter.type)}`);
|
|
78
|
+
return valueType.type;
|
|
79
|
+
}
|
|
80
|
+
return this.parameter.type;
|
|
81
|
+
}
|
|
82
|
+
get header() {
|
|
83
|
+
return metaAnnotation.getForName(this.parameter.type, 'httpHeader') !== undefined;
|
|
84
|
+
}
|
|
85
|
+
get query() {
|
|
86
|
+
return metaAnnotation.getForName(this.parameter.type, 'httpQuery') !== undefined;
|
|
87
|
+
}
|
|
88
|
+
get queries() {
|
|
89
|
+
return metaAnnotation.getForName(this.parameter.type, 'httpQueries') !== undefined;
|
|
90
|
+
}
|
|
91
|
+
get typePath() {
|
|
92
|
+
const typeOptions = metaAnnotation.getForName(this.parameter.type, 'httpQueries') || metaAnnotation.getForName(this.parameter.type, 'httpQuery')
|
|
93
|
+
|| metaAnnotation.getForName(this.parameter.type, 'httpPath') || metaAnnotation.getForName(this.parameter.type, 'httpHeader');
|
|
94
|
+
if (!typeOptions)
|
|
95
|
+
return;
|
|
96
|
+
const options = typeToObject(typeOptions[0]);
|
|
97
|
+
if (isObject(options))
|
|
98
|
+
return options.name;
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
getName() {
|
|
102
|
+
return this.parameter.name;
|
|
103
|
+
}
|
|
104
|
+
isPartOfPath() {
|
|
105
|
+
return metaAnnotation.getForName(this.parameter.type, 'httpPath') !== undefined || this.regexPosition !== undefined;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
ParameterForRequestParser.__type = ['regexPosition', () => ReflectionParameter, 'parameter', 'constructor', 'getType', 'getName', 'isPartOfPath', '\'3!8PP7"2#:"0$!!P"0%!!!!P"0&P)0\'5'];
|
|
109
|
+
export function parseRoutePathToRegex(path, params) {
|
|
110
|
+
const parameterNames = {};
|
|
111
|
+
let argumentIndex = 0;
|
|
112
|
+
path = path.replace(/:(\w+)/g, __assignType((a, name) => {
|
|
113
|
+
parameterNames[name] = argumentIndex;
|
|
114
|
+
argumentIndex++;
|
|
115
|
+
const parameter = params.find(__assignType(v => v.name === name, ['v', '', 'P"2!"/"']));
|
|
116
|
+
if (parameter) {
|
|
117
|
+
const regExp = getRegExp(parameter.type);
|
|
118
|
+
if (regExp instanceof RegExp) {
|
|
119
|
+
return '(' + regExp.source + ')';
|
|
120
|
+
}
|
|
121
|
+
else if (regExp) {
|
|
122
|
+
return '(' + regExp + ')';
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return String.raw `([^/]+)`;
|
|
126
|
+
}, ['a', 'name', '', 'P"2!"2""/#']));
|
|
127
|
+
return { regex: path, parameterNames };
|
|
128
|
+
}
|
|
129
|
+
parseRoutePathToRegex.__type = ['path', () => ReflectionParameter, 'params', 'regex', 'parameterNames', 'parseRoutePathToRegex', 'P&2!P7"F2#P&4$P&\'LM4%M/&'];
|
|
130
|
+
export function buildRequestParser(parameters, path) {
|
|
131
|
+
const compiler = new CompilerContext();
|
|
132
|
+
const params = parameters.map(__assignType(v => new ParameterForRequestParser(v), ['v', '', 'P"2!"/"']));
|
|
133
|
+
//todo: parse path
|
|
134
|
+
let pathRegex = '';
|
|
135
|
+
if (path) {
|
|
136
|
+
const parsedPath = parseRoutePathToRegex(path, parameters);
|
|
137
|
+
pathRegex = parsedPath.regex;
|
|
138
|
+
for (const param of params) {
|
|
139
|
+
param.regexPosition = parsedPath.parameterNames[param.parameter.name];
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
const code = getRequestParserCodeForParameters(compiler, params, {});
|
|
143
|
+
compiler.context.set('ValidationError', ValidationError);
|
|
144
|
+
compiler.context.set('qs', qs);
|
|
145
|
+
let needsQueryString = !!params.find(__assignType(v => v.query || v.queries, ['v', '', 'P"2!"/"']));
|
|
146
|
+
const query = needsQueryString ? '_qPosition === -1 ? {} : qs.parse(_url.substr(_qPosition + 1))' : '{}';
|
|
147
|
+
const regexVar = compiler.reserveVariable('regex', new RegExp('^' + pathRegex + '$'));
|
|
148
|
+
return compiler.build(`
|
|
149
|
+
const _method = request.method || 'GET';
|
|
150
|
+
const _url = request.url || '/';
|
|
151
|
+
const _headers = request.headers || {};
|
|
152
|
+
const _qPosition = _url.indexOf('?');
|
|
153
|
+
let uploadedFiles = {};
|
|
154
|
+
const _path = _qPosition === -1 ? _url : _url.substr(0, _qPosition);
|
|
155
|
+
const _match = _path.match(${regexVar}) || [];
|
|
156
|
+
const _query = ${query};
|
|
157
|
+
return ${code}
|
|
158
|
+
`, 'request');
|
|
159
|
+
}
|
|
160
|
+
buildRequestParser.__type = [() => ReflectionParameter, 'parameters', 'path', () => HttpRequest, 'request', '', 'buildRequestParser', 'PP7!F2"&2#8PP7$2%"F/&/\''];
|
|
161
|
+
export function getRequestParserCodeForParameters(compiler, parameters, config) {
|
|
162
|
+
var _a, _b;
|
|
163
|
+
let enableParseBody = false;
|
|
164
|
+
let requiresAsyncParameters = false;
|
|
165
|
+
const setParameters = [];
|
|
166
|
+
const parameterNames = [];
|
|
167
|
+
const parameterValidator = [];
|
|
168
|
+
let setParametersFromPath = '';
|
|
169
|
+
let bodyValidationErrorHandling = `if (bodyErrors.length) throw ValidationError.from(bodyErrors);`;
|
|
170
|
+
for (const parameter of parameters) {
|
|
171
|
+
if (parameter.body || parameter.bodyValidation) {
|
|
172
|
+
const type = parameter.getType();
|
|
173
|
+
const validatorVar = compiler.reserveVariable('argumentValidator', getValidatorFunction(undefined, type));
|
|
174
|
+
const converterVar = compiler.reserveVariable('argumentConverter', getSerializeFunction(type, serializer.deserializeRegistry));
|
|
175
|
+
enableParseBody = true;
|
|
176
|
+
setParameters.push(`parameters.${parameter.parameter.name} = ${converterVar}(bodyFields, {loosely: true});`);
|
|
177
|
+
parameterValidator.push(`${validatorVar}(parameters.${parameter.parameter.name}, {errors: bodyErrors});`);
|
|
178
|
+
if (parameter.bodyValidation) {
|
|
179
|
+
compiler.context.set('BodyValidation', ValidatedBody);
|
|
180
|
+
compiler.context.set('BodyValidationError', BodyValidationError);
|
|
181
|
+
parameterNames.push(`new BodyValidation(new BodyValidationError(bodyErrors), bodyErrors.length === 0 ? parameters.${parameter.parameter.name} : undefined)`);
|
|
182
|
+
bodyValidationErrorHandling = '';
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
parameterNames.push(`parameters.${parameter.parameter.name}`);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
else if (parameter.query || parameter.queries || parameter.header) {
|
|
189
|
+
const converted = getSerializeFunction(parameter.parameter.parameter, serializer.deserializeRegistry, undefined, parameter.getName());
|
|
190
|
+
const validator = getValidatorFunction(undefined, parameter.parameter.parameter);
|
|
191
|
+
const converterVar = compiler.reserveVariable('argumentConverter', converted);
|
|
192
|
+
const validatorVar = compiler.reserveVariable('argumentValidator', validator);
|
|
193
|
+
const queryPath = parameter.typePath === undefined && !parameter.queries ? parameter.parameter.name : parameter.typePath;
|
|
194
|
+
const accessor = queryPath ? `['` + (queryPath.replace(/\./g, `']['`)) + `']` : '';
|
|
195
|
+
const queryAccessor = parameter.header ? `_headers${accessor}` : queryPath ? `_query${accessor}` : '_query';
|
|
196
|
+
setParameters.push(`parameters.${parameter.parameter.name} = ${converterVar}(${queryAccessor}, {loosely: true});`);
|
|
197
|
+
parameterNames.push(`parameters.${parameter.parameter.name}`);
|
|
198
|
+
parameterValidator.push(`${validatorVar}(parameters.${parameter.parameter.name}, {errors: validationErrors}, ${JSON.stringify(parameter.typePath || parameter.getName())});`);
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
parameterNames.push(`parameters.${parameter.parameter.name}`);
|
|
202
|
+
if (parameter.isPartOfPath()) {
|
|
203
|
+
if (parameter.parameter.type.kind !== ReflectionKind.class) {
|
|
204
|
+
const converted = getSerializeFunction(parameter.parameter.parameter, serializer.deserializeRegistry, undefined, parameter.getName());
|
|
205
|
+
const converterVar = compiler.reserveVariable('argumentConverter', converted);
|
|
206
|
+
setParameters.push(`parameters.${parameter.parameter.name} = ${converterVar}(_match[${1 + (parameter.regexPosition || 0)}], {loosely: true});`);
|
|
207
|
+
const validator = getValidatorFunction(undefined, parameter.parameter.parameter);
|
|
208
|
+
const validatorVar = compiler.reserveVariable('argumentValidator', validator);
|
|
209
|
+
parameterValidator.push(`${validatorVar}(parameters.${parameter.parameter.name}, {errors: validationErrors}, ${JSON.stringify(parameter.getName())});`);
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
setParameters.push(`parameters.${parameter.parameter.name} = _match[${1 + (parameter.regexPosition || 0)}];`);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
const injectorToken = parameter.parameter.type.kind === ReflectionKind.class ? parameter.parameter.type.classType : undefined;
|
|
216
|
+
const injectorTokenVar = compiler.reserveVariable('classType', injectorToken);
|
|
217
|
+
const parameterResolverFoundVar = compiler.reserveVariable('parameterResolverFound', false);
|
|
218
|
+
setParameters.push(`${parameterResolverFoundVar} = false;`);
|
|
219
|
+
const resolverType = ((_a = config.resolverForParameterName) === null || _a === void 0 ? void 0 : _a.get(parameter.getName())) || ((_b = config.resolverForToken) === null || _b === void 0 ? void 0 : _b.get(injectorToken));
|
|
220
|
+
//make sure all parameter values from the path are available, important for parameter resolver
|
|
221
|
+
if (resolverType && !setParametersFromPath && config.pathParameterNames) {
|
|
222
|
+
for (const i in config.pathParameterNames) {
|
|
223
|
+
setParametersFromPath += `parameters.${i} = _match[${1 + config.pathParameterNames[i]}];`;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
let injector = '_injector';
|
|
227
|
+
const moduleVar = config.module ? ', ' + compiler.reserveConst(config.module, 'module') : '';
|
|
228
|
+
if (resolverType) {
|
|
229
|
+
requiresAsyncParameters = true;
|
|
230
|
+
let instanceFetcher = '';
|
|
231
|
+
if (config.module && config.module.injector) {
|
|
232
|
+
const resolverResolverVar = compiler.reserveVariable('resolverProvideToken', config.module.injector.createResolver(resolveReceiveType(resolverType)));
|
|
233
|
+
instanceFetcher = `${resolverResolverVar}(${injector}.scope)`;
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
const resolverProvideTokenVar = compiler.reserveVariable('resolverProvideToken', resolverType);
|
|
237
|
+
instanceFetcher = `${injector}.get(${resolverProvideTokenVar}${moduleVar})`;
|
|
238
|
+
}
|
|
239
|
+
const instance = compiler.reserveVariable('resolverInstance');
|
|
240
|
+
const routeConfigVar = compiler.reserveVariable('routeConfigVar', config.routeConfig);
|
|
241
|
+
setParameters.push(`
|
|
242
|
+
//resolver ${getClassName(resolverType)} for ${parameter.getName()}
|
|
243
|
+
${instance} = ${instanceFetcher};
|
|
244
|
+
if (!${parameterResolverFoundVar}) {
|
|
245
|
+
${parameterResolverFoundVar} = true;
|
|
246
|
+
parameters.${parameter.parameter.name} = await ${instance}.resolve({
|
|
247
|
+
token: ${injectorTokenVar},
|
|
248
|
+
route: ${routeConfigVar},
|
|
249
|
+
request: request,
|
|
250
|
+
name: ${JSON.stringify(parameter.parameter.name)},
|
|
251
|
+
value: parameters.${parameter.parameter.name},
|
|
252
|
+
query: _query,
|
|
253
|
+
parameters: parameters,
|
|
254
|
+
type: ${compiler.reserveVariable('parameterType', parameter.parameter)}
|
|
255
|
+
});
|
|
256
|
+
}`);
|
|
257
|
+
}
|
|
258
|
+
if (!parameter.isPartOfPath()) {
|
|
259
|
+
let injectorGet = `parameters.${parameter.parameter.name} = ${injector}.get(${injectorTokenVar});`;
|
|
260
|
+
if (parameter.parameter.isOptional()) {
|
|
261
|
+
injectorGet = `try {parameters.${parameter.parameter.name} = ${injector}.get(${injectorTokenVar}); } catch (e) {}`;
|
|
262
|
+
}
|
|
263
|
+
setParameters.push(`if (!${parameterResolverFoundVar}) ${injectorGet}`);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
let parseBodyLoading = '';
|
|
268
|
+
if (enableParseBody) {
|
|
269
|
+
const parseBodyVar = compiler.reserveVariable('parseBody', parseBody);
|
|
270
|
+
parseBodyLoading = `
|
|
271
|
+
const bodyFields = (await ${parseBodyVar}(request, uploadedFiles));`;
|
|
272
|
+
requiresAsyncParameters = true;
|
|
273
|
+
}
|
|
274
|
+
let parametersLoader = '() => {}';
|
|
275
|
+
if (setParameters.length) {
|
|
276
|
+
parametersLoader = `${requiresAsyncParameters ? 'async' : ''} function parse(_injector){
|
|
277
|
+
const validationErrors = [];
|
|
278
|
+
const bodyErrors = [];
|
|
279
|
+
const parameters = {};
|
|
280
|
+
${setParametersFromPath}
|
|
281
|
+
${parseBodyLoading}
|
|
282
|
+
${setParameters.join('\n')}
|
|
283
|
+
${parameterValidator.join('\n')}
|
|
284
|
+
${bodyValidationErrorHandling}
|
|
285
|
+
if (validationErrors.length) throw new ValidationError(validationErrors);
|
|
286
|
+
return {arguments: [${parameterNames.join(',')}], parameters: parameters};
|
|
287
|
+
}`;
|
|
288
|
+
}
|
|
289
|
+
return parametersLoader;
|
|
290
|
+
}
|
|
291
|
+
getRequestParserCodeForParameters.__type = [() => CompilerContext, 'compiler', () => ParameterForRequestParser, 'parameters', () => InjectorModule, 'module', () => __ΩClassType, 'resolverForParameterName', () => __ΩClassType, 'resolverForToken', 'pathParameterNames', () => RouteConfig, 'routeConfig', 'config', 'getRequestParserCodeForParameters', 'PP7!2"P7#F2$PP"7%4&8&n\'E4(8"n)E4*8P&\'LM4+8P7,4-8M2."//'];
|
|
292
|
+
//# sourceMappingURL=request-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-parser.js","sourceRoot":"","sources":["../../../src/request-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ClassType, CompilerContext } from '@deepkit/core';
|
|
2
|
+
import { InjectorModule } from '@deepkit/injector';
|
|
3
|
+
import { ReflectionParameter, Type } from '@deepkit/type';
|
|
4
|
+
import { RouteConfig } from './router.js';
|
|
5
|
+
export declare class ParameterForRequestParser {
|
|
6
|
+
parameter: ReflectionParameter;
|
|
7
|
+
regexPosition?: number;
|
|
8
|
+
constructor(parameter: ReflectionParameter);
|
|
9
|
+
get body(): boolean;
|
|
10
|
+
get bodyValidation(): boolean;
|
|
11
|
+
getType(): Type;
|
|
12
|
+
get header(): boolean;
|
|
13
|
+
get query(): boolean;
|
|
14
|
+
get queries(): boolean;
|
|
15
|
+
get typePath(): string | undefined;
|
|
16
|
+
getName(): string;
|
|
17
|
+
isPartOfPath(): boolean;
|
|
18
|
+
}
|
|
19
|
+
export declare function getRuquestParserCodeForParameters(compiler: CompilerContext, parameters: ParameterForRequestParser[], config: {
|
|
20
|
+
module?: InjectorModule<any>;
|
|
21
|
+
resolverForParameterName?: Map<string, ClassType>;
|
|
22
|
+
resolverForToken?: Map<any, ClassType>;
|
|
23
|
+
pathParameterNames?: {
|
|
24
|
+
[name: string]: number;
|
|
25
|
+
};
|
|
26
|
+
routeConfig?: RouteConfig;
|
|
27
|
+
}): string;
|