@deepkit/http 1.0.1-alpha.93 → 1.0.1-alpha.95

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.
Files changed (42) hide show
  1. package/dist/cjs/src/model.d.ts +1 -0
  2. package/dist/cjs/src/model.js +4 -1
  3. package/dist/cjs/src/model.js.map +1 -1
  4. package/dist/cjs/src/module.config.d.ts +81 -0
  5. package/dist/cjs/src/module.config.js +5 -2
  6. package/dist/cjs/src/module.config.js.map +1 -1
  7. package/dist/cjs/src/module.js +3 -3
  8. package/dist/cjs/src/module.js.map +1 -1
  9. package/dist/cjs/src/request-parser.d.ts +3 -2
  10. package/dist/cjs/src/request-parser.js +13 -11
  11. package/dist/cjs/src/request-parser.js.map +1 -1
  12. package/dist/cjs/src/router.d.ts +4 -2
  13. package/dist/cjs/src/router.js +7 -5
  14. package/dist/cjs/src/router.js.map +1 -1
  15. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  16. package/dist/esm/src/model.d.ts +1 -0
  17. package/dist/esm/src/model.js +4 -1
  18. package/dist/esm/src/model.js.map +1 -1
  19. package/dist/esm/src/module.config.d.ts +81 -0
  20. package/dist/esm/src/module.config.js +4 -1
  21. package/dist/esm/src/module.config.js.map +1 -1
  22. package/dist/esm/src/module.js +3 -3
  23. package/dist/esm/src/module.js.map +1 -1
  24. package/dist/esm/src/request-parser.d.ts +3 -2
  25. package/dist/esm/src/request-parser.js +13 -11
  26. package/dist/esm/src/request-parser.js.map +1 -1
  27. package/dist/esm/src/router.d.ts +4 -2
  28. package/dist/esm/src/router.js +7 -5
  29. package/dist/esm/src/router.js.map +1 -1
  30. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  31. package/package.json +11 -11
  32. package/src/model.ts +4 -0
  33. package/src/module.config.ts +92 -0
  34. package/src/module.ts +3 -3
  35. package/src/request-parser.ts +15 -10
  36. package/src/router.ts +10 -5
  37. package/dist/cjs/src/resolver.d.ts +0 -27
  38. package/dist/cjs/src/resolver.js +0 -246
  39. package/dist/cjs/src/resolver.js.map +0 -1
  40. package/dist/esm/src/resolver.d.ts +0 -27
  41. package/dist/esm/src/resolver.js +0 -238
  42. package/dist/esm/src/resolver.js.map +0 -1
@@ -5,14 +5,15 @@ import {
5
5
  findMember,
6
6
  getSerializeFunction,
7
7
  getValidatorFunction,
8
- metaAnnotation, ReflectionFunction,
8
+ metaAnnotation,
9
9
  ReflectionKind,
10
10
  ReflectionParameter,
11
11
  resolveReceiveType,
12
12
  serializer,
13
13
  stringifyType,
14
14
  Type,
15
- typeToObject, ValidationError
15
+ typeToObject,
16
+ ValidationError
16
17
  } from '@deepkit/type';
17
18
  import { BodyValidationError, createRequestWithCachedBody, getRegExp, HttpRequest, ValidatedBody } from './model.js';
18
19
  import { RouteConfig, UploadedFile } from './router.js';
@@ -22,13 +23,15 @@ import qs from 'qs';
22
23
 
23
24
  // @ts-ignore
24
25
  import formidable from 'formidable';
26
+ import { HttpParserOptions } from './module.config.js';
25
27
 
26
28
 
27
- function parseBody(req: HttpRequest, foundFiles: { [name: string]: UploadedFile }) {
28
- const form = formidable({
29
+ function parseBody(
30
+ options: HttpParserOptions,
31
+ req: HttpRequest, foundFiles: { [name: string]: UploadedFile }) {
32
+ const form = formidable(Object.assign(options, {
29
33
  multiples: true,
30
- hash: 'sha1',
31
- });
34
+ }));
32
35
  return asyncOperation((resolve, reject) => {
33
36
  function parseData(err: any, fields: any, files: any) {
34
37
  if (err) {
@@ -149,7 +152,7 @@ export function parseRoutePathToRegex(path: string, params: ReflectionParameter[
149
152
  return { regex: path, parameterNames };
150
153
  }
151
154
 
152
- export function buildRequestParser(parameters: ReflectionParameter[], path?: string): (request: HttpRequest) => any[] {
155
+ export function buildRequestParser(parseOptions: HttpParserOptions, parameters: ReflectionParameter[], path?: string): (request: HttpRequest) => any[] {
153
156
  const compiler = new CompilerContext();
154
157
  const params = parameters.map(v => new ParameterForRequestParser(v));
155
158
 
@@ -164,7 +167,7 @@ export function buildRequestParser(parameters: ReflectionParameter[], path?: str
164
167
  }
165
168
  }
166
169
 
167
- const code = getRequestParserCodeForParameters(compiler, params, {});
170
+ const code = getRequestParserCodeForParameters(compiler, parseOptions, params, {});
168
171
  compiler.context.set('ValidationError', ValidationError);
169
172
  compiler.context.set('qs', qs);
170
173
 
@@ -188,13 +191,14 @@ export function buildRequestParser(parameters: ReflectionParameter[], path?: str
188
191
 
189
192
  export function getRequestParserCodeForParameters(
190
193
  compiler: CompilerContext,
194
+ parseOptions: HttpParserOptions,
191
195
  parameters: ParameterForRequestParser[],
192
196
  config: {
193
197
  module?: InjectorModule<any>,
194
198
  resolverForParameterName?: Map<string, ClassType>,
195
199
  resolverForToken?: Map<any, ClassType>,
196
200
  pathParameterNames?: { [name: string]: number },
197
- routeConfig?: RouteConfig
201
+ routeConfig?: RouteConfig,
198
202
  }
199
203
  ) {
200
204
  let enableParseBody = false;
@@ -314,9 +318,10 @@ export function getRequestParserCodeForParameters(
314
318
 
315
319
  let parseBodyLoading = '';
316
320
  if (enableParseBody) {
321
+ const parseOptionsVar = compiler.reserveVariable('parseOptions', parseOptions);
317
322
  const parseBodyVar = compiler.reserveVariable('parseBody', parseBody);
318
323
  parseBodyLoading = `
319
- const bodyFields = (await ${parseBodyVar}(request, uploadedFiles));`;
324
+ const bodyFields = (await ${parseBodyVar}(${parseOptionsVar}, request, uploadedFiles));`;
320
325
  requiresAsyncParameters = true;
321
326
  }
322
327
 
package/src/router.ts CHANGED
@@ -21,6 +21,7 @@ import { HttpMiddlewareConfig, HttpMiddlewareFn } from './middleware.js';
21
21
  import qs from 'qs';
22
22
  import { HtmlResponse, JSONResponse, Response } from './http.js';
23
23
  import { getRequestParserCodeForParameters, ParameterForRequestParser, parseRoutePathToRegex } from './request-parser.js';
24
+ import { HttpConfig, HttpParserOptions } from './module.config.js';
24
25
 
25
26
  export type RouteParameterResolverForInjector = ((injector: InjectorContext) => HttpRequestPositionedParameters | Promise<HttpRequestPositionedParameters>);
26
27
 
@@ -215,7 +216,10 @@ export interface RouteParameterResolverContext {
215
216
  type: ReflectionParameter;
216
217
  }
217
218
 
218
- function filterMiddlewaresForRoute(middlewareRawConfigs: MiddlewareRegistryEntry[], routeConfig: RouteConfig, fullPath: string): { config: HttpMiddlewareConfig, module: InjectorModule<any> }[] {
219
+ function filterMiddlewaresForRoute(middlewareRawConfigs: MiddlewareRegistryEntry[], routeConfig: RouteConfig, fullPath: string): {
220
+ config: HttpMiddlewareConfig,
221
+ module: InjectorModule<any>
222
+ }[] {
219
223
  const middlewares = middlewareRawConfigs.slice(0);
220
224
  middlewares.push(...routeConfig.middlewares as any[]);
221
225
 
@@ -526,11 +530,11 @@ export class HttpRouter {
526
530
  protected buildId: number = 0;
527
531
  protected resolveFn?: (name: string, parameters: { [name: string]: any }) => string;
528
532
 
529
-
530
533
  constructor(
531
534
  controllers: HttpControllers,
532
535
  private logger: LoggerInterface,
533
536
  tagRegistry: TagRegistry,
537
+ private config: HttpConfig,
534
538
  private middlewareRegistry: MiddlewareRegistry = new MiddlewareRegistry,
535
539
  private registry: HttpRouterRegistry = new HttpRouterRegistry,
536
540
  ) {
@@ -547,11 +551,12 @@ export class HttpRouter {
547
551
  controllers: (ClassType | { module: InjectorModule<any>, controller: ClassType })[],
548
552
  tagRegistry: TagRegistry = new TagRegistry(),
549
553
  middlewareRegistry: MiddlewareRegistry = new MiddlewareRegistry(),
550
- module: InjectorModule<any> = new InjectorModule()
554
+ module: InjectorModule<any> = new InjectorModule(),
555
+ config: HttpConfig = new HttpConfig()
551
556
  ): HttpRouter {
552
557
  return new this(new HttpControllers(controllers.map(v => {
553
558
  return isClass(v) ? { controller: v, module } : v;
554
- })), new Logger([], []), tagRegistry, middlewareRegistry);
559
+ })), new Logger([], []), tagRegistry, config, middlewareRegistry);
555
560
  }
556
561
 
557
562
  protected getRouteCode(compiler: CompilerContext, routeConfig: RouteConfig): string {
@@ -600,7 +605,7 @@ export class HttpRouter {
600
605
  `;
601
606
  }
602
607
 
603
- const parametersLoader = getRequestParserCodeForParameters(compiler, parameters, {
608
+ const parametersLoader = getRequestParserCodeForParameters(compiler, this.config.parser, parameters, {
604
609
  module: routeConfig.module,
605
610
  resolverForToken: routeConfig.resolverForToken,
606
611
  resolverForParameterName: routeConfig.resolverForParameterName,
@@ -1,27 +0,0 @@
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;
@@ -1,246 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getRuquestParserCodeForParameters = exports.ParameterForRequestParser = void 0;
7
- /*@ts-ignore*/
8
- const { __ΩClassType } = require('@deepkit/core');
9
- function __assignType(fn, args) {
10
- fn.__type = args;
11
- return fn;
12
- }
13
- const core_1 = require("@deepkit/core");
14
- const injector_1 = require("@deepkit/injector");
15
- const type_1 = require("@deepkit/type");
16
- const model_js_1 = require("./model.js");
17
- const router_js_1 = require("./router.js");
18
- // @ts-ignore
19
- const formidable_1 = __importDefault(require("formidable"));
20
- function parseBody(req, foundFiles) {
21
- const form = (0, formidable_1.default)({
22
- multiples: true,
23
- hash: 'sha1',
24
- });
25
- return (0, core_1.asyncOperation)(__assignType((resolve, reject) => {
26
- function parseData(err, fields, files) {
27
- if (err) {
28
- reject(err);
29
- }
30
- else {
31
- for (const [name, file] of Object.entries(files)) {
32
- if (file.size === 0)
33
- continue;
34
- foundFiles[name] = {
35
- size: file.size,
36
- path: file.filepath,
37
- name: file.originalFilename,
38
- type: file.mimetype,
39
- lastModifiedDate: file.lastModifiedDate,
40
- };
41
- }
42
- const body = { ...fields, ...foundFiles };
43
- resolve(body);
44
- }
45
- }
46
- parseData.__type = ['err', 'fields', 'files', 'parseData', 'P"2!"2""2#"/$'];
47
- if (req.body) {
48
- form.parse((0, model_js_1.createRequestWithCachedBody)(req, req.body), parseData);
49
- return;
50
- }
51
- const chunks = [];
52
- function read(chunk) {
53
- chunks.push(chunk);
54
- }
55
- read.__type = ['chunk', 'read', 'P!2!"/"'];
56
- req.on('data', read);
57
- req.once('end', () => {
58
- req.body = Buffer.concat(chunks);
59
- req.off('data', read);
60
- });
61
- req.once('error', () => req.off('data', read));
62
- form.parse(req, parseData);
63
- }, ['resolve', 'reject', '', 'P"2!"2""/#']));
64
- }
65
- parseBody.__type = [() => model_js_1.HttpRequest, 'req', () => router_js_1.UploadedFile, 'foundFiles', 'parseBody', 'PP7!2"P&P7#LM2$"/%'];
66
- class ParameterForRequestParser {
67
- constructor(parameter) {
68
- this.parameter = parameter;
69
- }
70
- get body() {
71
- return type_1.metaAnnotation.getForName(this.parameter.type, 'httpBody') !== undefined;
72
- }
73
- get bodyValidation() {
74
- return type_1.metaAnnotation.getForName(this.parameter.type, 'httpBodyValidation') !== undefined;
75
- }
76
- getType() {
77
- if (this.bodyValidation) {
78
- (0, type_1.assertType)(this.parameter.type, type_1.ReflectionKind.class);
79
- const valueType = (0, type_1.findMember)('value', this.parameter.type.types);
80
- if (!valueType || valueType.kind !== type_1.ReflectionKind.property)
81
- throw new Error(`No property value found at ${(0, type_1.stringifyType)(this.parameter.type)}`);
82
- return valueType.type;
83
- }
84
- return this.parameter.type;
85
- }
86
- get header() {
87
- return type_1.metaAnnotation.getForName(this.parameter.type, 'httpHeader') !== undefined;
88
- }
89
- get query() {
90
- return type_1.metaAnnotation.getForName(this.parameter.type, 'httpQuery') !== undefined;
91
- }
92
- get queries() {
93
- return type_1.metaAnnotation.getForName(this.parameter.type, 'httpQueries') !== undefined;
94
- }
95
- get typePath() {
96
- const typeOptions = type_1.metaAnnotation.getForName(this.parameter.type, 'httpQueries') || type_1.metaAnnotation.getForName(this.parameter.type, 'httpQuery')
97
- || type_1.metaAnnotation.getForName(this.parameter.type, 'httpPath') || type_1.metaAnnotation.getForName(this.parameter.type, 'httpHeader');
98
- if (!typeOptions)
99
- return;
100
- const options = (0, type_1.typeToObject)(typeOptions[0]);
101
- if ((0, core_1.isObject)(options))
102
- return options.name;
103
- return;
104
- }
105
- getName() {
106
- return this.parameter.name;
107
- }
108
- isPartOfPath() {
109
- return type_1.metaAnnotation.getForName(this.parameter.type, 'httpPath') !== undefined || this.regexPosition !== undefined;
110
- }
111
- }
112
- exports.ParameterForRequestParser = ParameterForRequestParser;
113
- ParameterForRequestParser.__type = ['regexPosition', () => type_1.ReflectionParameter, 'parameter', 'constructor', 'getType', 'getName', 'isPartOfPath', '\'3!8PP7"2#:"0$!!P"0%!!!!P"0&P)0\'5'];
114
- function getRuquestParserCodeForParameters(compiler, parameters, config) {
115
- var _a, _b;
116
- let enableParseBody = false;
117
- let requiresAsyncParameters = false;
118
- const setParameters = [];
119
- const parameterNames = [];
120
- const parameterValidator = [];
121
- let setParametersFromPath = '';
122
- let bodyValidationErrorHandling = `if (bodyErrors.length) throw ValidationError.from(bodyErrors);`;
123
- for (const parameter of parameters) {
124
- if (parameter.body || parameter.bodyValidation) {
125
- const type = parameter.getType();
126
- const validatorVar = compiler.reserveVariable('argumentValidator', (0, type_1.getValidatorFunction)(undefined, type));
127
- const converterVar = compiler.reserveVariable('argumentConverter', (0, type_1.getSerializeFunction)(type, type_1.serializer.deserializeRegistry));
128
- enableParseBody = true;
129
- setParameters.push(`parameters.${parameter.parameter.name} = ${converterVar}(bodyFields, {loosely: true});`);
130
- parameterValidator.push(`${validatorVar}(parameters.${parameter.parameter.name}, {errors: bodyErrors});`);
131
- if (parameter.bodyValidation) {
132
- compiler.context.set('BodyValidation', model_js_1.ValidatedBody);
133
- compiler.context.set('BodyValidationError', model_js_1.BodyValidationError);
134
- parameterNames.push(`new BodyValidation(new BodyValidationError(bodyErrors), bodyErrors.length === 0 ? parameters.${parameter.parameter.name} : undefined)`);
135
- bodyValidationErrorHandling = '';
136
- }
137
- else {
138
- parameterNames.push(`parameters.${parameter.parameter.name}`);
139
- }
140
- }
141
- else if (parameter.query || parameter.queries || parameter.header) {
142
- const converted = (0, type_1.getSerializeFunction)(parameter.parameter.parameter, type_1.serializer.deserializeRegistry, undefined, parameter.getName());
143
- const validator = (0, type_1.getValidatorFunction)(undefined, parameter.parameter.parameter);
144
- const converterVar = compiler.reserveVariable('argumentConverter', converted);
145
- const validatorVar = compiler.reserveVariable('argumentValidator', validator);
146
- const queryPath = parameter.typePath === undefined && !parameter.queries ? parameter.parameter.name : parameter.typePath;
147
- const accessor = queryPath ? `['` + (queryPath.replace(/\./g, `']['`)) + `']` : '';
148
- const queryAccessor = parameter.header ? `_headers${accessor}` : queryPath ? `_query${accessor}` : '_query';
149
- setParameters.push(`parameters.${parameter.parameter.name} = ${converterVar}(${queryAccessor}, {loosely: true});`);
150
- parameterNames.push(`parameters.${parameter.parameter.name}`);
151
- parameterValidator.push(`${validatorVar}(parameters.${parameter.parameter.name}, {errors: validationErrors}, ${JSON.stringify(parameter.typePath || parameter.getName())});`);
152
- }
153
- else {
154
- parameterNames.push(`parameters.${parameter.parameter.name}`);
155
- if (parameter.isPartOfPath()) {
156
- if (parameter.parameter.type.kind !== type_1.ReflectionKind.class) {
157
- const converted = (0, type_1.getSerializeFunction)(parameter.parameter.parameter, type_1.serializer.deserializeRegistry, undefined, parameter.getName());
158
- const converterVar = compiler.reserveVariable('argumentConverter', converted);
159
- setParameters.push(`parameters.${parameter.parameter.name} = ${converterVar}(_match[${1 + (parameter.regexPosition || 0)}], {loosely: true});`);
160
- const validator = (0, type_1.getValidatorFunction)(undefined, parameter.parameter.parameter);
161
- const validatorVar = compiler.reserveVariable('argumentValidator', validator);
162
- parameterValidator.push(`${validatorVar}(parameters.${parameter.parameter.name}, {errors: validationErrors}, ${JSON.stringify(parameter.getName())});`);
163
- }
164
- else {
165
- setParameters.push(`parameters.${parameter.parameter.name} = _match[${1 + (parameter.regexPosition || 0)}];`);
166
- }
167
- }
168
- const injectorToken = parameter.parameter.type.kind === type_1.ReflectionKind.class ? parameter.parameter.type.classType : undefined;
169
- const injectorTokenVar = compiler.reserveVariable('classType', injectorToken);
170
- const parameterResolverFoundVar = compiler.reserveVariable('parameterResolverFound', false);
171
- setParameters.push(`${parameterResolverFoundVar} = false;`);
172
- 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));
173
- //make sure all parameter values from the path are available, important for parameter resolver
174
- if (resolverType && !setParametersFromPath && config.pathParameterNames) {
175
- for (const i in config.pathParameterNames) {
176
- setParametersFromPath += `parameters.${i} = _match[${1 + config.pathParameterNames[i]}];`;
177
- }
178
- }
179
- let injector = '_injector';
180
- const moduleVar = config.module ? ', ' + compiler.reserveConst(config.module, 'module') : '';
181
- if (resolverType) {
182
- requiresAsyncParameters = true;
183
- let instanceFetcher = '';
184
- if (config.module && config.module.injector) {
185
- const resolverResolverVar = compiler.reserveVariable('resolverProvideToken', config.module.injector.createResolver((0, type_1.resolveReceiveType)(resolverType)));
186
- instanceFetcher = `${resolverResolverVar}(${injector}.scope)`;
187
- }
188
- else {
189
- const resolverProvideTokenVar = compiler.reserveVariable('resolverProvideToken', resolverType);
190
- instanceFetcher = `${injector}.get(${resolverProvideTokenVar}${moduleVar})`;
191
- }
192
- const instance = compiler.reserveVariable('resolverInstance');
193
- const routeConfigVar = compiler.reserveVariable('routeConfigVar', config.routeConfig);
194
- setParameters.push(`
195
- //resolver ${(0, core_1.getClassName)(resolverType)} for ${parameter.getName()}
196
- ${instance} = ${instanceFetcher};
197
- if (!${parameterResolverFoundVar}) {
198
- ${parameterResolverFoundVar} = true;
199
- parameters.${parameter.parameter.name} = await ${instance}.resolve({
200
- token: ${injectorTokenVar},
201
- route: ${routeConfigVar},
202
- request: request,
203
- name: ${JSON.stringify(parameter.parameter.name)},
204
- value: parameters.${parameter.parameter.name},
205
- query: _query,
206
- parameters: parameters,
207
- type: ${compiler.reserveVariable('parameterType', parameter.parameter)}
208
- });
209
- }`);
210
- }
211
- if (!parameter.isPartOfPath()) {
212
- let injectorGet = `parameters.${parameter.parameter.name} = ${injector}.get(${injectorTokenVar});`;
213
- if (parameter.parameter.isOptional()) {
214
- injectorGet = `try {parameters.${parameter.parameter.name} = ${injector}.get(${injectorTokenVar}); } catch (e) {}`;
215
- }
216
- setParameters.push(`if (!${parameterResolverFoundVar}) ${injectorGet}`);
217
- }
218
- }
219
- }
220
- let parseBodyLoading = '';
221
- if (enableParseBody) {
222
- const parseBodyVar = compiler.reserveVariable('parseBody', parseBody);
223
- parseBodyLoading = `
224
- const bodyFields = (await ${parseBodyVar}(request, uploadedFiles));`;
225
- requiresAsyncParameters = true;
226
- }
227
- let parametersLoader = '() => []';
228
- if (setParameters.length) {
229
- parametersLoader = `${requiresAsyncParameters ? 'async' : ''} function(_injector){
230
- const validationErrors = [];
231
- const bodyErrors = [];
232
- const parameters = {};
233
- ${setParametersFromPath}
234
- ${parseBodyLoading}
235
- ${setParameters.join('\n')}
236
- ${parameterValidator.join('\n')}
237
- ${bodyValidationErrorHandling}
238
- if (validationErrors.length) throw new ValidationError(validationErrors);
239
- return {arguments: [${parameterNames.join(',')}], parameters: parameters};
240
- }`;
241
- }
242
- return parametersLoader;
243
- }
244
- exports.getRuquestParserCodeForParameters = getRuquestParserCodeForParameters;
245
- getRuquestParserCodeForParameters.__type = [() => core_1.CompilerContext, 'compiler', () => ParameterForRequestParser, 'parameters', () => injector_1.InjectorModule, 'module', () => __ΩClassType, 'resolverForParameterName', () => __ΩClassType, 'resolverForToken', 'pathParameterNames', () => router_js_1.RouteConfig, 'routeConfig', 'config', 'getRuquestParserCodeForParameters', 'PP7!2"P7#F2$PP"7%4&8&n\'E4(8"n)E4*8P&\'LM4+8P7,4-8M2."//'];
246
- //# sourceMappingURL=resolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../src/resolver.ts"],"names":[],"mappings":"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"}
@@ -1,27 +0,0 @@
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;