@e22m4u/ts-rest-router 0.1.2 → 0.2.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 (145) hide show
  1. package/README.md +171 -74
  2. package/dist/cjs/index.cjs +352 -362
  3. package/dist/esm/controller-registry.js +37 -32
  4. package/dist/esm/debuggable-service.d.ts +10 -1
  5. package/dist/esm/debuggable-service.js +14 -3
  6. package/dist/esm/decorators/after-action/after-action-decorator.d.ts +9 -0
  7. package/dist/esm/decorators/{before/before-decorator.js → after-action/after-action-decorator.js} +7 -7
  8. package/dist/esm/decorators/{before/before-decorator.spec.js → after-action/after-action-decorator.spec.js} +19 -19
  9. package/dist/esm/decorators/{after/after-metadata.d.ts → after-action/after-action-metadata.d.ts} +4 -4
  10. package/dist/esm/decorators/after-action/after-action-metadata.js +5 -0
  11. package/dist/esm/decorators/{after/after-reflector.d.ts → after-action/after-action-reflector.d.ts} +5 -5
  12. package/dist/esm/decorators/{after/after-reflector.js → after-action/after-action-reflector.js} +6 -6
  13. package/dist/esm/decorators/{before/before-reflector.spec.js → after-action/after-action-reflector.spec.js} +23 -24
  14. package/dist/esm/decorators/after-action/index.d.ts +3 -0
  15. package/dist/esm/decorators/after-action/index.js +3 -0
  16. package/dist/esm/decorators/before-action/before-action-decorator.d.ts +9 -0
  17. package/dist/esm/decorators/{after/after-decorator.js → before-action/before-action-decorator.js} +7 -7
  18. package/dist/esm/decorators/{after/after-decorator.spec.js → before-action/before-action-decorator.spec.js} +19 -19
  19. package/dist/esm/decorators/{before/before-metadata.d.ts → before-action/before-action-metadata.d.ts} +4 -4
  20. package/dist/esm/decorators/before-action/before-action-metadata.js +5 -0
  21. package/dist/esm/decorators/{before/before-reflector.d.ts → before-action/before-action-reflector.d.ts} +5 -5
  22. package/dist/esm/decorators/{before/before-reflector.js → before-action/before-action-reflector.js} +6 -6
  23. package/dist/esm/decorators/{after/after-reflector.spec.js → before-action/before-action-reflector.spec.js} +23 -24
  24. package/dist/esm/decorators/before-action/index.d.ts +3 -0
  25. package/dist/esm/decorators/before-action/index.js +3 -0
  26. package/dist/esm/decorators/index.d.ts +4 -4
  27. package/dist/esm/decorators/index.js +4 -4
  28. package/dist/esm/decorators/request-context/request-context-decorator.d.ts +4 -4
  29. package/dist/esm/decorators/request-context/request-context-decorator.js +4 -4
  30. package/dist/esm/decorators/request-context/request-context-decorator.spec.js +6 -0
  31. package/dist/esm/decorators/request-context/request-context-reflector.spec.js +0 -1
  32. package/dist/esm/decorators/request-data/request-data-decorator.d.ts +10 -10
  33. package/dist/esm/decorators/request-data/request-data-decorator.js +10 -10
  34. package/dist/esm/decorators/request-data/request-data-decorator.spec.js +44 -32
  35. package/dist/esm/decorators/request-data/request-data-metadata.d.ts +1 -1
  36. package/dist/esm/decorators/request-data/request-data-reflector.spec.js +0 -1
  37. package/dist/esm/decorators/rest-action/index.d.ts +3 -0
  38. package/dist/esm/decorators/rest-action/index.js +3 -0
  39. package/dist/esm/decorators/rest-action/rest-action-decorator.d.ts +57 -0
  40. package/dist/esm/decorators/rest-action/rest-action-decorator.js +52 -0
  41. package/dist/esm/decorators/rest-action/rest-action-decorator.spec.js +401 -0
  42. package/dist/esm/decorators/{action/action-metadata.d.ts → rest-action/rest-action-metadata.d.ts} +6 -6
  43. package/dist/esm/decorators/rest-action/rest-action-metadata.js +5 -0
  44. package/dist/esm/decorators/rest-action/rest-action-reflector.d.ts +22 -0
  45. package/dist/esm/decorators/{action/action-reflector.js → rest-action/rest-action-reflector.js} +6 -6
  46. package/dist/esm/decorators/{action/action-reflector.spec.js → rest-action/rest-action-reflector.spec.js} +13 -14
  47. package/dist/esm/decorators/rest-controller/index.d.ts +3 -0
  48. package/dist/esm/decorators/rest-controller/index.js +3 -0
  49. package/dist/esm/decorators/rest-controller/rest-controller-decorator.d.ts +14 -0
  50. package/dist/esm/decorators/{controller/controller-decorator.js → rest-controller/rest-controller-decorator.js} +5 -5
  51. package/dist/esm/decorators/{controller/controller-decorator.spec.js → rest-controller/rest-controller-decorator.spec.js} +15 -15
  52. package/dist/esm/decorators/{controller/controller-metadata.d.ts → rest-controller/rest-controller-metadata.d.ts} +5 -5
  53. package/dist/esm/decorators/rest-controller/rest-controller-metadata.js +5 -0
  54. package/dist/esm/decorators/rest-controller/rest-controller-reflector.d.ts +20 -0
  55. package/dist/esm/decorators/rest-controller/rest-controller-reflector.js +24 -0
  56. package/dist/esm/decorators/{controller/controller-reflector.spec.js → rest-controller/rest-controller-reflector.spec.js} +12 -13
  57. package/dist/esm/errors/not-a-controller-error.js +1 -1
  58. package/dist/esm/types.d.ts +0 -10
  59. package/dist/esm/utils/index.d.ts +0 -1
  60. package/dist/esm/utils/index.js +0 -1
  61. package/eslint.config.js +1 -1
  62. package/package.json +15 -15
  63. package/src/controller-registry.spec.ts +192 -134
  64. package/src/controller-registry.ts +46 -39
  65. package/src/debuggable-service.spec.ts +0 -1
  66. package/src/debuggable-service.ts +17 -4
  67. package/src/decorators/{before/before-decorator.spec.ts → after-action/after-action-decorator.spec.ts} +19 -19
  68. package/src/decorators/{before/before-decorator.ts → after-action/after-action-decorator.ts} +9 -9
  69. package/src/decorators/{after/after-metadata.ts → after-action/after-action-metadata.ts} +5 -5
  70. package/src/decorators/{before/before-reflector.spec.ts → after-action/after-action-reflector.spec.ts} +33 -24
  71. package/src/decorators/{before/before-reflector.ts → after-action/after-action-reflector.ts} +13 -9
  72. package/src/decorators/after-action/index.ts +3 -0
  73. package/src/decorators/{after/after-decorator.spec.ts → before-action/before-action-decorator.spec.ts} +19 -19
  74. package/src/decorators/{after/after-decorator.ts → before-action/before-action-decorator.ts} +9 -9
  75. package/src/decorators/before-action/before-action-metadata.ts +17 -0
  76. package/src/decorators/{after/after-reflector.spec.ts → before-action/before-action-reflector.spec.ts} +40 -24
  77. package/src/decorators/{after/after-reflector.ts → before-action/before-action-reflector.ts} +18 -9
  78. package/src/decorators/before-action/index.ts +3 -0
  79. package/src/decorators/index.ts +4 -4
  80. package/src/decorators/request-context/request-context-decorator.spec.ts +7 -0
  81. package/src/decorators/request-context/request-context-decorator.ts +4 -4
  82. package/src/decorators/request-context/request-context-reflector.spec.ts +0 -1
  83. package/src/decorators/request-data/request-data-decorator.spec.ts +45 -32
  84. package/src/decorators/request-data/request-data-decorator.ts +10 -10
  85. package/src/decorators/request-data/request-data-metadata.ts +1 -1
  86. package/src/decorators/request-data/request-data-reflector.spec.ts +0 -1
  87. package/src/decorators/rest-action/index.ts +3 -0
  88. package/src/decorators/rest-action/rest-action-decorator.spec.ts +325 -0
  89. package/src/decorators/rest-action/rest-action-decorator.ts +166 -0
  90. package/src/decorators/{action/action-metadata.ts → rest-action/rest-action-metadata.ts} +7 -7
  91. package/src/decorators/{action/action-reflector.spec.ts → rest-action/rest-action-reflector.spec.ts} +13 -14
  92. package/src/decorators/rest-action/rest-action-reflector.ts +41 -0
  93. package/src/decorators/rest-controller/index.ts +3 -0
  94. package/src/decorators/{controller/controller-decorator.spec.ts → rest-controller/rest-controller-decorator.spec.ts} +16 -16
  95. package/src/decorators/{controller/controller-decorator.ts → rest-controller/rest-controller-decorator.ts} +14 -10
  96. package/src/decorators/{controller/controller-metadata.ts → rest-controller/rest-controller-metadata.ts} +6 -7
  97. package/src/decorators/{controller/controller-reflector.spec.ts → rest-controller/rest-controller-reflector.spec.ts} +21 -13
  98. package/src/decorators/rest-controller/rest-controller-reflector.ts +32 -0
  99. package/src/errors/not-a-controller-error.ts +4 -1
  100. package/src/types.ts +0 -10
  101. package/src/utils/index.ts +0 -1
  102. package/dist/esm/decorators/action/action-decorator.d.ts +0 -52
  103. package/dist/esm/decorators/action/action-decorator.js +0 -62
  104. package/dist/esm/decorators/action/action-decorator.spec.js +0 -59
  105. package/dist/esm/decorators/action/action-metadata.js +0 -5
  106. package/dist/esm/decorators/action/action-reflector.d.ts +0 -22
  107. package/dist/esm/decorators/action/index.d.ts +0 -3
  108. package/dist/esm/decorators/action/index.js +0 -3
  109. package/dist/esm/decorators/after/after-decorator.d.ts +0 -9
  110. package/dist/esm/decorators/after/after-metadata.js +0 -5
  111. package/dist/esm/decorators/after/index.d.ts +0 -3
  112. package/dist/esm/decorators/after/index.js +0 -3
  113. package/dist/esm/decorators/before/before-decorator.d.ts +0 -9
  114. package/dist/esm/decorators/before/before-metadata.js +0 -5
  115. package/dist/esm/decorators/before/index.d.ts +0 -3
  116. package/dist/esm/decorators/before/index.js +0 -3
  117. package/dist/esm/decorators/controller/controller-decorator.d.ts +0 -14
  118. package/dist/esm/decorators/controller/controller-metadata.js +0 -5
  119. package/dist/esm/decorators/controller/controller-reflector.d.ts +0 -20
  120. package/dist/esm/decorators/controller/controller-reflector.js +0 -24
  121. package/dist/esm/decorators/controller/index.d.ts +0 -3
  122. package/dist/esm/decorators/controller/index.js +0 -3
  123. package/dist/esm/utils/create-debugger.d.ts +0 -44
  124. package/dist/esm/utils/create-debugger.js +0 -81
  125. package/dist/esm/utils/create-debugger.spec.d.ts +0 -1
  126. package/dist/esm/utils/create-debugger.spec.js +0 -8
  127. package/src/decorators/action/action-decorator.spec.ts +0 -42
  128. package/src/decorators/action/action-decorator.ts +0 -98
  129. package/src/decorators/action/action-reflector.ts +0 -38
  130. package/src/decorators/action/index.ts +0 -3
  131. package/src/decorators/after/index.ts +0 -3
  132. package/src/decorators/before/before-metadata.ts +0 -17
  133. package/src/decorators/before/index.ts +0 -3
  134. package/src/decorators/controller/controller-reflector.ts +0 -28
  135. package/src/decorators/controller/index.ts +0 -3
  136. package/src/utils/create-debugger.spec.ts +0 -9
  137. package/src/utils/create-debugger.ts +0 -98
  138. /package/dist/esm/decorators/{action/action-decorator.spec.d.ts → after-action/after-action-decorator.spec.d.ts} +0 -0
  139. /package/dist/esm/decorators/{action/action-reflector.spec.d.ts → after-action/after-action-reflector.spec.d.ts} +0 -0
  140. /package/dist/esm/decorators/{after/after-decorator.spec.d.ts → before-action/before-action-decorator.spec.d.ts} +0 -0
  141. /package/dist/esm/decorators/{after/after-reflector.spec.d.ts → before-action/before-action-reflector.spec.d.ts} +0 -0
  142. /package/dist/esm/decorators/{before/before-decorator.spec.d.ts → rest-action/rest-action-decorator.spec.d.ts} +0 -0
  143. /package/dist/esm/decorators/{before/before-reflector.spec.d.ts → rest-action/rest-action-reflector.spec.d.ts} +0 -0
  144. /package/dist/esm/decorators/{controller/controller-decorator.spec.d.ts → rest-controller/rest-controller-decorator.spec.d.ts} +0 -0
  145. /package/dist/esm/decorators/{controller/controller-reflector.spec.d.ts → rest-controller/rest-controller-reflector.spec.d.ts} +0 -0
@@ -1,22 +1,22 @@
1
- import { AfterReflector } from './after-reflector.js';
2
1
  import { DecoratorTargetType } from '@e22m4u/ts-reflector';
3
2
  import { getDecoratorTargetType } from '@e22m4u/ts-reflector';
3
+ import { BeforeActionReflector } from './before-action-reflector.js';
4
4
  /**
5
- * After decorator.
5
+ * Before action decorator.
6
6
  *
7
- * @param options
7
+ * @param middleware
8
8
  */
9
- export function after(middleware) {
9
+ export function beforeAction(middleware) {
10
10
  return function (target, propertyKey, descriptor) {
11
11
  const decoratorType = getDecoratorTargetType(target, propertyKey, descriptor);
12
12
  if (decoratorType === DecoratorTargetType.CONSTRUCTOR) {
13
- AfterReflector.addMetadata({ middleware }, target);
13
+ BeforeActionReflector.addMetadata({ middleware }, target);
14
14
  }
15
15
  else if (decoratorType === DecoratorTargetType.INSTANCE_METHOD) {
16
- AfterReflector.addMetadata({ propertyKey, middleware }, target.constructor, propertyKey);
16
+ BeforeActionReflector.addMetadata({ propertyKey, middleware }, target.constructor, propertyKey);
17
17
  }
18
18
  else {
19
- throw new Error('@after decorator is only supported on a class or an instance method.');
19
+ throw new Error('@beforeAction decorator is only supported on a class or an instance method.');
20
20
  }
21
21
  };
22
22
  }
@@ -9,31 +9,31 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  };
10
10
  /* eslint mocha/no-sibling-hooks: 0 */
11
11
  import { expect } from 'chai';
12
- import { after } from './after-decorator.js';
13
- import { AfterReflector } from './after-reflector.js';
12
+ import { beforeAction } from './before-action-decorator.js';
13
+ import { BeforeActionReflector } from './before-action-reflector.js';
14
14
  const MIDDLEWARE_1 = () => undefined;
15
15
  const MIDDLEWARE_2 = () => undefined;
16
16
  const MIDDLEWARE_3 = () => undefined;
17
- describe('after', function () {
17
+ describe('beforeAction', function () {
18
18
  describe('class target', function () {
19
19
  it('sets given middleware to the target metadata', function () {
20
20
  let Target = class Target {
21
21
  method() { }
22
22
  };
23
23
  Target = __decorate([
24
- after(MIDDLEWARE_1)
24
+ beforeAction(MIDDLEWARE_1)
25
25
  ], Target);
26
- const res = AfterReflector.getMetadata(Target);
26
+ const res = BeforeActionReflector.getMetadata(Target);
27
27
  expect(res).to.be.eql([{ middleware: MIDDLEWARE_1 }]);
28
28
  });
29
- it('sets miltiple middlewares to the target metadata', function () {
29
+ it('sets multiple middlewares to the target metadata', function () {
30
30
  let Target = class Target {
31
31
  method() { }
32
32
  };
33
33
  Target = __decorate([
34
- after([MIDDLEWARE_1, MIDDLEWARE_2])
34
+ beforeAction([MIDDLEWARE_1, MIDDLEWARE_2])
35
35
  ], Target);
36
- const res = AfterReflector.getMetadata(Target);
36
+ const res = BeforeActionReflector.getMetadata(Target);
37
37
  expect(res).to.be.eql([{ middleware: [MIDDLEWARE_1, MIDDLEWARE_2] }]);
38
38
  });
39
39
  it('allows to use the decorator multiple times', function () {
@@ -41,10 +41,10 @@ describe('after', function () {
41
41
  method() { }
42
42
  };
43
43
  Target = __decorate([
44
- after(MIDDLEWARE_1),
45
- after([MIDDLEWARE_2, MIDDLEWARE_3])
44
+ beforeAction(MIDDLEWARE_1),
45
+ beforeAction([MIDDLEWARE_2, MIDDLEWARE_3])
46
46
  ], Target);
47
- const res = AfterReflector.getMetadata(Target);
47
+ const res = BeforeActionReflector.getMetadata(Target);
48
48
  expect(res).to.be.eql([
49
49
  { middleware: MIDDLEWARE_1 },
50
50
  { middleware: [MIDDLEWARE_2, MIDDLEWARE_3] },
@@ -57,12 +57,12 @@ describe('after', function () {
57
57
  method() { }
58
58
  }
59
59
  __decorate([
60
- after(MIDDLEWARE_1),
60
+ beforeAction(MIDDLEWARE_1),
61
61
  __metadata("design:type", Function),
62
62
  __metadata("design:paramtypes", []),
63
63
  __metadata("design:returntype", void 0)
64
64
  ], Target.prototype, "method", null);
65
- const res = AfterReflector.getMetadata(Target, 'method');
65
+ const res = BeforeActionReflector.getMetadata(Target, 'method');
66
66
  expect(res).to.be.eql([
67
67
  {
68
68
  propertyKey: 'method',
@@ -70,17 +70,17 @@ describe('after', function () {
70
70
  },
71
71
  ]);
72
72
  });
73
- it('sets miltiple middlewares to the target metadata', function () {
73
+ it('sets multiple middlewares to the target metadata', function () {
74
74
  class Target {
75
75
  method() { }
76
76
  }
77
77
  __decorate([
78
- after([MIDDLEWARE_1, MIDDLEWARE_2]),
78
+ beforeAction([MIDDLEWARE_1, MIDDLEWARE_2]),
79
79
  __metadata("design:type", Function),
80
80
  __metadata("design:paramtypes", []),
81
81
  __metadata("design:returntype", void 0)
82
82
  ], Target.prototype, "method", null);
83
- const res = AfterReflector.getMetadata(Target, 'method');
83
+ const res = BeforeActionReflector.getMetadata(Target, 'method');
84
84
  expect(res).to.be.eql([
85
85
  {
86
86
  propertyKey: 'method',
@@ -93,13 +93,13 @@ describe('after', function () {
93
93
  method() { }
94
94
  }
95
95
  __decorate([
96
- after(MIDDLEWARE_1),
97
- after([MIDDLEWARE_2, MIDDLEWARE_3]),
96
+ beforeAction(MIDDLEWARE_1),
97
+ beforeAction([MIDDLEWARE_2, MIDDLEWARE_3]),
98
98
  __metadata("design:type", Function),
99
99
  __metadata("design:paramtypes", []),
100
100
  __metadata("design:returntype", void 0)
101
101
  ], Target.prototype, "method", null);
102
- const res = AfterReflector.getMetadata(Target, 'method');
102
+ const res = BeforeActionReflector.getMetadata(Target, 'method');
103
103
  expect(res).to.be.eql([
104
104
  {
105
105
  propertyKey: 'method',
@@ -1,13 +1,13 @@
1
1
  import { MetadataKey } from '@e22m4u/ts-reflector';
2
2
  import { RoutePreHandler } from '@e22m4u/js-trie-router';
3
3
  /**
4
- * Before metadata.
4
+ * Before action metadata.
5
5
  */
6
- export type BeforeMetadata = {
6
+ export type BeforeActionMetadata = {
7
7
  propertyKey?: string;
8
8
  middleware: RoutePreHandler | RoutePreHandler[];
9
9
  };
10
10
  /**
11
- * Before metadata key.
11
+ * Before action metadata key.
12
12
  */
13
- export declare const BEFORE_METADATA_KEY: MetadataKey<BeforeMetadata[]>;
13
+ export declare const BEFORE_ACTION_METADATA_KEY: MetadataKey<BeforeActionMetadata[]>;
@@ -0,0 +1,5 @@
1
+ import { MetadataKey } from '@e22m4u/ts-reflector';
2
+ /**
3
+ * Before action metadata key.
4
+ */
5
+ export const BEFORE_ACTION_METADATA_KEY = new MetadataKey('beforeActionMetadataKey');
@@ -1,9 +1,9 @@
1
1
  import { Constructor } from '../../types.js';
2
- import { BeforeMetadata } from './before-metadata.js';
2
+ import { BeforeActionMetadata } from './before-action-metadata.js';
3
3
  /**
4
- * Before reflector.
4
+ * Before action reflector.
5
5
  */
6
- export declare class BeforeReflector {
6
+ export declare class BeforeActionReflector {
7
7
  /**
8
8
  * Set metadata.
9
9
  *
@@ -11,12 +11,12 @@ export declare class BeforeReflector {
11
11
  * @param target
12
12
  * @param propertyKey
13
13
  */
14
- static addMetadata(metadata: BeforeMetadata, target: Constructor, propertyKey?: string): void;
14
+ static addMetadata(metadata: BeforeActionMetadata, target: Constructor, propertyKey?: string): void;
15
15
  /**
16
16
  * Get metadata.
17
17
  *
18
18
  * @param target
19
19
  * @param propertyKey
20
20
  */
21
- static getMetadata(target: Constructor, propertyKey?: string): BeforeMetadata[];
21
+ static getMetadata(target: Constructor, propertyKey?: string): BeforeActionMetadata[];
22
22
  }
@@ -1,9 +1,9 @@
1
1
  import { Reflector } from '@e22m4u/ts-reflector';
2
- import { BEFORE_METADATA_KEY } from './before-metadata.js';
2
+ import { BEFORE_ACTION_METADATA_KEY } from './before-action-metadata.js';
3
3
  /**
4
- * Before reflector.
4
+ * Before action reflector.
5
5
  */
6
- export class BeforeReflector {
6
+ export class BeforeActionReflector {
7
7
  /**
8
8
  * Set metadata.
9
9
  *
@@ -12,9 +12,9 @@ export class BeforeReflector {
12
12
  * @param propertyKey
13
13
  */
14
14
  static addMetadata(metadata, target, propertyKey) {
15
- const oldArray = Reflector.getOwnMetadata(BEFORE_METADATA_KEY, target, propertyKey) ?? [];
15
+ const oldArray = Reflector.getOwnMetadata(BEFORE_ACTION_METADATA_KEY, target, propertyKey) ?? [];
16
16
  const newArray = [metadata, ...oldArray];
17
- Reflector.defineMetadata(BEFORE_METADATA_KEY, newArray, target, propertyKey);
17
+ Reflector.defineMetadata(BEFORE_ACTION_METADATA_KEY, newArray, target, propertyKey);
18
18
  }
19
19
  /**
20
20
  * Get metadata.
@@ -23,7 +23,7 @@ export class BeforeReflector {
23
23
  * @param propertyKey
24
24
  */
25
25
  static getMetadata(target, propertyKey) {
26
- const metadata = Reflector.getOwnMetadata(BEFORE_METADATA_KEY, target, propertyKey);
26
+ const metadata = Reflector.getOwnMetadata(BEFORE_ACTION_METADATA_KEY, target, propertyKey);
27
27
  return metadata ?? [];
28
28
  }
29
29
  }
@@ -1,12 +1,11 @@
1
1
  import { expect } from 'chai';
2
- import { describe } from 'mocha';
3
2
  import { Reflector } from '@e22m4u/ts-reflector';
4
- import { AfterReflector } from './after-reflector.js';
5
- import { AFTER_METADATA_KEY } from './after-metadata.js';
3
+ import { BeforeActionReflector } from './before-action-reflector.js';
4
+ import { BEFORE_ACTION_METADATA_KEY } from './before-action-metadata.js';
6
5
  const MIDDLEWARE_1 = () => undefined;
7
6
  const MIDDLEWARE_2 = () => undefined;
8
7
  const MIDDLEWARE_3 = () => undefined;
9
- describe('AfterReflector', function () {
8
+ describe('BeforeActionReflector', function () {
10
9
  describe('class target', function () {
11
10
  describe('addMetadata', function () {
12
11
  it('adds a given value to the target metadata', function () {
@@ -14,9 +13,9 @@ describe('AfterReflector', function () {
14
13
  }
15
14
  const md1 = { middleware: MIDDLEWARE_1 };
16
15
  const md2 = { middleware: [MIDDLEWARE_2, MIDDLEWARE_3] };
17
- AfterReflector.addMetadata(md1, Target);
18
- AfterReflector.addMetadata(md2, Target);
19
- const res = Reflector.getOwnMetadata(AFTER_METADATA_KEY, Target);
16
+ BeforeActionReflector.addMetadata(md1, Target);
17
+ BeforeActionReflector.addMetadata(md2, Target);
18
+ const res = Reflector.getOwnMetadata(BEFORE_ACTION_METADATA_KEY, Target);
20
19
  expect(res).to.be.eql([md2, md1]);
21
20
  });
22
21
  });
@@ -24,7 +23,7 @@ describe('AfterReflector', function () {
24
23
  it('returns an empty array if no metadata', function () {
25
24
  class Target {
26
25
  }
27
- const res = AfterReflector.getMetadata(Target);
26
+ const res = BeforeActionReflector.getMetadata(Target);
28
27
  expect(res).to.be.eql([]);
29
28
  });
30
29
  it('returns existing metadata by the target', function () {
@@ -33,8 +32,8 @@ describe('AfterReflector', function () {
33
32
  const md1 = { middleware: MIDDLEWARE_1 };
34
33
  const md2 = { middleware: [MIDDLEWARE_2, MIDDLEWARE_3] };
35
34
  const mdArray = [md1, md2];
36
- Reflector.defineMetadata(AFTER_METADATA_KEY, mdArray, Target);
37
- const res = AfterReflector.getMetadata(Target);
35
+ Reflector.defineMetadata(BEFORE_ACTION_METADATA_KEY, mdArray, Target);
36
+ const res = BeforeActionReflector.getMetadata(Target);
38
37
  expect(res).to.be.eql(mdArray);
39
38
  });
40
39
  });
@@ -46,9 +45,9 @@ describe('AfterReflector', function () {
46
45
  }
47
46
  const md1 = { middleware: MIDDLEWARE_1 };
48
47
  const md2 = { middleware: [MIDDLEWARE_2, MIDDLEWARE_3] };
49
- AfterReflector.addMetadata(md1, Target, 'prop');
50
- AfterReflector.addMetadata(md2, Target, 'prop');
51
- const res = Reflector.getOwnMetadata(AFTER_METADATA_KEY, Target, 'prop');
48
+ BeforeActionReflector.addMetadata(md1, Target, 'prop');
49
+ BeforeActionReflector.addMetadata(md2, Target, 'prop');
50
+ const res = Reflector.getOwnMetadata(BEFORE_ACTION_METADATA_KEY, Target, 'prop');
52
51
  expect(res).to.be.eql([md2, md1]);
53
52
  });
54
53
  });
@@ -56,7 +55,7 @@ describe('AfterReflector', function () {
56
55
  it('returns an empty array if no metadata', function () {
57
56
  class Target {
58
57
  }
59
- const res = AfterReflector.getMetadata(Target, 'prop');
58
+ const res = BeforeActionReflector.getMetadata(Target, 'prop');
60
59
  expect(res).to.be.eql([]);
61
60
  });
62
61
  it('returns existing metadata by the target', function () {
@@ -65,8 +64,8 @@ describe('AfterReflector', function () {
65
64
  const md1 = { middleware: MIDDLEWARE_1 };
66
65
  const md2 = { middleware: [MIDDLEWARE_2, MIDDLEWARE_3] };
67
66
  const mdArray = [md1, md2];
68
- Reflector.defineMetadata(AFTER_METADATA_KEY, mdArray, Target, 'prop');
69
- const res = AfterReflector.getMetadata(Target, 'prop');
67
+ Reflector.defineMetadata(BEFORE_ACTION_METADATA_KEY, mdArray, Target, 'prop');
68
+ const res = BeforeActionReflector.getMetadata(Target, 'prop');
70
69
  expect(res).to.be.eql(mdArray);
71
70
  });
72
71
  });
@@ -77,10 +76,10 @@ describe('AfterReflector', function () {
77
76
  }
78
77
  const md1 = { middleware: MIDDLEWARE_1 };
79
78
  const md2 = { middleware: MIDDLEWARE_2 };
80
- AfterReflector.addMetadata(md1, Target);
81
- AfterReflector.addMetadata(md2, Target, 'prop');
82
- const res1 = Reflector.getOwnMetadata(AFTER_METADATA_KEY, Target);
83
- const res2 = Reflector.getOwnMetadata(AFTER_METADATA_KEY, Target, 'prop');
79
+ BeforeActionReflector.addMetadata(md1, Target);
80
+ BeforeActionReflector.addMetadata(md2, Target, 'prop');
81
+ const res1 = Reflector.getOwnMetadata(BEFORE_ACTION_METADATA_KEY, Target);
82
+ const res2 = Reflector.getOwnMetadata(BEFORE_ACTION_METADATA_KEY, Target, 'prop');
84
83
  expect(res1).to.be.eql([md1]);
85
84
  expect(res2).to.be.eql([md2]);
86
85
  });
@@ -91,10 +90,10 @@ describe('AfterReflector', function () {
91
90
  }
92
91
  const md1 = { middleware: MIDDLEWARE_1 };
93
92
  const md2 = { middleware: MIDDLEWARE_2 };
94
- Reflector.defineMetadata(AFTER_METADATA_KEY, [md1], Target);
95
- Reflector.defineMetadata(AFTER_METADATA_KEY, [md2], Target, 'prop');
96
- const res1 = AfterReflector.getMetadata(Target);
97
- const res2 = AfterReflector.getMetadata(Target, 'prop');
93
+ Reflector.defineMetadata(BEFORE_ACTION_METADATA_KEY, [md1], Target);
94
+ Reflector.defineMetadata(BEFORE_ACTION_METADATA_KEY, [md2], Target, 'prop');
95
+ const res1 = BeforeActionReflector.getMetadata(Target);
96
+ const res2 = BeforeActionReflector.getMetadata(Target, 'prop');
98
97
  expect(res1).to.be.eql([md1]);
99
98
  expect(res2).to.be.eql([md2]);
100
99
  });
@@ -0,0 +1,3 @@
1
+ export * from './before-action-metadata.js';
2
+ export * from './before-action-reflector.js';
3
+ export * from './before-action-decorator.js';
@@ -0,0 +1,3 @@
1
+ export * from './before-action-metadata.js';
2
+ export * from './before-action-reflector.js';
3
+ export * from './before-action-decorator.js';
@@ -1,6 +1,6 @@
1
- export * from './after/index.js';
2
- export * from './before/index.js';
3
- export * from './action/index.js';
4
- export * from './controller/index.js';
1
+ export * from './rest-action/index.js';
5
2
  export * from './request-data/index.js';
3
+ export * from './after-action/index.js';
4
+ export * from './before-action/index.js';
5
+ export * from './rest-controller/index.js';
6
6
  export * from './request-context/index.js';
@@ -1,6 +1,6 @@
1
- export * from './after/index.js';
2
- export * from './before/index.js';
3
- export * from './action/index.js';
4
- export * from './controller/index.js';
1
+ export * from './rest-action/index.js';
5
2
  export * from './request-data/index.js';
3
+ export * from './after-action/index.js';
4
+ export * from './before-action/index.js';
5
+ export * from './rest-controller/index.js';
6
6
  export * from './request-context/index.js';
@@ -7,10 +7,10 @@ import { RequestContext } from '@e22m4u/js-trie-router';
7
7
  */
8
8
  export declare function requestContext<T extends object>(propertyName?: keyof RequestContext): (target: Prototype<T>, propertyKey: string, indexOrDescriptor: number) => void;
9
9
  /**
10
- * Request decorator.
10
+ * HttpRequest decorator.
11
11
  */
12
- export declare function request(): (target: Prototype<object>, propertyKey: string, indexOrDescriptor: number) => void;
12
+ export declare function httpRequest(): (target: Prototype<object>, propertyKey: string, indexOrDescriptor: number) => void;
13
13
  /**
14
- * Response decorator.
14
+ * HttpResponse decorator.
15
15
  */
16
- export declare function response(): (target: Prototype<object>, propertyKey: string, indexOrDescriptor: number) => void;
16
+ export declare function httpResponse(): (target: Prototype<object>, propertyKey: string, indexOrDescriptor: number) => void;
@@ -16,14 +16,14 @@ export function requestContext(propertyName) {
16
16
  };
17
17
  }
18
18
  /**
19
- * Request decorator.
19
+ * HttpRequest decorator.
20
20
  */
21
- export function request() {
21
+ export function httpRequest() {
22
22
  return requestContext('req');
23
23
  }
24
24
  /**
25
- * Response decorator.
25
+ * HttpResponse decorator.
26
26
  */
27
- export function response() {
27
+ export function httpResponse() {
28
28
  return requestContext('res');
29
29
  }
@@ -12,9 +12,15 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  };
13
13
  /* eslint-disable @typescript-eslint/no-unused-vars */
14
14
  import { expect } from 'chai';
15
+ import { httpRequest } from './request-context-decorator.js';
16
+ import { httpResponse } from './request-context-decorator.js';
15
17
  import { requestContext } from './request-context-decorator.js';
16
18
  import { RequestContextReflector } from './request-context-reflector.js';
17
19
  describe('requestContext', function () {
20
+ it('has aliases', function () {
21
+ expect(httpRequest).to.be.instanceOf(Function);
22
+ expect(httpResponse).to.be.instanceOf(Function);
23
+ });
18
24
  it('does not require options', function () {
19
25
  class Target {
20
26
  method(prop) { }
@@ -1,5 +1,4 @@
1
1
  import { expect } from 'chai';
2
- import { describe } from 'mocha';
3
2
  import { Reflector } from '@e22m4u/ts-reflector';
4
3
  import { RequestContextReflector } from './request-context-reflector.js';
5
4
  import { REQUEST_CONTEXT_METADATA_KEY } from './request-context-metadata.js';
@@ -15,18 +15,18 @@ export declare function requestData<T extends object>(options: RequestDataOption
15
15
  /**
16
16
  * Decorator aliases.
17
17
  */
18
- export declare const params: () => (target: Prototype<object>, propertyKey: string, indexOrDescriptor: number) => void;
19
- export declare const param: (propertyKey: string, schemaOrType?: DataSchema | DataType) => (target: Prototype<object>, propertyKey: string, indexOrDescriptor: number) => void;
20
- export declare const queries: () => (target: Prototype<object>, propertyKey: string, indexOrDescriptor: number) => void;
21
- export declare const query: (propertyKey: string, schemaOrType?: DataSchema | DataType) => (target: Prototype<object>, propertyKey: string, indexOrDescriptor: number) => void;
22
- export declare const headers: () => (target: Prototype<object>, propertyKey: string, indexOrDescriptor: number) => void;
23
- export declare const header: (propertyKey: string, schemaOrType?: DataSchema | DataType) => (target: Prototype<object>, propertyKey: string, indexOrDescriptor: number) => void;
24
- export declare const cookies: () => (target: Prototype<object>, propertyKey: string, indexOrDescriptor: number) => void;
25
- export declare const cookie: (propertyKey: string, schemaOrType?: DataSchema | DataType) => (target: Prototype<object>, propertyKey: string, indexOrDescriptor: number) => void;
26
- export declare const field: (propertyKey: string, schemaOrType?: DataSchema | DataType) => (target: Prototype<object>, propertyKey: string, indexOrDescriptor: number) => void;
18
+ export declare const requestParams: () => (target: Prototype<object>, propertyKey: string, indexOrDescriptor: number) => void;
19
+ export declare const requestParam: (propertyKey: string, schemaOrType?: DataSchema | DataType) => (target: Prototype<object>, propertyKey: string, indexOrDescriptor: number) => void;
20
+ export declare const requestQueries: () => (target: Prototype<object>, propertyKey: string, indexOrDescriptor: number) => void;
21
+ export declare const requestQuery: (propertyKey: string, schemaOrType?: DataSchema | DataType) => (target: Prototype<object>, propertyKey: string, indexOrDescriptor: number) => void;
22
+ export declare const requestHeaders: () => (target: Prototype<object>, propertyKey: string, indexOrDescriptor: number) => void;
23
+ export declare const requestHeader: (propertyKey: string, schemaOrType?: DataSchema | DataType) => (target: Prototype<object>, propertyKey: string, indexOrDescriptor: number) => void;
24
+ export declare const requestCookies: () => (target: Prototype<object>, propertyKey: string, indexOrDescriptor: number) => void;
25
+ export declare const requestCookie: (propertyKey: string, schemaOrType?: DataSchema | DataType) => (target: Prototype<object>, propertyKey: string, indexOrDescriptor: number) => void;
26
+ export declare const requestField: (propertyKey: string, schemaOrType?: DataSchema | DataType) => (target: Prototype<object>, propertyKey: string, indexOrDescriptor: number) => void;
27
27
  /**
28
28
  * Request body decorator.
29
29
  *
30
30
  * @param schemaOrType
31
31
  */
32
- export declare function body(schemaOrType?: DataSchema | DataType): (target: Prototype<object>, propertyKey: string, indexOrDescriptor: number) => void;
32
+ export declare function requestBody(schemaOrType?: DataSchema | DataType): (target: Prototype<object>, propertyKey: string, indexOrDescriptor: number) => void;
@@ -55,21 +55,21 @@ function createRequestDataPropertyDecoratorWithSource(source) {
55
55
  /**
56
56
  * Decorator aliases.
57
57
  */
58
- export const params = createRequestDataDecoratorWithSource(RequestDataSource.PARAMS);
59
- export const param = createRequestDataPropertyDecoratorWithSource(RequestDataSource.PARAMS);
60
- export const queries = createRequestDataDecoratorWithSource(RequestDataSource.QUERY);
61
- export const query = createRequestDataPropertyDecoratorWithSource(RequestDataSource.QUERY);
62
- export const headers = createRequestDataDecoratorWithSource(RequestDataSource.HEADERS);
63
- export const header = createRequestDataPropertyDecoratorWithSource(RequestDataSource.HEADERS);
64
- export const cookies = createRequestDataDecoratorWithSource(RequestDataSource.COOKIE);
65
- export const cookie = createRequestDataPropertyDecoratorWithSource(RequestDataSource.COOKIE);
66
- export const field = createRequestDataPropertyDecoratorWithSource(RequestDataSource.BODY);
58
+ export const requestParams = createRequestDataDecoratorWithSource(RequestDataSource.PARAMS);
59
+ export const requestParam = createRequestDataPropertyDecoratorWithSource(RequestDataSource.PARAMS);
60
+ export const requestQueries = createRequestDataDecoratorWithSource(RequestDataSource.QUERY);
61
+ export const requestQuery = createRequestDataPropertyDecoratorWithSource(RequestDataSource.QUERY);
62
+ export const requestHeaders = createRequestDataDecoratorWithSource(RequestDataSource.HEADERS);
63
+ export const requestHeader = createRequestDataPropertyDecoratorWithSource(RequestDataSource.HEADERS);
64
+ export const requestCookies = createRequestDataDecoratorWithSource(RequestDataSource.COOKIE);
65
+ export const requestCookie = createRequestDataPropertyDecoratorWithSource(RequestDataSource.COOKIE);
66
+ export const requestField = createRequestDataPropertyDecoratorWithSource(RequestDataSource.BODY);
67
67
  /**
68
68
  * Request body decorator.
69
69
  *
70
70
  * @param schemaOrType
71
71
  */
72
- export function body(schemaOrType) {
72
+ export function requestBody(schemaOrType) {
73
73
  let schema;
74
74
  if (typeof schemaOrType === 'object') {
75
75
  schema = schemaOrType;