@deepkit/http 1.0.1-alpha.71 → 1.0.1-alpha.74

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 (121) hide show
  1. package/dist/cjs/src/decorator.d.ts +8 -6
  2. package/dist/cjs/src/decorator.js +49 -12
  3. package/dist/cjs/src/decorator.js.map +1 -1
  4. package/dist/cjs/src/filter.d.ts +3 -3
  5. package/dist/cjs/src/filter.js +3 -3
  6. package/dist/cjs/src/filter.js.map +1 -1
  7. package/dist/cjs/src/http.d.ts +49 -11
  8. package/dist/cjs/src/http.js +125 -39
  9. package/dist/cjs/src/http.js.map +1 -1
  10. package/dist/cjs/src/kernel.d.ts +3 -3
  11. package/dist/cjs/src/kernel.js +1 -1
  12. package/dist/cjs/src/kernel.js.map +1 -1
  13. package/dist/cjs/src/model.d.ts +11 -3
  14. package/dist/cjs/src/model.js +59 -27
  15. package/dist/cjs/src/model.js.map +1 -1
  16. package/dist/cjs/src/module.js +5 -3
  17. package/dist/cjs/src/module.js.map +1 -1
  18. package/dist/cjs/src/router.d.ts +84 -11
  19. package/dist/cjs/src/router.js +292 -96
  20. package/dist/cjs/src/router.js.map +1 -1
  21. package/dist/cjs/src/static-serving.js +15 -8
  22. package/dist/cjs/src/static-serving.js.map +1 -1
  23. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  24. package/dist/esm/src/decorator.d.ts +8 -6
  25. package/dist/esm/src/decorator.js +47 -11
  26. package/dist/esm/src/decorator.js.map +1 -1
  27. package/dist/esm/src/filter.d.ts +3 -3
  28. package/dist/esm/src/filter.js +4 -4
  29. package/dist/esm/src/filter.js.map +1 -1
  30. package/dist/esm/src/http.d.ts +49 -11
  31. package/dist/esm/src/http.js +112 -39
  32. package/dist/esm/src/http.js.map +1 -1
  33. package/dist/esm/src/kernel.d.ts +3 -3
  34. package/dist/esm/src/kernel.js +2 -2
  35. package/dist/esm/src/kernel.js.map +1 -1
  36. package/dist/esm/src/model.d.ts +11 -3
  37. package/dist/esm/src/model.js +51 -19
  38. package/dist/esm/src/model.js.map +1 -1
  39. package/dist/esm/src/module.js +6 -4
  40. package/dist/esm/src/module.js.map +1 -1
  41. package/dist/esm/src/router.d.ts +84 -11
  42. package/dist/esm/src/router.js +291 -97
  43. package/dist/esm/src/router.js.map +1 -1
  44. package/dist/esm/src/static-serving.js +16 -9
  45. package/dist/esm/src/static-serving.js.map +1 -1
  46. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  47. package/package.json +17 -14
  48. package/src/decorator.ts +9 -6
  49. package/src/filter.ts +4 -4
  50. package/src/http.ts +83 -15
  51. package/src/kernel.ts +2 -2
  52. package/src/model.ts +35 -6
  53. package/src/module.ts +5 -3
  54. package/src/router.ts +298 -77
  55. package/src/static-serving.ts +6 -3
  56. package/coverage/clover.xml +0 -1086
  57. package/coverage/coverage-final.json +0 -12
  58. package/coverage/lcov-report/base.css +0 -224
  59. package/coverage/lcov-report/block-navigation.js +0 -79
  60. package/coverage/lcov-report/favicon.png +0 -0
  61. package/coverage/lcov-report/index.html +0 -126
  62. package/coverage/lcov-report/prettify.css +0 -1
  63. package/coverage/lcov-report/prettify.js +0 -2
  64. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  65. package/coverage/lcov-report/sorter.js +0 -170
  66. package/coverage/lcov-report/src/controllers.ts.html +0 -113
  67. package/coverage/lcov-report/src/decorator.ts.html +0 -1280
  68. package/coverage/lcov-report/src/filter.ts.html +0 -734
  69. package/coverage/lcov-report/src/http.ts.html +0 -2192
  70. package/coverage/lcov-report/src/index.html +0 -246
  71. package/coverage/lcov-report/src/kernel.ts.html +0 -260
  72. package/coverage/lcov-report/src/middleware.ts.html +0 -428
  73. package/coverage/lcov-report/src/model.ts.html +0 -937
  74. package/coverage/lcov-report/src/module.config.ts.html +0 -89
  75. package/coverage/lcov-report/src/module.ts.html +0 -245
  76. package/coverage/lcov-report/src/router.ts.html +0 -2318
  77. package/coverage/lcov-report/tests/index.html +0 -111
  78. package/coverage/lcov-report/tests/utils.ts.html +0 -176
  79. package/coverage/lcov.info +0 -2225
  80. package/dist/cjs/tests/filter.spec.d.ts +0 -1
  81. package/dist/cjs/tests/filter.spec.js +0 -251
  82. package/dist/cjs/tests/filter.spec.js.map +0 -1
  83. package/dist/cjs/tests/middleware.spec.d.ts +0 -1
  84. package/dist/cjs/tests/middleware.spec.js +0 -471
  85. package/dist/cjs/tests/middleware.spec.js.map +0 -1
  86. package/dist/cjs/tests/model.spec.d.ts +0 -1
  87. package/dist/cjs/tests/model.spec.js +0 -23
  88. package/dist/cjs/tests/model.spec.js.map +0 -1
  89. package/dist/cjs/tests/module.spec.d.ts +0 -1
  90. package/dist/cjs/tests/module.spec.js +0 -46
  91. package/dist/cjs/tests/module.spec.js.map +0 -1
  92. package/dist/cjs/tests/router.spec.d.ts +0 -1
  93. package/dist/cjs/tests/router.spec.js +0 -987
  94. package/dist/cjs/tests/router.spec.js.map +0 -1
  95. package/dist/cjs/tests/utils.d.ts +0 -8
  96. package/dist/cjs/tests/utils.js +0 -30
  97. package/dist/cjs/tests/utils.js.map +0 -1
  98. package/dist/esm/tests/filter.spec.d.ts +0 -1
  99. package/dist/esm/tests/filter.spec.js +0 -249
  100. package/dist/esm/tests/filter.spec.js.map +0 -1
  101. package/dist/esm/tests/middleware.spec.d.ts +0 -1
  102. package/dist/esm/tests/middleware.spec.js +0 -469
  103. package/dist/esm/tests/middleware.spec.js.map +0 -1
  104. package/dist/esm/tests/model.spec.d.ts +0 -1
  105. package/dist/esm/tests/model.spec.js +0 -21
  106. package/dist/esm/tests/model.spec.js.map +0 -1
  107. package/dist/esm/tests/module.spec.d.ts +0 -1
  108. package/dist/esm/tests/module.spec.js +0 -44
  109. package/dist/esm/tests/module.spec.js.map +0 -1
  110. package/dist/esm/tests/router.spec.d.ts +0 -1
  111. package/dist/esm/tests/router.spec.js +0 -985
  112. package/dist/esm/tests/router.spec.js.map +0 -1
  113. package/dist/esm/tests/utils.d.ts +0 -8
  114. package/dist/esm/tests/utils.js +0 -26
  115. package/dist/esm/tests/utils.js.map +0 -1
  116. package/tests/filter.spec.ts +0 -181
  117. package/tests/middleware.spec.ts +0 -440
  118. package/tests/model.spec.ts +0 -26
  119. package/tests/module.spec.ts +0 -32
  120. package/tests/router.spec.ts +0 -781
  121. package/tests/utils.ts +0 -32
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- /*
3
- * Deepkit Framework
4
- * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt
5
- *
6
- * This program is free software: you can redistribute it and/or modify
7
- * it under the terms of the MIT License.
8
- *
9
- * You should have received a copy of the MIT License along with this program.
10
- */
11
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
3
  if (k2 === undefined) k2 = k;
13
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -33,11 +24,27 @@ var __importStar = (this && this.__importStar) || function (mod) {
33
24
  };
34
25
  Object.defineProperty(exports, "__esModule", { value: true });
35
26
  exports.MemoryHttpResponse = exports.HttpRequest = exports.RequestBuilder = exports.getRegExp = exports.__ΩHttpRegExp = exports.__ΩHttpQueries = exports.__ΩHttpQuery = exports.__ΩHttpBodyValidation = exports.__ΩHttpBody = exports.ValidatedBody = exports.BodyValidationError = exports.__ΩHttpRequestResolvedParameters = exports.__ΩHttpRequestQuery = exports.HttpResponse = void 0;
27
+ function __assignType(fn, args) {
28
+ fn.__type = args;
29
+ return fn;
30
+ }
31
+ const __ΩConcatArray = ['T', 'length', 'separator', 'join', 'start', 'end', 'slice', 'b!P\'4"9\'e"!LP&2#8&1$P\'2%8\'2&8e#!F1\'M'];
32
+ const __ΩReadonlyArray = ['T', 'length', 'toString', 'toLocaleString', () => __ΩConcatArray, 'items', 'concat', () => __ΩConcatArray, 'separator', 'join', 'start', 'end', 'slice', 'searchElement', 'fromIndex', 'indexOf', 'lastIndexOf', 'value', 'index', 'array', '', 'predicate', 'thisArg', 'every', 'some', 'callbackfn', 'forEach', 'map', 'filter', 'previousValue', 'currentValue', 'currentIndex', 'reduce', 'initialValue', 'reduceRight', 'b!P\'4"9P&1#P&1$Pe#!o%"@2&e#!F1\'PPe$!e$!o("J@2&e#!F1\'P&2)8&1*P\'2+8\'2,8e#!F1-Pe#!2.\'2/8\'10Pe#!2.\'2/8\'11PPe$!22\'23e$!F924!/526"278!18PPe$!22\'23e$!F924#/526"278)18PPe$!22\'23e$!F924#/526"278)19PPe$!22\'23e$!F924$/52:"278$1;PPe$!22\'23e$!F924"/52:"278"F1<PPe$!22\'23e$!F924!/526"278"F1=PPe$!22\'23e$!F924#/526"278e#!F1=PPe$!2>e$!2?\'2@e$!F924e$!/52:e#!1APPe$!2>e$!2?\'2@e$!F924e$!/52:e#!2Be#!1APP"2>e$!2?\'2@e$!F924"/52:"2B"1APPe$!2>e$!2?\'2@e$!F924e$!/52:e#!1CPPe$!2>e$!2?\'2@e$!F924e$!/52:e#!2Be#!1CPP"2>e$!2?\'2@e$!F924"/52:"2B"1C\'e"!LM'];
33
+ /*
34
+ * Deepkit Framework
35
+ * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt
36
+ *
37
+ * This program is free software: you can redistribute it and/or modify
38
+ * it under the terms of the MIT License.
39
+ *
40
+ * You should have received a copy of the MIT License along with this program.
41
+ */
36
42
  const http_1 = require("http");
37
43
  const router_1 = require("./router");
38
44
  const querystring = __importStar(require("querystring"));
39
45
  const stream_1 = require("stream");
40
46
  const type_1 = require("@deepkit/type");
47
+ const core_1 = require("@deepkit/core");
41
48
  class HttpResponse extends http_1.ServerResponse {
42
49
  status(code) {
43
50
  this.writeHead(code);
@@ -45,7 +52,7 @@ class HttpResponse extends http_1.ServerResponse {
45
52
  }
46
53
  }
47
54
  exports.HttpResponse = HttpResponse;
48
- HttpResponse.__type = ['code', 'status', 'P\'2!"0"5'];
55
+ HttpResponse.__type = [() => http_1.ServerResponse, 'code', 'status', 'P7!P\'2""0#5'];
49
56
  const __ΩHttpRequestQuery = ['P&&LM'];
50
57
  exports.__ΩHttpRequestQuery = __ΩHttpRequestQuery;
51
58
  const __ΩHttpRequestResolvedParameters = ['P&"LM'];
@@ -59,18 +66,18 @@ class BodyValidationError {
59
66
  }
60
67
  getErrors(prefix) {
61
68
  if (prefix)
62
- return this.errors.filter(Object.assign(v => v.path.startsWith(prefix), { __type: ['v', '', 'P"2!"/"'] }));
69
+ return this.errors.filter(__assignType(v => v.path.startsWith(prefix), ['v', '', 'P"2!"/"']));
63
70
  return this.errors;
64
71
  }
65
72
  getErrorsForPath(path) {
66
- return this.errors.filter(Object.assign(v => v.path === path, { __type: ['v', '', 'P"2!"/"'] }));
73
+ return this.errors.filter(__assignType(v => v.path === path, ['v', '', 'P"2!"/"']));
67
74
  }
68
75
  getErrorMessageForPath(path) {
69
- return this.getErrorsForPath(path).map(Object.assign(v => v.message, { __type: ['v', '', 'P"2!"/"'] })).join(', ');
76
+ return this.getErrorsForPath(path).map(__assignType(v => v.message, ['v', '', 'P"2!"/"'])).join(', ');
70
77
  }
71
78
  }
72
79
  exports.BodyValidationError = BodyValidationError;
73
- BodyValidationError.__type = [() => type_1.ValidationErrorItem, 'errors', () => [], 'constructor', 'prefix', 'hasErrors', () => type_1.ValidationErrorItem, 'getErrors', 'path', () => type_1.ValidationErrorItem, 'getErrorsForPath', 'getErrorMessageForPath', 'PP7!F2":>#"0$P&2%8)0&P&2%8P7\'F0(P&2)P7*F0+P&2)&0,5'];
80
+ BodyValidationError.__type = [() => type_1.ValidationErrorItem, 'errors', () => [], 'constructor', 'prefix', 'hasErrors', () => type_1.ValidationErrorItem, 'getErrors', 'path', () => type_1.ValidationErrorItem, 'getErrorsForPath', 'getErrorMessageForPath', 'PP7!F2":9>#"0$P&2%8)0&P&2%8P7\'F0(P&2)P7*F0+P&2)&0,5'];
74
81
  class ValidatedBody {
75
82
  constructor(error, value) {
76
83
  this.error = error;
@@ -96,12 +103,14 @@ function getRegExp(type) {
96
103
  const options = type_1.metaAnnotation.getForName(type, 'httpRegExp');
97
104
  if (!options || !options[0])
98
105
  return;
99
- if (options[0].kind !== 13 /* literal */ || 'string' !== typeof options[0].literal)
100
- return;
101
- return options[0].literal;
106
+ if (options[0].kind === type_1.ReflectionKind.literal && 'string' === typeof options[0].literal)
107
+ return options[0].literal;
108
+ if (options[0].kind === type_1.ReflectionKind.literal && options[0].literal instanceof RegExp)
109
+ return options[0].literal;
110
+ return;
102
111
  }
103
112
  exports.getRegExp = getRegExp;
104
- getRegExp.__type = ['type', 'getRegExp', 'P"2!P&-J/"'];
113
+ getRegExp.__type = ['type', 'getRegExp', 'P"2!P&A-J/"'];
105
114
  class RequestBuilder {
106
115
  constructor(path, method = 'GET') {
107
116
  this.path = path;
@@ -122,12 +131,12 @@ class RequestBuilder {
122
131
  const url = this.getUrl();
123
132
  const bodyContent = this.contentBuffer;
124
133
  const writable = new stream_1.Writable({
125
- write: Object.assign(function write(chunk, encoding, callback) {
134
+ write: __assignType(function write(chunk, encoding, callback) {
126
135
  -callback();
127
- }, { __type: ['chunk', 'encoding', 'callback', 'write', 'P"2!"2""2#"/$'] }),
128
- writev: Object.assign(function writev(chunks, callback) {
136
+ }, ['chunk', 'encoding', 'callback', 'write', 'P"2!"2""2#"/$']),
137
+ writev: __assignType(function writev(chunks, callback) {
129
138
  callback();
130
- }, { __type: ['chunks', 'callback', 'writev', 'P"2!"2""/#'] })
139
+ }, ['chunks', 'callback', 'writev', 'P"2!"2""/#'])
131
140
  });
132
141
  const request = new (_a = class extends HttpRequest {
133
142
  constructor() {
@@ -148,7 +157,7 @@ class RequestBuilder {
148
157
  }
149
158
  }
150
159
  },
151
- _a.__type = ['size', '_read', 'P\'2!"0"5'],
160
+ _a.__type = [() => HttpRequest, 'size', '_read', 'P7!P\'2""0#5'],
152
161
  _a)(writable);
153
162
  return request;
154
163
  }
@@ -182,7 +191,7 @@ class RequestBuilder {
182
191
  }
183
192
  }
184
193
  exports.RequestBuilder = RequestBuilder;
185
- RequestBuilder.__type = [() => Buffer, 'contentBuffer', function () { return Buffer.alloc(0); }, '_headers', function () { return {}; }, 'queryPath', 'path', 'method', () => "GET", 'constructor', 'getUrl', () => HttpRequest, 'build', 'headers', 'name', 'value', 'header', 'body', 'json', () => Buffer, 'query', 'P7!3"<>#P&&LM3$<>%&3&8<P&2\'<&2(<>)"0*P"0+PP7,0-PP&&LM2.!0.P&2/P&\'J20!01P%22!03PP&P74J22!02P"25!055'];
194
+ RequestBuilder.__type = ['contentBuffer', function () { return Buffer.alloc(0); }, '_headers', function () { return {}; }, 'queryPath', 'path', 'method', () => "GET", 'constructor', 'getUrl', () => HttpRequest, 'build', 'headers', 'name', 'value', 'header', 'body', 'json', 'query', '!3!<>"P&&LM3#<>$&3%8<P&2&<&2\'<>("0)P"0*PP7+0,PP&&LM2-!0-P&2.P&\'J2/!00P%21!02PP&!J21!01P"23!035'];
186
195
  class HttpRequest extends http_1.IncomingMessage {
187
196
  constructor() {
188
197
  super(...arguments);
@@ -227,11 +236,35 @@ class HttpRequest extends http_1.IncomingMessage {
227
236
  }
228
237
  }
229
238
  exports.HttpRequest = HttpRequest;
230
- HttpRequest.__type = ['store', function () { return {}; }, () => router_1.UploadedFile, 'uploadedFiles', function () { return {}; }, 'body', 'path', () => RequestBuilder, 'GET', () => RequestBuilder, 'POST', () => RequestBuilder, 'OPTIONS', () => RequestBuilder, 'TRACE', () => RequestBuilder, 'HEAD', () => RequestBuilder, 'PATCH', () => RequestBuilder, 'PUT', () => RequestBuilder, 'DELETE', 'getUrl', 'getMethod', 'getRemoteAddress', 'P&"LM3!>"P&P7#LM3$>%P&"LM3&8P&2\'P7(0)P&2\'P7*0+P&2\'P7,0-P&2\'P7.0/P&2\'P7001P&2\'P7203P&2\'P7405P&2\'P7607P&08P&09P&0:5'];
239
+ HttpRequest.__type = [() => http_1.IncomingMessage, 'store', function () { return {}; }, () => router_1.UploadedFile, 'uploadedFiles', function () { return {}; }, 'body', 'path', () => RequestBuilder, 'GET', () => RequestBuilder, 'POST', () => RequestBuilder, 'OPTIONS', () => RequestBuilder, 'TRACE', () => RequestBuilder, 'HEAD', () => RequestBuilder, 'PATCH', () => RequestBuilder, 'PUT', () => RequestBuilder, 'DELETE', 'getUrl', 'getMethod', 'getRemoteAddress', 'P7!P&"LM3">#P&P7$LM3%>&P&"LM3\'8P&2(P7)0*sP&2(P7+0,sP&2(P7-0.sP&2(P7/00sP&2(P7102sP&2(P7304sP&2(P7506sP&2(P7708sP&09P&0:P&0;5'];
231
240
  class MemoryHttpResponse extends HttpResponse {
232
241
  constructor() {
233
242
  super(...arguments);
234
243
  this.body = Buffer.alloc(0);
244
+ this.headers = Object.create(null);
245
+ }
246
+ setHeader(name, value) {
247
+ this.headers[name] = value;
248
+ super.setHeader(name, value);
249
+ return this;
250
+ }
251
+ removeHeader(name) {
252
+ delete this.headers[name];
253
+ super.removeHeader(name);
254
+ }
255
+ getHeader(name) {
256
+ return this.headers[name];
257
+ }
258
+ getHeaders() {
259
+ return this.headers;
260
+ }
261
+ writeHead(statusCode, headersOrReasonPhrase, headers) {
262
+ headers = typeof headersOrReasonPhrase === 'string' ? headers : headersOrReasonPhrase;
263
+ if (headers && !(0, core_1.isArray)(headers))
264
+ this.headers = headers;
265
+ if (typeof headersOrReasonPhrase === 'string')
266
+ return super.writeHead(statusCode, headersOrReasonPhrase, headers);
267
+ return super.writeHead(statusCode, headers);
235
268
  }
236
269
  get json() {
237
270
  const json = this.bodyString;
@@ -277,9 +310,8 @@ class MemoryHttpResponse extends HttpResponse {
277
310
  this.body = Buffer.concat([this.body, chunk]);
278
311
  }
279
312
  return super.end(chunk, encoding, callback);
280
- // if (callback) callback();
281
313
  }
282
314
  }
283
315
  exports.MemoryHttpResponse = MemoryHttpResponse;
284
- MemoryHttpResponse.__type = [() => Buffer, 'body', function () { return Buffer.alloc(0); }, 'chunk', 'encoding', 'callback', 'write', 'end', 'P7!3">#!!P"2$"2%"2&8"0\'P"2$"2%8"2&8"0(5'];
316
+ 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'];
285
317
  //# sourceMappingURL=model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/model.ts"],"names":[],"mappings":"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"}
@@ -16,9 +16,10 @@ const decorator_1 = require("./decorator");
16
16
  class HttpModule extends (0, app_1.createModule)({
17
17
  config: module_config_1.HttpConfig,
18
18
  providers: [
19
- router_1.Router,
19
+ router_1.HttpRouter,
20
20
  kernel_1.HttpKernel,
21
21
  http_1.HttpResultFormatter,
22
+ router_1.HttpRouterRegistry,
22
23
  filter_1.HttpRouterFilterResolver,
23
24
  { provide: model_1.HttpResponse, scope: 'http' },
24
25
  { provide: model_1.HttpRequest, scope: 'http' },
@@ -31,7 +32,8 @@ class HttpModule extends (0, app_1.createModule)({
31
32
  http_1.httpWorkflow
32
33
  ],
33
34
  exports: [
34
- router_1.Router,
35
+ router_1.HttpRouter,
36
+ router_1.HttpRouterRegistry,
35
37
  kernel_1.HttpKernel,
36
38
  http_1.HttpResultFormatter,
37
39
  filter_1.HttpRouterFilterResolver,
@@ -58,5 +60,5 @@ class HttpModule extends (0, app_1.createModule)({
58
60
  }
59
61
  }
60
62
  exports.HttpModule = HttpModule;
61
- HttpModule.__type = ['process', () => app_1.AppModule, 'module', () => __ΩClassType, 'controller', 'processController', 'P"0!PP"7"2#n$2%"0&5'];
63
+ HttpModule.__type = [() => (0, app_1.createModule)({ config: module_config_1.HttpConfig, providers: [router_1.HttpRouter, kernel_1.HttpKernel, http_1.HttpResultFormatter, router_1.HttpRouterRegistry, filter_1.HttpRouterFilterResolver, { provide: model_1.HttpResponse, scope: "http" }, { provide: model_1.HttpRequest, scope: "http" }, { provide: logger_1.Logger, useValue: new logger_1.Logger([new logger_1.ConsoleTransport()]) }], listeners: [http_1.HttpListener], workflows: [http_1.httpWorkflow], exports: [router_1.HttpRouter, router_1.HttpRouterRegistry, kernel_1.HttpKernel, http_1.HttpResultFormatter, filter_1.HttpRouterFilterResolver, model_1.HttpResponse, model_1.HttpRequest, controllers_1.HttpControllers, logger_1.Logger] }), 'process', () => app_1.AppModule, 'module', () => __ΩClassType, 'controller', 'processController', 'P7!P"0"PP"7#2$n%2&"0\'5'];
62
64
  //# sourceMappingURL=module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../src/module.ts"],"names":[],"mappings":";;;iCAU0B,eAAe;AAVzC,iCAAyE;AACzE,mDAA6C;AAC7C,sCAAuD;AACvD,qCAAkC;AAClC,qCAAsC;AACtC,qCAAoD;AACpD,+CAAgD;AAChD,4CAA2D;AAC3D,mCAAoD;AACpD,yBAAuB;AAEvB,2CAAwC;AAExC,MAAa,UAAW,SAAQ,IAAA,kBAAY,EAAC;IACzC,MAAM,EAAE,0BAAU;IAClB,SAAS,EAAE;QACP,eAAM;QACN,mBAAU;QACV,0BAAmB;QACnB,iCAAwB;QACxB,EAAE,OAAO,EAAE,oBAAY,EAAE,KAAK,EAAE,MAAM,EAAE;QACxC,EAAE,OAAO,EAAE,mBAAW,EAAE,KAAK,EAAE,MAAM,EAAE;QACvC,EAAE,OAAO,EAAE,eAAM,EAAE,QAAQ,EAAE,IAAI,eAAM,CAAC,CAAC,IAAI,yBAAgB,EAAE,CAAC,CAAC,EAAE;KACtE;IACD,SAAS,EAAE;QACP,mBAAY;KACf;IACD,SAAS,EAAE;QACP,mBAAY;KACf;IACD,OAAO,EAAE;QACL,eAAM;QACN,mBAAU;QACV,0BAAmB;QACnB,iCAAwB;QACxB,oBAAY;QACZ,mBAAW;QACX,6BAAe;QACf,eAAM;KACT;CACJ,CAAC;IA3BF;;QA4Bc,oBAAe,GAAG,IAAI,6BAAe,CAAC;KAanD;IAXG,OAAO;QACH,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,6BAAe,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,iBAAiB,CAAC,MAAsB,EAAE,UAAqB;QAC3D,MAAM,UAAU,GAAG,qBAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU;YAAE,OAAO;QAExB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,MAAM,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/F,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;;AAxCL,gCAyCC"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../src/module.ts"],"names":[],"mappings":";;;iCAU0B,eAAe;AAVzC,iCAAyE;AACzE,mDAA6C;AAC7C,sCAAuD;AACvD,qCAA0D;AAC1D,qCAAsC;AACtC,qCAAoD;AACpD,+CAAgD;AAChD,4CAA2D;AAC3D,mCAAoD;AACpD,yBAAuB;AAEvB,2CAAwC;AAExC,MAAa,UAAW,SAAQ,IAAA,kBAAY,EAAC;IACzC,MAAM,EAAE,0BAAU;IAClB,SAAS,EAAE;QACP,mBAAU;QACV,mBAAU;QACV,0BAAmB;QACnB,2BAAkB;QAClB,iCAAwB;QACxB,EAAE,OAAO,EAAE,oBAAY,EAAE,KAAK,EAAE,MAAM,EAAE;QACxC,EAAE,OAAO,EAAE,mBAAW,EAAE,KAAK,EAAE,MAAM,EAAE;QACvC,EAAE,OAAO,EAAE,eAAM,EAAE,QAAQ,EAAE,IAAI,eAAM,CAAC,CAAC,IAAI,yBAAgB,EAAE,CAAC,CAAC,EAAE;KACtE;IACD,SAAS,EAAE;QACP,mBAAY;KACf;IACD,SAAS,EAAE;QACP,mBAAY;KACf;IACD,OAAO,EAAE;QACL,mBAAU;QACV,2BAAkB;QAClB,mBAAU;QACV,0BAAmB;QACnB,iCAAwB;QACxB,oBAAY;QACZ,mBAAW;QACX,6BAAe;QACf,eAAM;KACT;CACJ,CAAC;IA7BF;;QA8Bc,oBAAe,GAAG,IAAI,6BAAe,CAAC;KAanD;IAXG,OAAO;QACH,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,6BAAe,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,iBAAiB,CAAC,MAAsB,EAAE,UAAqB;QAC3D,MAAM,UAAU,GAAG,qBAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU;YAAE,OAAO;QAExB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,MAAM,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/F,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;;AA1CL,gCA2CC"}
@@ -1,5 +1,6 @@
1
1
  import { ClassType, CompilerContext } from '@deepkit/core';
2
- import { ReflectionParameter, SerializationOptions, Serializer, Type } from '@deepkit/type';
2
+ import { ReflectionFunction, ReflectionParameter, SerializationOptions, Serializer, Type } from '@deepkit/type';
3
+ import { HttpDecorator } from './decorator';
3
4
  import { HttpRequest, HttpRequestQuery, HttpRequestResolvedParameters } from './model';
4
5
  import { InjectorContext, InjectorModule, TagRegistry } from '@deepkit/injector';
5
6
  import { LoggerInterface } from '@deepkit/logger';
@@ -24,7 +25,7 @@ export declare class UploadedFile {
24
25
  */
25
26
  size: number;
26
27
  /**
27
- * The path this file is being written to.
28
+ * The local path this file is being written to. Will be deleted when request is handled.
28
29
  */
29
30
  path: string;
30
31
  /**
@@ -41,7 +42,13 @@ export declare class UploadedFile {
41
42
  */
42
43
  lastModifiedDate: Date | null;
43
44
  }
44
- export interface RouteControllerAction {
45
+ export interface RouteFunctionControllerAction {
46
+ type: 'function';
47
+ module?: InjectorModule<any>;
48
+ fn: (...args: any[]) => any;
49
+ }
50
+ export interface RouteClassControllerAction {
51
+ type: 'controller';
45
52
  module?: InjectorModule<any>;
46
53
  controller: ClassType;
47
54
  methodName: string;
@@ -50,7 +57,7 @@ export declare class RouteConfig {
50
57
  readonly name: string;
51
58
  readonly httpMethods: string[];
52
59
  readonly path: string;
53
- readonly action: RouteControllerAction;
60
+ readonly action: RouteClassControllerAction | RouteFunctionControllerAction;
54
61
  internal: boolean;
55
62
  baseUrl: string;
56
63
  responses: {
@@ -71,14 +78,15 @@ export declare class RouteConfig {
71
78
  resolverForToken: Map<any, ClassType>;
72
79
  middlewares: {
73
80
  config: HttpMiddlewareConfig;
74
- module: InjectorModule<any>;
81
+ module?: InjectorModule<any>;
75
82
  }[];
76
83
  resolverForParameterName: Map<string, ClassType>;
77
84
  /**
78
85
  * An arbitrary data container the user can use to store app specific settings/values.
79
86
  */
80
87
  data: Map<any, any>;
81
- constructor(name: string, httpMethods: string[], path: string, action: RouteControllerAction, internal?: boolean);
88
+ constructor(name: string, httpMethods: string[], path: string, action: RouteClassControllerAction | RouteFunctionControllerAction, internal?: boolean);
89
+ getReflectionFunction(): ReflectionFunction;
82
90
  getSchemaForResponse(statusCode: number): Type | undefined;
83
91
  getFullPath(): string;
84
92
  }
@@ -128,21 +136,84 @@ export interface RouteParameterResolverContext {
128
136
  query: HttpRequestQuery;
129
137
  parameters: HttpRequestResolvedParameters;
130
138
  }
131
- export declare class Router {
139
+ export interface HttpRouterFunctionOptions {
140
+ path: string;
141
+ name?: string;
142
+ methods?: string[];
143
+ description?: string;
144
+ category?: string;
145
+ groups?: string[];
146
+ /**
147
+ * An arbitrary data container the user can use to store app specific settings/values.
148
+ */
149
+ data?: Record<any, any>;
150
+ baseUrl?: string;
151
+ middlewares?: (() => HttpMiddlewareConfig)[];
152
+ serializer?: Serializer;
153
+ serializationOptions?: SerializationOptions;
154
+ resolverForToken?: Map<any, ClassType>;
155
+ resolverForParameterName?: Map<string, ClassType>;
156
+ responses?: {
157
+ statusCode: number;
158
+ description: string;
159
+ type?: Type;
160
+ }[];
161
+ }
162
+ export declare abstract class HttpRouterRegistryFunctionRegistrar {
163
+ protected defaultOptions: Partial<HttpRouterFunctionOptions>;
164
+ abstract addRoute(routeConfig: RouteConfig): void;
165
+ /**
166
+ * Returns a new registrar object with default options that apply to each registered route through this registrar.
167
+ *
168
+ * ```typescript
169
+ * const registry: HttpRouterRegistry = ...;
170
+ *
171
+ * const secretRegistry = registry.forOptions({groups: ['secret']});
172
+ *
173
+ * secretRegistry.get('/admin/groups', () => {
174
+ * });
175
+ *
176
+ * secretRegistry.get('/admin/users', () => {
177
+ * });
178
+ * ```
179
+ */
180
+ forOptions(options: Partial<HttpRouterFunctionOptions>): HttpRouterRegistryFunctionRegistrar;
181
+ any(pathOrOptions: string | HttpRouterFunctionOptions, callback: (...args: any[]) => any): void;
182
+ add(decorator: HttpDecorator, callback: (...args: any[]) => any): void;
183
+ get(pathOrOptions: string | HttpRouterFunctionOptions, callback: (...args: any[]) => any): void;
184
+ post(pathOrOptions: string | HttpRouterFunctionOptions, callback: (...args: any[]) => any): void;
185
+ put(pathOrOptions: string | HttpRouterFunctionOptions, callback: (...args: any[]) => any): void;
186
+ patch(pathOrOptions: string | HttpRouterFunctionOptions, callback: (...args: any[]) => any): void;
187
+ delete(pathOrOptions: string | HttpRouterFunctionOptions, callback: (...args: any[]) => any): void;
188
+ options(pathOrOptions: string | HttpRouterFunctionOptions, callback: (...args: any[]) => any): void;
189
+ trace(pathOrOptions: string | HttpRouterFunctionOptions, callback: (...args: any[]) => any): void;
190
+ head(pathOrOptions: string | HttpRouterFunctionOptions, callback: (...args: any[]) => any): void;
191
+ private register;
192
+ }
193
+ export declare class HttpRouterRegistry extends HttpRouterRegistryFunctionRegistrar {
194
+ protected routes: RouteConfig[];
195
+ private buildId;
196
+ getBuildId(): number;
197
+ getRoutes(): RouteConfig[];
198
+ addRouteForController(controller: ClassType, module: InjectorModule<any>): void;
199
+ addRoute(routeConfig: RouteConfig): void;
200
+ }
201
+ export declare class HttpRouter {
132
202
  private logger;
133
203
  private middlewareRegistry;
204
+ private registry;
134
205
  protected fn?: (request: HttpRequest) => ResolvedController | undefined;
206
+ protected buildId: number;
135
207
  protected resolveFn?: (name: string, parameters: {
136
208
  [name: string]: any;
137
209
  }) => string;
138
- protected routes: RouteConfig[];
139
210
  private parseBody;
140
- constructor(controllers: HttpControllers, logger: LoggerInterface, tagRegistry: TagRegistry, middlewareRegistry?: MiddlewareRegistry);
211
+ constructor(controllers: HttpControllers, logger: LoggerInterface, tagRegistry: TagRegistry, middlewareRegistry?: MiddlewareRegistry, registry?: HttpRouterRegistry);
141
212
  getRoutes(): RouteConfig[];
142
213
  static forControllers(controllers: (ClassType | {
143
214
  module: InjectorModule<any>;
144
215
  controller: ClassType;
145
- })[], tagRegistry?: TagRegistry, middlewareRegistry?: MiddlewareRegistry, module?: InjectorModule<any>): Router;
216
+ })[], tagRegistry?: TagRegistry, middlewareRegistry?: MiddlewareRegistry, module?: InjectorModule<any>): HttpRouter;
146
217
  protected getRouteCode(compiler: CompilerContext, routeConfig: RouteConfig): string;
147
218
  protected getRouteUrlResolveCode(compiler: CompilerContext, routeConfig: RouteConfig): string;
148
219
  addRoute(routeConfig: RouteConfig): void;
@@ -157,6 +228,8 @@ export declare class Router {
157
228
  }
158
229
  export {};
159
230
  export declare type __ΩRouteParameterResolverForInjector = any[];
160
- export declare type __ΩRouteControllerAction = any[];
231
+ export declare type __ΩRouteFunctionControllerAction = any[];
232
+ export declare type __ΩRouteClassControllerAction = any[];
161
233
  export declare type __ΩRouteParameterResolver = any[];
162
234
  export declare type __ΩRouteParameterResolverContext = any[];
235
+ export declare type __ΩHttpRouterFunctionOptions = any[];