@e22m4u/ts-rest-router 0.0.5 → 0.0.7

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 (37) hide show
  1. package/README-ru.md +204 -0
  2. package/README.md +206 -0
  3. package/dist/cjs/index.cjs +22 -31
  4. package/dist/esm/decorators/action/action-decorator.d.ts +7 -8
  5. package/dist/esm/decorators/action/action-decorator.js +1 -5
  6. package/dist/esm/decorators/action/action-decorator.spec.js +16 -16
  7. package/dist/esm/decorators/action/action-metadata.d.ts +0 -1
  8. package/dist/esm/decorators/controller/controller-decorator.js +1 -5
  9. package/dist/esm/decorators/controller/controller-decorator.spec.js +9 -15
  10. package/dist/esm/decorators/controller/controller-metadata.d.ts +0 -1
  11. package/dist/esm/decorators/request-context/request-context-decorator.d.ts +2 -3
  12. package/dist/esm/decorators/request-context/request-context-decorator.js +3 -6
  13. package/dist/esm/decorators/request-context/request-context-decorator.spec.js +2 -17
  14. package/dist/esm/decorators/request-context/request-context-metadata.d.ts +0 -1
  15. package/dist/esm/decorators/request-data/request-data-decorator.d.ts +6 -2
  16. package/dist/esm/decorators/request-data/request-data-decorator.js +16 -16
  17. package/dist/esm/decorators/request-data/request-data-decorator.spec.js +7 -5
  18. package/dist/esm/decorators/request-data/request-data-metadata.d.ts +0 -1
  19. package/package.json +18 -17
  20. package/src/decorators/action/action-decorator.spec.ts +16 -16
  21. package/src/decorators/action/action-decorator.ts +10 -12
  22. package/src/decorators/action/action-metadata.ts +0 -1
  23. package/src/decorators/controller/controller-decorator.spec.ts +11 -16
  24. package/src/decorators/controller/controller-decorator.ts +4 -5
  25. package/src/decorators/controller/controller-metadata.ts +0 -1
  26. package/src/decorators/request-context/request-context-decorator.spec.ts +2 -15
  27. package/src/decorators/request-context/request-context-decorator.ts +3 -8
  28. package/src/decorators/request-context/request-context-metadata.ts +0 -1
  29. package/src/decorators/request-data/request-data-decorator.spec.ts +7 -6
  30. package/src/decorators/request-data/request-data-decorator.ts +41 -16
  31. package/src/decorators/request-data/request-data-metadata.ts +0 -1
  32. package/tsconfig.json +2 -1
  33. package/dist/esm/controller-registry.spec.d.ts +0 -1
  34. package/dist/esm/controller-registry.spec.js +0 -719
  35. package/dist/esm/debuggable-service.spec.d.ts +0 -1
  36. package/dist/esm/debuggable-service.spec.js +0 -16
  37. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -13,23 +13,24 @@ import {headers} from './request-data-decorator.js';
13
13
  import {bodyParam} from './request-data-decorator.js';
14
14
  import {requestData} from './request-data-decorator.js';
15
15
  import {RequestDataSource} from './request-data-metadata.js';
16
- import {RequestDataMetadata} from './request-data-metadata.js';
17
16
  import {RequestDataReflector} from './request-data-reflector.js';
18
17
 
19
18
  describe('requestData', function () {
20
- it('sets a given argument to the target metadata', function () {
21
- const md: RequestDataMetadata = {
22
- source: RequestDataSource.PARAMS,
19
+ it('sets given options to the target metadata', function () {
20
+ const options = {
21
+ source: RequestDataSource.BODY,
22
+ schema: {type: DataType.STRING},
23
+ property: 'prop',
23
24
  customOption: 'myOption',
24
25
  };
25
26
  class Target {
26
27
  myMethod(
27
- @requestData(md)
28
+ @requestData(options)
28
29
  prop: unknown,
29
30
  ) {}
30
31
  }
31
32
  const res = RequestDataReflector.getMetadata(Target, 'myMethod');
32
- expect(res.get(0)).to.be.eql(md);
33
+ expect(res.get(0)).to.be.eql(options);
33
34
  });
34
35
 
35
36
  describe('request data by a given source', function () {
@@ -9,12 +9,17 @@ import {RequestDataSource} from './request-data-metadata.js';
9
9
  import {RequestDataMetadata} from './request-data-metadata.js';
10
10
  import {RequestDataReflector} from './request-data-reflector.js';
11
11
 
12
+ /**
13
+ * Request data options.
14
+ */
15
+ export type RequestDataOptions = RequestDataMetadata;
16
+
12
17
  /**
13
18
  * Request data decorator.
14
19
  *
15
- * @param metadata
20
+ * @param options
16
21
  */
17
- export function requestData<T extends object>(metadata: RequestDataMetadata) {
22
+ export function requestData<T extends object>(options: RequestDataOptions) {
18
23
  return function (
19
24
  target: Prototype<T>,
20
25
  propertyKey: string,
@@ -31,7 +36,7 @@ export function requestData<T extends object>(metadata: RequestDataMetadata) {
31
36
  'on an instance method parameter.',
32
37
  );
33
38
  RequestDataReflector.setMetadata(
34
- metadata,
39
+ options,
35
40
  target.constructor as Constructor<T>,
36
41
  indexOrDescriptor,
37
42
  propertyKey,
@@ -40,11 +45,11 @@ export function requestData<T extends object>(metadata: RequestDataMetadata) {
40
45
  }
41
46
 
42
47
  /**
43
- * Create data decorator.
48
+ * Create request data decorator with source.
44
49
  *
45
50
  * @param source
46
51
  */
47
- function createDataDecorator(source: RequestDataSource) {
52
+ function createRequestDataDecoratorWithSource(source: RequestDataSource) {
48
53
  return function () {
49
54
  const schema = {type: DataType.OBJECT};
50
55
  return requestData({schema, source});
@@ -52,11 +57,13 @@ function createDataDecorator(source: RequestDataSource) {
52
57
  }
53
58
 
54
59
  /**
55
- * Create property decorator.
60
+ * Create request data property decorator with source.
56
61
  *
57
62
  * @param source
58
63
  */
59
- function createPropertyDecorator(source: RequestDataSource) {
64
+ function createRequestDataPropertyDecoratorWithSource(
65
+ source: RequestDataSource,
66
+ ) {
60
67
  return function (propertyKey: string, schemaOrType?: DataSchema | DataType) {
61
68
  const properties = {} as NoUndef<DataSchema['properties']>;
62
69
  const rootSchema: DataSchema = {type: DataType.OBJECT};
@@ -78,15 +85,33 @@ function createPropertyDecorator(source: RequestDataSource) {
78
85
  /**
79
86
  * Decorator aliases.
80
87
  */
81
- export const params = createDataDecorator(RequestDataSource.PARAMS);
82
- export const param = createPropertyDecorator(RequestDataSource.PARAMS);
83
- export const queries = createDataDecorator(RequestDataSource.QUERY);
84
- export const query = createPropertyDecorator(RequestDataSource.QUERY);
85
- export const headers = createDataDecorator(RequestDataSource.HEADERS);
86
- export const header = createPropertyDecorator(RequestDataSource.HEADERS);
87
- export const cookies = createDataDecorator(RequestDataSource.COOKIE);
88
- export const cookie = createPropertyDecorator(RequestDataSource.COOKIE);
89
- export const bodyParam = createPropertyDecorator(RequestDataSource.BODY);
88
+ export const params = createRequestDataDecoratorWithSource(
89
+ RequestDataSource.PARAMS,
90
+ );
91
+ export const param = createRequestDataPropertyDecoratorWithSource(
92
+ RequestDataSource.PARAMS,
93
+ );
94
+ export const queries = createRequestDataDecoratorWithSource(
95
+ RequestDataSource.QUERY,
96
+ );
97
+ export const query = createRequestDataPropertyDecoratorWithSource(
98
+ RequestDataSource.QUERY,
99
+ );
100
+ export const headers = createRequestDataDecoratorWithSource(
101
+ RequestDataSource.HEADERS,
102
+ );
103
+ export const header = createRequestDataPropertyDecoratorWithSource(
104
+ RequestDataSource.HEADERS,
105
+ );
106
+ export const cookies = createRequestDataDecoratorWithSource(
107
+ RequestDataSource.COOKIE,
108
+ );
109
+ export const cookie = createRequestDataPropertyDecoratorWithSource(
110
+ RequestDataSource.COOKIE,
111
+ );
112
+ export const bodyParam = createRequestDataPropertyDecoratorWithSource(
113
+ RequestDataSource.BODY,
114
+ );
90
115
 
91
116
  /**
92
117
  * Request body decorator.
@@ -19,7 +19,6 @@ export type RequestDataMetadata = {
19
19
  source: RequestDataSource;
20
20
  schema?: DataSchema;
21
21
  property?: string;
22
- [option: string]: unknown | undefined;
23
22
  };
24
23
 
25
24
  /**
package/tsconfig.json CHANGED
@@ -12,6 +12,7 @@
12
12
  "declaration": true,
13
13
  "emitDecoratorMetadata": true,
14
14
  "experimentalDecorators": true,
15
- "resolveJsonModule": true
15
+ "resolveJsonModule": true,
16
+ "incremental": false
16
17
  }
17
18
  }
@@ -1 +0,0 @@
1
- export {};