@deepkit/http 1.0.1-alpha.98 → 1.0.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.
Files changed (101) hide show
  1. package/CHANGELOG.md +240 -0
  2. package/dist/cjs/index.d.ts +1 -0
  3. package/dist/cjs/index.js +1 -0
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/cjs/src/controllers.js +1 -1
  6. package/dist/cjs/src/decorator.d.ts +7 -6
  7. package/dist/cjs/src/decorator.js +55 -42
  8. package/dist/cjs/src/decorator.js.map +1 -1
  9. package/dist/cjs/src/filter.js +4 -4
  10. package/dist/cjs/src/filter.js.map +1 -1
  11. package/dist/cjs/src/http-app.d.ts +8 -0
  12. package/dist/cjs/src/http-app.js +16 -0
  13. package/dist/cjs/src/http-app.js.map +1 -0
  14. package/dist/cjs/src/http.d.ts +2 -4
  15. package/dist/cjs/src/http.js +63 -51
  16. package/dist/cjs/src/http.js.map +1 -1
  17. package/dist/cjs/src/kernel.d.ts +43 -3
  18. package/dist/cjs/src/kernel.js +58 -8
  19. package/dist/cjs/src/kernel.js.map +1 -1
  20. package/dist/cjs/src/logger.js +2 -2
  21. package/dist/cjs/src/logger.js.map +1 -1
  22. package/dist/cjs/src/middleware.d.ts +2 -2
  23. package/dist/cjs/src/middleware.js +5 -6
  24. package/dist/cjs/src/middleware.js.map +1 -1
  25. package/dist/cjs/src/model.d.ts +154 -31
  26. package/dist/cjs/src/model.js +81 -41
  27. package/dist/cjs/src/model.js.map +1 -1
  28. package/dist/cjs/src/module.config.d.ts +67 -2
  29. package/dist/cjs/src/module.config.js +2 -2
  30. package/dist/cjs/src/module.config.js.map +1 -1
  31. package/dist/cjs/src/module.js +18 -13
  32. package/dist/cjs/src/module.js.map +1 -1
  33. package/dist/cjs/src/request-parser.d.ts +2 -1
  34. package/dist/cjs/src/request-parser.js +138 -60
  35. package/dist/cjs/src/request-parser.js.map +1 -1
  36. package/dist/cjs/src/router.d.ts +12 -6
  37. package/dist/cjs/src/router.js +40 -28
  38. package/dist/cjs/src/router.js.map +1 -1
  39. package/dist/cjs/src/static-serving.d.ts +4 -0
  40. package/dist/cjs/src/static-serving.js +44 -40
  41. package/dist/cjs/src/static-serving.js.map +1 -1
  42. package/dist/cjs/src/utils.js +1 -2
  43. package/dist/cjs/src/utils.js.map +1 -1
  44. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  45. package/dist/esm/index.d.ts +1 -0
  46. package/dist/esm/index.js +1 -0
  47. package/dist/esm/index.js.map +1 -1
  48. package/dist/esm/src/controllers.js +2 -2
  49. package/dist/esm/src/controllers.js.map +1 -1
  50. package/dist/esm/src/decorator.d.ts +7 -6
  51. package/dist/esm/src/decorator.js +66 -54
  52. package/dist/esm/src/decorator.js.map +1 -1
  53. package/dist/esm/src/filter.js +5 -5
  54. package/dist/esm/src/filter.js.map +1 -1
  55. package/dist/esm/src/http-app.d.ts +8 -0
  56. package/dist/esm/src/http-app.js +12 -0
  57. package/dist/esm/src/http-app.js.map +1 -0
  58. package/dist/esm/src/http.d.ts +2 -4
  59. package/dist/esm/src/http.js +65 -53
  60. package/dist/esm/src/http.js.map +1 -1
  61. package/dist/esm/src/kernel.d.ts +43 -3
  62. package/dist/esm/src/kernel.js +60 -10
  63. package/dist/esm/src/kernel.js.map +1 -1
  64. package/dist/esm/src/logger.js +2 -2
  65. package/dist/esm/src/logger.js.map +1 -1
  66. package/dist/esm/src/middleware.d.ts +2 -2
  67. package/dist/esm/src/middleware.js +6 -7
  68. package/dist/esm/src/middleware.js.map +1 -1
  69. package/dist/esm/src/model.d.ts +154 -31
  70. package/dist/esm/src/model.js +59 -31
  71. package/dist/esm/src/model.js.map +1 -1
  72. package/dist/esm/src/module.config.d.ts +67 -2
  73. package/dist/esm/src/module.config.js +2 -2
  74. package/dist/esm/src/module.config.js.map +1 -1
  75. package/dist/esm/src/module.js +20 -15
  76. package/dist/esm/src/module.js.map +1 -1
  77. package/dist/esm/src/request-parser.d.ts +2 -1
  78. package/dist/esm/src/request-parser.js +139 -61
  79. package/dist/esm/src/request-parser.js.map +1 -1
  80. package/dist/esm/src/router.d.ts +12 -6
  81. package/dist/esm/src/router.js +46 -36
  82. package/dist/esm/src/router.js.map +1 -1
  83. package/dist/esm/src/static-serving.d.ts +4 -0
  84. package/dist/esm/src/static-serving.js +41 -39
  85. package/dist/esm/src/static-serving.js.map +1 -1
  86. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  87. package/index.ts +1 -0
  88. package/package.json +23 -16
  89. package/src/decorator.ts +20 -2
  90. package/src/http-app.ts +11 -0
  91. package/src/http.ts +30 -10
  92. package/src/kernel.ts +81 -9
  93. package/src/middleware.ts +1 -1
  94. package/src/model.ts +175 -16
  95. package/src/module.config.ts +75 -1
  96. package/src/module.ts +20 -12
  97. package/src/request-parser.ts +147 -62
  98. package/src/router.ts +36 -10
  99. package/src/static-serving.ts +49 -38
  100. package/tsconfig.json +9 -3
  101. package/tsconfig.spec.json +8 -0
@@ -3,7 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getRequestParserCodeForParameters = exports.buildRequestParser = exports.parseRoutePathToRegex = exports.ParameterForRequestParser = void 0;
6
+ exports.ParameterForRequestParser = void 0;
7
+ exports.parseRoutePathToRegex = parseRoutePathToRegex;
8
+ exports.buildRequestParser = buildRequestParser;
9
+ exports.getRequestParserCodeForParameters = getRequestParserCodeForParameters;
7
10
  /*@ts-ignore*/
8
11
  const { __ΩHttpParserOptions } = require('./module.config.js');
9
12
  /*@ts-ignore*/
@@ -17,39 +20,45 @@ const injector_1 = require("@deepkit/injector");
17
20
  const type_1 = require("@deepkit/type");
18
21
  const model_js_1 = require("./model.js");
19
22
  const router_js_1 = require("./router.js");
20
- //@ts-ignore
21
23
  const qs_1 = __importDefault(require("qs"));
22
- // @ts-ignore
23
24
  const formidable_1 = __importDefault(require("formidable"));
24
25
  function parseBody(options, req, foundFiles) {
25
26
  const form = (0, formidable_1.default)(Object.assign(options, {
26
27
  multiples: true,
27
28
  }));
28
- return (0, core_1.asyncOperation)(__assignType((resolve, reject) => {
29
- function parseData(err, fields, files) {
30
- if (err) {
31
- reject(err);
29
+ return (0, core_1.asyncOperation)(__assignType(async (resolve, reject) => {
30
+ function parseData(fields, files) {
31
+ const fileEntries = Object.entries(files);
32
+ // formidable turns JSON arrays into numerically keyed objects, so we convert them back
33
+ if ('0' in fields && fileEntries.length === 0 && Object.keys(fields).every(__assignType((key, idx) => parseInt(key) === idx, ['key', 'idx', '', 'P"2!"2""/#']))) {
34
+ return resolve(Object.values(fields));
32
35
  }
33
- else {
34
- for (const [name, file] of Object.entries(files)) {
35
- if (file.size === 0)
36
- continue;
37
- foundFiles[name] = {
38
- size: file.size,
39
- path: file.filepath,
40
- name: file.originalFilename,
41
- type: file.mimetype,
42
- lastModifiedDate: file.lastModifiedDate,
43
- };
44
- }
45
- const body = { ...fields, ...foundFiles };
46
- resolve(body);
36
+ for (const [name, files] of fileEntries) {
37
+ if (!files)
38
+ continue;
39
+ const file = files[0];
40
+ if (!file)
41
+ continue;
42
+ if (!file.filepath || 'string' !== typeof file.filepath)
43
+ continue;
44
+ if (!file.size || 'number' !== typeof file.size)
45
+ continue;
46
+ foundFiles[name] = {
47
+ validator: router_js_1.UploadedFileSymbol,
48
+ size: file.size,
49
+ path: file.filepath,
50
+ name: file.originalFilename || null,
51
+ type: file.mimetype || null,
52
+ lastModifiedDate: null,
53
+ };
47
54
  }
55
+ const body = { ...fields, ...foundFiles };
56
+ resolve(body);
48
57
  }
49
- parseData.__type = ['err', 'fields', 'files', 'parseData', 'P"2!"2""2#"/$'];
58
+ parseData.__type = ['fields', 'files', 'parseData', 'P!2!!2""/#'];
50
59
  if (req.body) {
51
- form.parse((0, model_js_1.createRequestWithCachedBody)(req, req.body), parseData);
52
- return;
60
+ const [fields, files] = await form.parse((0, model_js_1.createRequestWithCachedBody)(req, req.body));
61
+ parseData(fields, files);
53
62
  }
54
63
  const chunks = [];
55
64
  function read(chunk) {
@@ -62,7 +71,8 @@ function parseBody(options, req, foundFiles) {
62
71
  req.off('data', read);
63
72
  });
64
73
  req.once('error', () => req.off('data', read));
65
- form.parse(req, parseData);
74
+ const [fields, files] = await form.parse(req);
75
+ parseData(fields, files);
66
76
  }, ['resolve', 'reject', '', 'P"2!"2""/#']));
67
77
  }
68
78
  parseBody.__type = [() => __ΩHttpParserOptions, 'options', () => model_js_1.HttpRequest, 'req', () => router_js_1.UploadedFile, 'foundFiles', 'parseBody', 'Pn!2"P7#2$P&P7%LM2&"/\''];
@@ -71,12 +81,19 @@ class ParameterForRequestParser {
71
81
  this.parameter = parameter;
72
82
  }
73
83
  get body() {
74
- return type_1.metaAnnotation.getForName(this.parameter.type, 'httpBody') !== undefined;
84
+ return type_1.typeAnnotation.getType(this.parameter.type, 'httpBody') !== undefined;
85
+ }
86
+ get requestParser() {
87
+ return type_1.typeAnnotation.getType(this.parameter.type, 'httpRequestParser') !== undefined;
75
88
  }
76
89
  get bodyValidation() {
77
- return type_1.metaAnnotation.getForName(this.parameter.type, 'httpBodyValidation') !== undefined;
90
+ return type_1.typeAnnotation.getType(this.parameter.type, 'httpBodyValidation') !== undefined;
78
91
  }
79
92
  getType() {
93
+ const parser = type_1.typeAnnotation.getType(this.parameter.type, 'httpRequestParser');
94
+ if (parser) {
95
+ return parser;
96
+ }
80
97
  if (this.bodyValidation) {
81
98
  (0, type_1.assertType)(this.parameter.type, type_1.ReflectionKind.class);
82
99
  const valueType = (0, type_1.findMember)('value', this.parameter.type.types);
@@ -87,20 +104,20 @@ class ParameterForRequestParser {
87
104
  return this.parameter.type;
88
105
  }
89
106
  get header() {
90
- return type_1.metaAnnotation.getForName(this.parameter.type, 'httpHeader') !== undefined;
107
+ return type_1.typeAnnotation.getType(this.parameter.type, 'httpHeader') !== undefined;
91
108
  }
92
109
  get query() {
93
- return type_1.metaAnnotation.getForName(this.parameter.type, 'httpQuery') !== undefined;
110
+ return type_1.typeAnnotation.getType(this.parameter.type, 'httpQuery') !== undefined;
94
111
  }
95
112
  get queries() {
96
- return type_1.metaAnnotation.getForName(this.parameter.type, 'httpQueries') !== undefined;
113
+ return type_1.typeAnnotation.getType(this.parameter.type, 'httpQueries') !== undefined;
97
114
  }
98
115
  get typePath() {
99
- const typeOptions = type_1.metaAnnotation.getForName(this.parameter.type, 'httpQueries') || type_1.metaAnnotation.getForName(this.parameter.type, 'httpQuery')
100
- || type_1.metaAnnotation.getForName(this.parameter.type, 'httpPath') || type_1.metaAnnotation.getForName(this.parameter.type, 'httpHeader');
116
+ const typeOptions = type_1.typeAnnotation.getType(this.parameter.type, 'httpQueries') || type_1.typeAnnotation.getType(this.parameter.type, 'httpQuery')
117
+ || type_1.typeAnnotation.getType(this.parameter.type, 'httpPath') || type_1.typeAnnotation.getType(this.parameter.type, 'httpHeader');
101
118
  if (!typeOptions)
102
119
  return;
103
- const options = (0, type_1.typeToObject)(typeOptions[0]);
120
+ const options = (0, type_1.typeToObject)(typeOptions);
104
121
  if ((0, core_1.isObject)(options))
105
122
  return options.name;
106
123
  return;
@@ -109,11 +126,11 @@ class ParameterForRequestParser {
109
126
  return this.parameter.name;
110
127
  }
111
128
  isPartOfPath() {
112
- return type_1.metaAnnotation.getForName(this.parameter.type, 'httpPath') !== undefined || this.regexPosition !== undefined;
129
+ return type_1.typeAnnotation.getType(this.parameter.type, 'httpPath') !== undefined || this.regexPosition !== undefined;
113
130
  }
114
131
  }
115
132
  exports.ParameterForRequestParser = ParameterForRequestParser;
116
- ParameterForRequestParser.__type = ['regexPosition', () => type_1.ReflectionParameter, 'parameter', 'constructor', 'getType', 'getName', 'isPartOfPath', '\'3!8PP7"2#:"0$!!P"0%!!!!P"0&P)0\'5'];
133
+ ParameterForRequestParser.__type = ['regexPosition', () => type_1.ReflectionParameter, 'parameter', 'constructor', 'Type', 'getType', 'getName', 'isPartOfPath', 'ParameterForRequestParser', '\'3!8PP7"2#:"0$!!!P"w%0&!!!!P"0\'P)0(5w)'];
117
134
  function parseRoutePathToRegex(path, params) {
118
135
  const parameterNames = {};
119
136
  let argumentIndex = 0;
@@ -134,24 +151,35 @@ function parseRoutePathToRegex(path, params) {
134
151
  }, ['a', 'name', '', 'P"2!"2""/#']));
135
152
  return { regex: path, parameterNames };
136
153
  }
137
- exports.parseRoutePathToRegex = parseRoutePathToRegex;
138
154
  parseRoutePathToRegex.__type = ['path', () => type_1.ReflectionParameter, 'params', 'regex', 'parameterNames', 'parseRoutePathToRegex', 'P&2!P7"F2#P&4$P&\'LM4%M/&'];
139
- function buildRequestParser(parseOptions, parameters, path) {
155
+ function isTypeUnknown(type) {
156
+ if (type.id)
157
+ return false; //if is has an id we treat it as nominal type
158
+ return type.kind === type_1.ReflectionKind.unknown || type.kind === type_1.ReflectionKind.any
159
+ || type.kind === type_1.ReflectionKind.never;
160
+ }
161
+ isTypeUnknown.__type = ['Type', 'type', 'isTypeUnknown', 'P"w!2")/#'];
162
+ function buildRequestParser(parseOptions, parameters, routeConfig) {
140
163
  const compiler = new core_1.CompilerContext();
141
164
  const params = parameters.map(__assignType(v => new ParameterForRequestParser(v), ['v', '', 'P"2!"/"']));
142
165
  //todo: parse path
143
166
  let pathRegex = '';
144
- if (path) {
145
- const parsedPath = parseRoutePathToRegex(path, parameters);
167
+ let pathParameterNames = {};
168
+ if (routeConfig) {
169
+ const parsedPath = parseRoutePathToRegex(routeConfig.getFullPath(), parameters);
146
170
  pathRegex = parsedPath.regex;
171
+ pathParameterNames = parsedPath.parameterNames;
147
172
  for (const param of params) {
148
173
  param.regexPosition = parsedPath.parameterNames[param.parameter.name];
149
174
  }
150
175
  }
151
- const code = getRequestParserCodeForParameters(compiler, parseOptions, params, {});
176
+ const code = getRequestParserCodeForParameters(compiler, parseOptions, params, {
177
+ pathParameterNames,
178
+ routeConfig
179
+ });
152
180
  compiler.context.set('ValidationError', type_1.ValidationError);
153
181
  compiler.context.set('qs', qs_1.default);
154
- let needsQueryString = !!params.find(__assignType(v => v.query || v.queries, ['v', '', 'P"2!"/"']));
182
+ let needsQueryString = !!params.find(__assignType(v => v.query || v.queries || v.requestParser, ['v', '', 'P"2!"/"']));
155
183
  const query = needsQueryString ? '_qPosition === -1 ? {} : qs.parse(_url.substr(_qPosition + 1))' : '{}';
156
184
  const regexVar = compiler.reserveVariable('regex', new RegExp('^' + pathRegex + '$'));
157
185
  return compiler.build(`
@@ -166,10 +194,9 @@ function buildRequestParser(parseOptions, parameters, path) {
166
194
  return ${code}
167
195
  `, 'request');
168
196
  }
169
- exports.buildRequestParser = buildRequestParser;
170
- buildRequestParser.__type = [() => __ΩHttpParserOptions, 'parseOptions', () => type_1.ReflectionParameter, 'parameters', 'path', () => model_js_1.HttpRequest, 'request', '', 'buildRequestParser', 'Pn!2"P7#F2$&2%8PP7&2\'"F/(/)'];
197
+ buildRequestParser.__type = [() => __ΩHttpParserOptions, 'parseOptions', () => type_1.ReflectionParameter, 'parameters', () => router_js_1.RouteConfig, 'routeConfig', () => model_js_1.HttpRequest, 'request', '', 'buildRequestParser', 'Pn!2"P7#F2$P7%2&8PP7\'2("F/)/*'];
171
198
  function getRequestParserCodeForParameters(compiler, parseOptions, parameters, config) {
172
- var _a, _b;
199
+ compiler.set({ DependenciesUnmetError: injector_1.DependenciesUnmetError });
173
200
  let enableParseBody = false;
174
201
  let requiresAsyncParameters = false;
175
202
  const setParameters = [];
@@ -178,13 +205,10 @@ function getRequestParserCodeForParameters(compiler, parseOptions, parameters, c
178
205
  let setParametersFromPath = '';
179
206
  let bodyValidationErrorHandling = `if (bodyErrors.length) throw ValidationError.from(bodyErrors);`;
180
207
  for (const parameter of parameters) {
181
- if (parameter.body || parameter.bodyValidation) {
208
+ if (parameter.requestParser || parameter.body || parameter.bodyValidation) {
182
209
  const type = parameter.getType();
183
210
  const validatorVar = compiler.reserveVariable('argumentValidator', (0, type_1.getValidatorFunction)(undefined, type));
184
211
  const converterVar = compiler.reserveVariable('argumentConverter', (0, type_1.getSerializeFunction)(type, type_1.serializer.deserializeRegistry));
185
- enableParseBody = true;
186
- setParameters.push(`parameters.${parameter.parameter.name} = ${converterVar}(bodyFields, {loosely: true});`);
187
- parameterValidator.push(`${validatorVar}(parameters.${parameter.parameter.name}, {errors: bodyErrors});`);
188
212
  if (parameter.bodyValidation) {
189
213
  compiler.context.set('BodyValidation', model_js_1.ValidatedBody);
190
214
  compiler.context.set('BodyValidationError', model_js_1.BodyValidationError);
@@ -194,6 +218,39 @@ function getRequestParserCodeForParameters(compiler, parseOptions, parameters, c
194
218
  else {
195
219
  parameterNames.push(`parameters.${parameter.parameter.name}`);
196
220
  }
221
+ if (parameter.requestParser) {
222
+ const parseOptionsVar = compiler.reserveVariable('parseOptions', parseOptions);
223
+ const parseBodyVar = compiler.reserveVariable('parseBody', parseBody);
224
+ let assignPathNames = [];
225
+ for (const [name, index] of Object.entries(config.pathParameterNames || {})) {
226
+ assignPathNames.push(`res.${name} = _match[${1 + index}];`);
227
+ }
228
+ setParameters.push(`parameters.${parameter.parameter.name} = async (options = {}) => {
229
+ let res = {};
230
+ if (options.withPath !== false) {
231
+ ${assignPathNames.join('\n')}
232
+ }
233
+ if (options.withHeader !== false) {
234
+ Object.assign(res, _headers);
235
+ }
236
+ if (options.withBody !== false) {
237
+ bodyFields = bodyFields || (await ${parseBodyVar}(${parseOptionsVar}, request, uploadedFiles));
238
+ Object.assign(res, bodyFields);
239
+ }
240
+ if (options.withQuery !== false) {
241
+ Object.assign(res, _query);
242
+ }
243
+ res = ${converterVar}(res, {loosely: true});
244
+ ${validatorVar}(res, {errors: bodyErrors});
245
+ if (bodyErrors.length) throw ValidationError.from(bodyErrors);
246
+ return res;
247
+ }`);
248
+ }
249
+ else {
250
+ enableParseBody = true;
251
+ setParameters.push(`parameters.${parameter.parameter.name} = ${converterVar}(bodyFields, {loosely: true});`);
252
+ parameterValidator.push(`${validatorVar}(parameters.${parameter.parameter.name}, {errors: bodyErrors});`);
253
+ }
197
254
  }
198
255
  else if (parameter.query || parameter.queries || parameter.header) {
199
256
  const converted = (0, type_1.getSerializeFunction)(parameter.parameter.parameter, type_1.serializer.deserializeRegistry, undefined, parameter.getName());
@@ -203,7 +260,12 @@ function getRequestParserCodeForParameters(compiler, parseOptions, parameters, c
203
260
  const queryPath = parameter.typePath === undefined && !parameter.queries ? parameter.parameter.name : parameter.typePath;
204
261
  const accessor = queryPath ? `['` + (queryPath.replace(/\./g, `']['`)) + `']` : '';
205
262
  const queryAccessor = parameter.header ? `_headers${accessor}` : queryPath ? `_query${accessor}` : '_query';
206
- setParameters.push(`parameters.${parameter.parameter.name} = ${converterVar}(${queryAccessor}, {loosely: true});`);
263
+ if ((0, type_1.isOptional)(parameter.parameter.parameter) || (0, type_1.hasDefaultValue)(parameter.parameter.parameter)) {
264
+ setParameters.push(`parameters.${parameter.parameter.name} = ${queryAccessor} === undefined ? undefined : ${converterVar}(${queryAccessor}, {loosely: true});`);
265
+ }
266
+ else {
267
+ setParameters.push(`parameters.${parameter.parameter.name} = ${converterVar}(${queryAccessor}, {loosely: true});`);
268
+ }
207
269
  parameterNames.push(`parameters.${parameter.parameter.name}`);
208
270
  parameterValidator.push(`${validatorVar}(parameters.${parameter.parameter.name}, {errors: validationErrors}, ${JSON.stringify(parameter.typePath || parameter.getName())});`);
209
271
  }
@@ -222,19 +284,24 @@ function getRequestParserCodeForParameters(compiler, parseOptions, parameters, c
222
284
  setParameters.push(`parameters.${parameter.parameter.name} = _match[${1 + (parameter.regexPosition || 0)}];`);
223
285
  }
224
286
  }
225
- const injectorToken = parameter.parameter.type.kind === type_1.ReflectionKind.class ? parameter.parameter.type.classType : undefined;
226
- const injectorTokenVar = compiler.reserveVariable('classType', injectorToken);
287
+ const injectorTokenVar = compiler.reserveVariable('type', parameter.parameter.type);
227
288
  const parameterResolverFoundVar = compiler.reserveVariable('parameterResolverFound', false);
228
289
  setParameters.push(`${parameterResolverFoundVar} = false;`);
229
- 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));
290
+ const resolverType = config.resolverForParameterName?.get(parameter.getName())
291
+ || config.resolverForToken?.get(parameter.parameter.type.kind === type_1.ReflectionKind.class ? parameter.parameter.type.classType : undefined);
230
292
  //make sure all parameter values from the path are available, important for parameter resolver
231
293
  if (resolverType && !setParametersFromPath && config.pathParameterNames) {
232
294
  for (const i in config.pathParameterNames) {
233
295
  setParametersFromPath += `parameters.${i} = _match[${1 + config.pathParameterNames[i]}];`;
234
296
  }
235
297
  }
298
+ if (!resolverType && !parameter.isPartOfPath() && isTypeUnknown(parameter.parameter.type)) {
299
+ const label = config.routeConfig ? (0, router_js_1.getRouteActionLabel)(config.routeConfig?.action) + ' ' : '';
300
+ throw new Error(`Parameter ${label}${JSON.stringify(parameter.parameter.name)} has no runtime type. Runtime types disabled or circular dependencies?`);
301
+ }
236
302
  let injector = '_injector';
237
- const moduleVar = config.module ? ', ' + compiler.reserveConst(config.module, 'module') : '';
303
+ const moduleRawVar = config.module ? compiler.reserveConst(config.module, 'module') : 'undefined';
304
+ const moduleVar = config.module ? `, ${moduleRawVar}` : '';
238
305
  if (resolverType) {
239
306
  requiresAsyncParameters = true;
240
307
  let instanceFetcher = '';
@@ -248,13 +315,15 @@ function getRequestParserCodeForParameters(compiler, parseOptions, parameters, c
248
315
  }
249
316
  const instance = compiler.reserveVariable('resolverInstance');
250
317
  const routeConfigVar = compiler.reserveVariable('routeConfigVar', config.routeConfig);
318
+ const classTypeToken = parameter.parameter.type.kind === type_1.ReflectionKind.class ? parameter.parameter.type.classType : undefined;
319
+ const classTypeTokenVar = compiler.reserveVariable('classType', classTypeToken);
251
320
  setParameters.push(`
252
321
  //resolver ${(0, core_1.getClassName)(resolverType)} for ${parameter.getName()}
253
322
  ${instance} = ${instanceFetcher};
254
323
  if (!${parameterResolverFoundVar}) {
255
324
  ${parameterResolverFoundVar} = true;
256
325
  parameters.${parameter.parameter.name} = await ${instance}.resolve({
257
- token: ${injectorTokenVar},
326
+ token: ${classTypeTokenVar},
258
327
  route: ${routeConfigVar},
259
328
  request: request,
260
329
  name: ${JSON.stringify(parameter.parameter.name)},
@@ -266,11 +335,20 @@ function getRequestParserCodeForParameters(compiler, parseOptions, parameters, c
266
335
  }`);
267
336
  }
268
337
  if (!parameter.isPartOfPath()) {
269
- let injectorGet = `parameters.${parameter.parameter.name} = ${injector}.get(${injectorTokenVar});`;
270
- if (parameter.parameter.isOptional()) {
271
- injectorGet = `try {parameters.${parameter.parameter.name} = ${injector}.get(${injectorTokenVar}); } catch (e) {}`;
338
+ const resolverVar = compiler.reserveVariable('resolver');
339
+ let injectorGet = `
340
+ if (!${resolverVar}) ${resolverVar} = ${injector}.resolve(${moduleRawVar}, ${injectorTokenVar});
341
+ parameters.${parameter.parameter.name} = ${resolverVar}(${injector}.scope);
342
+ `;
343
+ if (!parameter.parameter.isOptional()) {
344
+ injectorGet += `
345
+ if (!parameters.${parameter.parameter.name}) {
346
+ throw new DependenciesUnmetError(
347
+ \`Parameter \${${JSON.stringify(parameter.parameter.name)}} is required but provider returned undefined.\`,
348
+ );
349
+ }`;
272
350
  }
273
- setParameters.push(`if (!${parameterResolverFoundVar}) ${injectorGet}`);
351
+ setParameters.push(`if (!${parameterResolverFoundVar}) { ${injectorGet} }`);
274
352
  }
275
353
  }
276
354
  }
@@ -279,7 +357,7 @@ function getRequestParserCodeForParameters(compiler, parseOptions, parameters, c
279
357
  const parseOptionsVar = compiler.reserveVariable('parseOptions', parseOptions);
280
358
  const parseBodyVar = compiler.reserveVariable('parseBody', parseBody);
281
359
  parseBodyLoading = `
282
- const bodyFields = (await ${parseBodyVar}(${parseOptionsVar}, request, uploadedFiles));`;
360
+ bodyFields = bodyFields || (await ${parseBodyVar}(${parseOptionsVar}, request, uploadedFiles));`;
283
361
  requiresAsyncParameters = true;
284
362
  }
285
363
  let parametersLoader = '() => {}';
@@ -288,6 +366,7 @@ function getRequestParserCodeForParameters(compiler, parseOptions, parameters, c
288
366
  const validationErrors = [];
289
367
  const bodyErrors = [];
290
368
  const parameters = {};
369
+ let bodyFields;
291
370
  ${setParametersFromPath}
292
371
  ${parseBodyLoading}
293
372
  ${setParameters.join('\n')}
@@ -299,6 +378,5 @@ function getRequestParserCodeForParameters(compiler, parseOptions, parameters, c
299
378
  }
300
379
  return parametersLoader;
301
380
  }
302
- exports.getRequestParserCodeForParameters = getRequestParserCodeForParameters;
303
381
  getRequestParserCodeForParameters.__type = [() => core_1.CompilerContext, 'compiler', () => __ΩHttpParserOptions, 'parseOptions', () => ParameterForRequestParser, 'parameters', () => injector_1.InjectorModule, 'module', () => __ΩClassType, 'resolverForParameterName', () => __ΩClassType, 'resolverForToken', 'pathParameterNames', () => router_js_1.RouteConfig, 'routeConfig', 'config', 'getRequestParserCodeForParameters', 'PP7!2"n#2$P7%F2&PP"7\'4(8&n)E4*8"n+E4,8P&\'LM4-8P7.4/8M20"/1'];
304
382
  //# sourceMappingURL=request-parser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"request-parser.js","sourceRoot":"","sources":["../../../src/request-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request-parser.js","sourceRoot":"","sources":["../../../src/request-parser.ts"],"names":[],"mappings":"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"}
@@ -2,14 +2,14 @@ import { ClassType, CompilerContext } from '@deepkit/core';
2
2
  import { ReflectionFunction, ReflectionParameter, SerializationOptions, Serializer, Type } from '@deepkit/type';
3
3
  import { HttpDecorator } from './decorator.js';
4
4
  import { HttpRequest, HttpRequestPositionedParameters, HttpRequestQuery, HttpRequestResolvedParameters } from './model.js';
5
- import { InjectorContext, InjectorModule, TagRegistry } from '@deepkit/injector';
5
+ import { InjectorContext, InjectorModule } from '@deepkit/injector';
6
6
  import { LoggerInterface } from '@deepkit/logger';
7
7
  import { HttpControllers } from './controllers.js';
8
8
  import { MiddlewareRegistry } from '@deepkit/app';
9
9
  import { HttpMiddlewareConfig, HttpMiddlewareFn } from './middleware.js';
10
10
  import { ParameterForRequestParser } from './request-parser.js';
11
11
  import { HttpConfig } from './module.config.js';
12
- export declare type RouteParameterResolverForInjector = ((injector: InjectorContext) => HttpRequestPositionedParameters | Promise<HttpRequestPositionedParameters>);
12
+ export type RouteParameterResolverForInjector = ((injector: InjectorContext) => HttpRequestPositionedParameters | Promise<HttpRequestPositionedParameters>);
13
13
  interface ResolvedController {
14
14
  parameters: RouteParameterResolverForInjector;
15
15
  routeConfig: RouteConfig;
@@ -18,10 +18,15 @@ interface ResolvedController {
18
18
  };
19
19
  middlewares?: (injector: InjectorContext) => {
20
20
  fn: HttpMiddlewareFn;
21
- timeout: number;
21
+ timeout?: number;
22
22
  }[];
23
23
  }
24
+ export declare const UploadedFileSymbol: unique symbol;
24
25
  export declare class UploadedFile {
26
+ /**
27
+ * Validator to ensure the file was provided by the framework, and not the user spoofing it.
28
+ */
29
+ validator: typeof UploadedFileSymbol | null;
25
30
  /**
26
31
  * The size of the uploaded file in bytes.
27
32
  */
@@ -55,6 +60,7 @@ export interface RouteClassControllerAction {
55
60
  controller: ClassType;
56
61
  methodName: string;
57
62
  }
63
+ export declare function getRouteActionLabel(action: RouteClassControllerAction | RouteFunctionControllerAction): string;
58
64
  export declare class RouteConfig {
59
65
  readonly name: string;
60
66
  readonly httpMethods: string[];
@@ -92,7 +98,7 @@ export declare class RouteConfig {
92
98
  getSchemaForResponse(statusCode: number): Type | undefined;
93
99
  getFullPath(): string;
94
100
  }
95
- declare class ParsedRoute {
101
+ export declare class ParsedRoute {
96
102
  routeConfig: RouteConfig;
97
103
  regex?: string;
98
104
  pathParameterNames: {
@@ -198,12 +204,12 @@ export declare class HttpRouter {
198
204
  protected resolveFn?: (name: string, parameters: {
199
205
  [name: string]: any;
200
206
  }) => string;
201
- constructor(controllers: HttpControllers, logger: LoggerInterface, tagRegistry: TagRegistry, config: HttpConfig, middlewareRegistry?: MiddlewareRegistry, registry?: HttpRouterRegistry);
207
+ constructor(controllers: HttpControllers, logger: LoggerInterface, config: HttpConfig, middlewareRegistry?: MiddlewareRegistry, registry?: HttpRouterRegistry);
202
208
  getRoutes(): RouteConfig[];
203
209
  static forControllers(controllers: (ClassType | {
204
210
  module: InjectorModule<any>;
205
211
  controller: ClassType;
206
- })[], tagRegistry?: TagRegistry, middlewareRegistry?: MiddlewareRegistry, module?: InjectorModule<any>, config?: HttpConfig): HttpRouter;
212
+ })[], middlewareRegistry?: MiddlewareRegistry, module?: InjectorModule<any>, config?: HttpConfig): HttpRouter;
207
213
  protected getRouteCode(compiler: CompilerContext, routeConfig: RouteConfig): string;
208
214
  protected getRouteUrlResolveCode(compiler: CompilerContext, routeConfig: RouteConfig): string;
209
215
  addRoute(routeConfig: RouteConfig): void;