@deepkit/http 1.0.1-alpha.70 → 1.0.1-alpha.73

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 +124 -38
  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 +58 -26
  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 +280 -94
  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 +111 -38
  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 +47 -15
  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 +278 -94
  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 +286 -73
  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,3 +1,9 @@
1
+ function __assignType(fn, args) {
2
+ fn.__type = args;
3
+ return fn;
4
+ }
5
+ 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'];
6
+ 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\'2324!/526"278!18PPe$!22\'2324#/526"278)18PPe$!22\'2324#/526"278)19PPe$!22\'2324$/52:"278$1;PPe$!22\'2324"/52:"278"F1<PPe$!22\'2324!/526"278"F1=PPe$!22\'2324#/526"278e#!F1=PPe$!2>e$!2?\'2@24e$!/52:e#!1APPe$!2>e$!2?\'2@24e$!/52:e#!2Be#!1APP"2>e$!2?\'2@24"/52:"2B"1APPe$!2>e$!2?\'2@24e$!/52:e#!1CPPe$!2>e$!2?\'2@24e$!/52:e#!2Be#!1CPP"2>e$!2?\'2@24"/52:"2B"1C\'e"!LM'];
1
7
  /*
2
8
  * Deepkit Framework
3
9
  * Copyright (C) 2021 Deepkit UG, Marc J. Schmidt
@@ -11,7 +17,8 @@ import { IncomingMessage, ServerResponse } from 'http';
11
17
  import { UploadedFile } from './router';
12
18
  import * as querystring from 'querystring';
13
19
  import { Writable } from 'stream';
14
- import { metaAnnotation, ValidationErrorItem } from '@deepkit/type';
20
+ import { metaAnnotation, ReflectionKind, ValidationErrorItem } from '@deepkit/type';
21
+ import { isArray } from '@deepkit/core';
15
22
  export class HttpResponse extends ServerResponse {
16
23
  status(code) {
17
24
  this.writeHead(code);
@@ -32,14 +39,14 @@ export class BodyValidationError {
32
39
  }
33
40
  getErrors(prefix) {
34
41
  if (prefix)
35
- return this.errors.filter(Object.assign(v => v.path.startsWith(prefix), { __type: ['v', '', 'P"2!"/"'] }));
42
+ return this.errors.filter(__assignType(v => v.path.startsWith(prefix), ['v', '', 'P"2!"/"']));
36
43
  return this.errors;
37
44
  }
38
45
  getErrorsForPath(path) {
39
- return this.errors.filter(Object.assign(v => v.path === path, { __type: ['v', '', 'P"2!"/"'] }));
46
+ return this.errors.filter(__assignType(v => v.path === path, ['v', '', 'P"2!"/"']));
40
47
  }
41
48
  getErrorMessageForPath(path) {
42
- return this.getErrorsForPath(path).map(Object.assign(v => v.message, { __type: ['v', '', 'P"2!"/"'] })).join(', ');
49
+ return this.getErrorsForPath(path).map(__assignType(v => v.message, ['v', '', 'P"2!"/"'])).join(', ');
43
50
  }
44
51
  }
45
52
  BodyValidationError.__type = [() => ValidationErrorItem, 'errors', () => [], 'constructor', 'prefix', 'hasErrors', () => ValidationErrorItem, 'getErrors', 'path', () => ValidationErrorItem, 'getErrorsForPath', 'getErrorMessageForPath', 'PP7!F2":>#"0$P&2%8)0&P&2%8P7\'F0(P&2)P7*F0+P&2)&0,5'];
@@ -67,11 +74,13 @@ export function getRegExp(type) {
67
74
  const options = metaAnnotation.getForName(type, 'httpRegExp');
68
75
  if (!options || !options[0])
69
76
  return;
70
- if (options[0].kind !== 13 /* literal */ || 'string' !== typeof options[0].literal)
71
- return;
72
- return options[0].literal;
77
+ if (options[0].kind === ReflectionKind.literal && 'string' === typeof options[0].literal)
78
+ return options[0].literal;
79
+ if (options[0].kind === ReflectionKind.literal && options[0].literal instanceof RegExp)
80
+ return options[0].literal;
81
+ return;
73
82
  }
74
- getRegExp.__type = ['type', 'getRegExp', 'P"2!P&-J/"'];
83
+ getRegExp.__type = ['type', 'getRegExp', 'P"2!P&A-J/"'];
75
84
  export class RequestBuilder {
76
85
  constructor(path, method = 'GET') {
77
86
  this.path = path;
@@ -92,12 +101,12 @@ export class RequestBuilder {
92
101
  const url = this.getUrl();
93
102
  const bodyContent = this.contentBuffer;
94
103
  const writable = new Writable({
95
- write: Object.assign(function write(chunk, encoding, callback) {
104
+ write: __assignType(function write(chunk, encoding, callback) {
96
105
  -callback();
97
- }, { __type: ['chunk', 'encoding', 'callback', 'write', 'P"2!"2""2#"/$'] }),
98
- writev: Object.assign(function writev(chunks, callback) {
106
+ }, ['chunk', 'encoding', 'callback', 'write', 'P"2!"2""2#"/$']),
107
+ writev: __assignType(function writev(chunks, callback) {
99
108
  callback();
100
- }, { __type: ['chunks', 'callback', 'writev', 'P"2!"2""/#'] })
109
+ }, ['chunks', 'callback', 'writev', 'P"2!"2""/#'])
101
110
  });
102
111
  const request = new (_a = class extends HttpRequest {
103
112
  constructor() {
@@ -151,7 +160,7 @@ export class RequestBuilder {
151
160
  return this;
152
161
  }
153
162
  }
154
- 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'];
163
+ 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'];
155
164
  export class HttpRequest extends IncomingMessage {
156
165
  constructor() {
157
166
  super(...arguments);
@@ -200,6 +209,30 @@ export class MemoryHttpResponse extends HttpResponse {
200
209
  constructor() {
201
210
  super(...arguments);
202
211
  this.body = Buffer.alloc(0);
212
+ this.headers = Object.create(null);
213
+ }
214
+ setHeader(name, value) {
215
+ this.headers[name] = value;
216
+ super.setHeader(name, value);
217
+ return this;
218
+ }
219
+ removeHeader(name) {
220
+ delete this.headers[name];
221
+ super.removeHeader(name);
222
+ }
223
+ getHeader(name) {
224
+ return this.headers[name];
225
+ }
226
+ getHeaders() {
227
+ return this.headers;
228
+ }
229
+ writeHead(statusCode, headersOrReasonPhrase, headers) {
230
+ headers = typeof headersOrReasonPhrase === 'string' ? headers : headersOrReasonPhrase;
231
+ if (headers && !isArray(headers))
232
+ this.headers = headers;
233
+ if (typeof headersOrReasonPhrase === 'string')
234
+ return super.writeHead(statusCode, headersOrReasonPhrase, headers);
235
+ return super.writeHead(statusCode, headers);
203
236
  }
204
237
  get json() {
205
238
  const json = this.bodyString;
@@ -245,8 +278,7 @@ export class MemoryHttpResponse extends HttpResponse {
245
278
  this.body = Buffer.concat([this.body, chunk]);
246
279
  }
247
280
  return super.end(chunk, encoding, callback);
248
- // if (callback) callback();
249
281
  }
250
282
  }
251
- 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'];
283
+ MemoryHttpResponse.__type = ['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', '!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"2/"20"218"02P"2/"208"218"035'];
252
284
  //# 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":";;;;;;AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,eAAe,EAA2C,cAAc,EAAE,MAAM,MAAM,CAAC;AAChG,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,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,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,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;;;;;;;AAML,MAAM,OAAO,mBAAmB;IAC5B,YACoB,SAAgC,EAAE;QAAlC,WAAM,GAAN,MAAM,CAA4B;IAEtD,CAAC;IAED,SAAS,CAAC,MAAe;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED,SAAS,CAAC,MAAe;QACrB,IAAI,MAAM;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,cAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,wBAAC,CAAC;QAEtE,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,gBAAgB,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,cAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,wBAAC,CAAC;IACpD,CAAC;IAED,sBAAsB,CAAC,IAAY;QAC/B,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,cAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,wBAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;;;AAGL,MAAM,OAAO,aAAa;IACtB,YAAmB,KAA0B,EAAS,KAAS;QAA5C,UAAK,GAAL,KAAK,CAAqB;QAAS,UAAK,GAAL,KAAK,CAAI;IAC/D,CAAC;IAED,KAAK;QACD,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC;IACpC,CAAC;;;;;;;;;;;;;AAwBL,MAAM,UAAU,SAAS,CAAC,IAAU;IAChC,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC9D,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO;IACpC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,OAAO,IAAI,QAAQ,KAAK,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACpH,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,YAAY,MAAM;QAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAClH,OAAO;AACX,CAAC;;AAED,MAAM,OAAO,cAAc;IAKvB,YACc,IAAY,EACZ,SAAiB,KAAK;QADtB,SAAI,GAAJ,IAAI,CAAQ;QACZ,WAAM,GAAN,MAAM,CAAgB;QAN1B,kBAAa,GAAW,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACxC,aAAQ,GAA+B,EAAE,CAAC;IAOpD,CAAC;IAED,MAAM;QACF,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,OAAO,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;SAC3C;QACD,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,KAAK;;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC;QAEvC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC;YAC1B,KAAK,wBAAL,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ;gBAC3B,CACI,QAAQ,EAAE,CAAC;YACnB,CAAC;YACD,MAAM,wBAAN,MAAM,CAAC,MAAM,EAAE,QAAQ;gBACnB,QAAQ,EAAE,CAAC;YACf,CAAC;SACJ,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,MAAC,KAAM,SAAQ,WAAW;gBAAzB;;oBACjB,QAAG,GAAG,GAAG,CAAC;oBACV,WAAM,GAAG,MAAM,CAAC;oBAChB,aAAQ,GAAG,CAAC,CAAC;oBAEb,YAAO,GAAG,OAAO,CAAC;oBAElB,SAAI,GAAG,KAAK,CAAC;iBAWhB;gBATG,KAAK,CAAC,IAAY;oBACd,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;wBACZ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;wBACvB,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE;4BAClB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACrB,CAAC,CAAC,CAAC;wBACH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;qBACpB;gBACL,CAAC;aACJ;;eAAC,CAAC,QAAe,CAAC,CAAC;QACpB,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,OAAO,CAAC,OAAmC;QACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,IAAY,EAAE,KAAsB;QACvC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,IAAY;QACb,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QAC/D,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,iCAAiC,CAAC;QAClE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,IAAqB;QACtB,IAAI,QAAQ,KAAK,OAAO,IAAI,EAAE;YAC1B,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;SAClD;aAAM;YACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC7B;QACD,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,KAAU;QACZ,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IAChB,CAAC;;+DApFiC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,sCACA,EAAE;AAsFvD,MAAM,OAAO,WAAY,SAAQ,eAAe;IAAhD;;QACI;;WAEG;QACI,UAAK,GAA4B,EAAE,CAAC;QAEpC,kBAAa,GAAqC,EAAE,CAAC;KAmD/D;IA3CG,MAAM,CAAC,GAAG,CAAC,IAAY;QACnB,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,IAAY;QACpB,OAAO,IAAI,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,IAAY;QACvB,OAAO,IAAI,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAY;QACrB,OAAO,IAAI,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,IAAY;QACpB,OAAO,IAAI,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAY;QACrB,OAAO,IAAI,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,IAAY;QACnB,OAAO,IAAI,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,IAAY;QACtB,OAAO,IAAI,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM;QACF,OAAO,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;IAC3B,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;IAChC,CAAC;IAED,gBAAgB;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC;IAC3C,CAAC;;oDApDuC,EAAE,+DAEe,EAAE;AAqD/D,MAAM,OAAO,kBAAmB,SAAQ,YAAY;IAApD;;QACW,SAAI,GAAW,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/B,YAAO,GAA6D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KAiFlG;IA/EG,SAAS,CAAC,IAAY,EAAE,KAA8C;QAClE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAY,CAAC;QAClC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,YAAY,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1B,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,SAAS,CAAC,IAAY;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,SAAS,CAAC,UAAkB,EAAE,qBAA2E,EAAE,OAAoD;QAC3J,OAAO,GAAG,OAAO,qBAAqB,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC;QACtF,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEzD,IAAI,OAAO,qBAAqB,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,qBAAqB,EAAE,OAAO,CAAC,CAAC;QAClH,OAAO,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,IAAI;QACJ,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;QAC7B,IAAI;YACA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC3B;QAAC,OAAO,KAAU,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,CAAC,OAAO,WAAW,IAAI,EAAE,CAAC,CAAC;SAC5E;IACL,CAAC;IAED,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CACD,KAAU,EACV,QAAa,EACb,QAAc;QAEd,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YAChC,QAAQ,GAAG,QAAQ,CAAC;YACpB,QAAQ,GAAG,IAAI,CAAC;SACnB;QAED,IAAI,KAAK,EAAE;YACP,IAAI,QAAQ,KAAK,OAAO,KAAK,EAAE;gBAC3B,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,IAAI,MAAM,CAAC,CAAC;aAClD;YACD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;SACjD;QAED,IAAI,QAAQ;YAAE,QAAQ,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,KAAU,EAAE,QAAc,EAAE,QAAc;QAC1C,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;YAC7B,QAAQ,GAAG,KAAK,CAAC;YACjB,KAAK,GAAG,IAAI,CAAC;YACb,QAAQ,GAAG,IAAI,CAAC;SACnB;aAAM,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YACvC,QAAQ,GAAG,QAAQ,CAAC;YACpB,QAAQ,GAAG,IAAI,CAAC;SACnB;QAED,IAAI,KAAK,EAAE;YACP,IAAI,QAAQ,KAAK,OAAO,KAAK,EAAE;gBAC3B,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,IAAI,MAAM,CAAC,CAAC;aAClD;YACD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;SACjD;QACD,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;;0DAjFqB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,qCACsC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC"}
@@ -2,7 +2,7 @@ import { __ΩClassType as __ΩClassType } from '@deepkit/core';
2
2
  import { HttpListener, HttpResultFormatter, httpWorkflow } from './http';
3
3
  import { HttpConfig } from './module.config';
4
4
  import { AppModule, createModule } from '@deepkit/app';
5
- import { Router } from './router';
5
+ import { HttpRouter, HttpRouterRegistry } from './router';
6
6
  import { HttpKernel } from './kernel';
7
7
  import { HttpRouterFilterResolver } from './filter';
8
8
  import { HttpControllers } from './controllers';
@@ -13,9 +13,10 @@ import { httpClass } from './decorator';
13
13
  export class HttpModule extends createModule({
14
14
  config: HttpConfig,
15
15
  providers: [
16
- Router,
16
+ HttpRouter,
17
17
  HttpKernel,
18
18
  HttpResultFormatter,
19
+ HttpRouterRegistry,
19
20
  HttpRouterFilterResolver,
20
21
  { provide: HttpResponse, scope: 'http' },
21
22
  { provide: HttpRequest, scope: 'http' },
@@ -28,7 +29,8 @@ export class HttpModule extends createModule({
28
29
  httpWorkflow
29
30
  ],
30
31
  exports: [
31
- Router,
32
+ HttpRouter,
33
+ HttpRouterRegistry,
32
34
  HttpKernel,
33
35
  HttpResultFormatter,
34
36
  HttpRouterFilterResolver,
@@ -54,5 +56,5 @@ export class HttpModule extends createModule({
54
56
  this.httpControllers.add(controller, module);
55
57
  }
56
58
  }
57
- HttpModule.__type = ['process', () => AppModule, 'module', () => __ΩClassType, 'controller', 'processController', 'P"0!PP"7"2#n$2%"0&5'];
59
+ 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#2$n%2&"0\'5'];
58
60
  //# sourceMappingURL=module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../src/module.ts"],"names":[],"mappings":"6CAU0B,eAAe;AAVzC,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,eAAe,CAAC;AAEvB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,OAAO,UAAW,SAAQ,YAAY,CAAC;IACzC,MAAM,EAAE,UAAU;IAClB,SAAS,EAAE;QACP,MAAM;QACN,UAAU;QACV,mBAAmB;QACnB,wBAAwB;QACxB,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE;QACxC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE;QACvC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,MAAM,CAAC,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC,EAAE;KACtE;IACD,SAAS,EAAE;QACP,YAAY;KACf;IACD,SAAS,EAAE;QACP,YAAY;KACf;IACD,OAAO,EAAE;QACL,MAAM;QACN,UAAU;QACV,mBAAmB;QACnB,wBAAwB;QACxB,YAAY;QACZ,WAAW;QACX,eAAe;QACf,MAAM;KACT;CACJ,CAAC;IA3BF;;QA4Bc,oBAAe,GAAG,IAAI,eAAe,CAAC;KAanD;IAXG,OAAO;QACH,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,iBAAiB,CAAC,MAAsB,EAAE,UAAqB;QAC3D,MAAM,UAAU,GAAG,SAAS,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"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../src/module.ts"],"names":[],"mappings":"6CAU0B,eAAe;AAVzC,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,eAAe,CAAC;AAEvB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,OAAO,UAAW,SAAQ,YAAY,CAAC;IACzC,MAAM,EAAE,UAAU;IAClB,SAAS,EAAE;QACP,UAAU;QACV,UAAU;QACV,mBAAmB;QACnB,kBAAkB;QAClB,wBAAwB;QACxB,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE;QACxC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE;QACvC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,MAAM,CAAC,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC,EAAE;KACtE;IACD,SAAS,EAAE;QACP,YAAY;KACf;IACD,SAAS,EAAE;QACP,YAAY;KACf;IACD,OAAO,EAAE;QACL,UAAU;QACV,kBAAkB;QAClB,UAAU;QACV,mBAAmB;QACnB,wBAAwB;QACxB,YAAY;QACZ,WAAW;QACX,eAAe;QACf,MAAM;KACT;CACJ,CAAC;IA7BF;;QA8Bc,oBAAe,GAAG,IAAI,eAAe,CAAC;KAanD;IAXG,OAAO;QACH,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,iBAAiB,CAAC,MAAsB,EAAE,UAAqB;QAC3D,MAAM,UAAU,GAAG,SAAS,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"}
@@ -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[];