@tsed/platform-params 7.0.0-beta.1 → 7.0.0-beta.12

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 (106) hide show
  1. package/lib/cjs/builder/PlatformParams.js +5 -7
  2. package/lib/cjs/builder/PlatformParams.js.map +1 -1
  3. package/lib/cjs/decorators/bodyParams.js +3 -10
  4. package/lib/cjs/decorators/bodyParams.js.map +1 -1
  5. package/lib/cjs/decorators/context.js +0 -1
  6. package/lib/cjs/decorators/context.js.map +1 -1
  7. package/lib/cjs/decorators/cookies.js +0 -1
  8. package/lib/cjs/decorators/cookies.js.map +1 -1
  9. package/lib/cjs/decorators/headerParams.js +0 -1
  10. package/lib/cjs/decorators/headerParams.js.map +1 -1
  11. package/lib/cjs/decorators/locals.js +0 -1
  12. package/lib/cjs/decorators/locals.js.map +1 -1
  13. package/lib/cjs/decorators/paramFn.js +2 -7
  14. package/lib/cjs/decorators/paramFn.js.map +1 -1
  15. package/lib/cjs/decorators/pathParams.js +0 -1
  16. package/lib/cjs/decorators/pathParams.js.map +1 -1
  17. package/lib/cjs/decorators/queryParams.js +4 -5
  18. package/lib/cjs/decorators/queryParams.js.map +1 -1
  19. package/lib/cjs/decorators/session.js +0 -1
  20. package/lib/cjs/decorators/session.js.map +1 -1
  21. package/lib/cjs/decorators/useParam.js +0 -4
  22. package/lib/cjs/decorators/useParam.js.map +1 -1
  23. package/lib/cjs/decorators/useParamType.js +8 -2
  24. package/lib/cjs/decorators/useParamType.js.map +1 -1
  25. package/lib/cjs/decorators/usePipe.js.map +1 -1
  26. package/lib/cjs/domain/ParamMetadata.js +2 -30
  27. package/lib/cjs/domain/ParamMetadata.js.map +1 -1
  28. package/lib/cjs/domain/ParamTypes.js +11 -1
  29. package/lib/cjs/domain/ParamTypes.js.map +1 -1
  30. package/lib/cjs/errors/ParamValidationError.js.map +1 -1
  31. package/lib/cjs/errors/RequiredValidationError.js.map +1 -1
  32. package/lib/cjs/exports.js +3 -0
  33. package/lib/cjs/exports.js.map +1 -0
  34. package/lib/cjs/index.js +31 -33
  35. package/lib/cjs/index.js.map +1 -1
  36. package/lib/cjs/package.json +3 -0
  37. package/lib/cjs/pipes/DeserializerPipe.js +3 -3
  38. package/lib/cjs/pipes/DeserializerPipe.js.map +1 -1
  39. package/lib/cjs/pipes/ParseExpressionPipe.js +10 -2
  40. package/lib/cjs/pipes/ParseExpressionPipe.js.map +1 -1
  41. package/lib/cjs/pipes/ValidationPipe.js +2 -2
  42. package/lib/cjs/pipes/ValidationPipe.js.map +1 -1
  43. package/lib/esm/builder/PlatformParams.js +4 -6
  44. package/lib/esm/builder/PlatformParams.js.map +1 -1
  45. package/lib/esm/decorators/bodyParams.js +6 -13
  46. package/lib/esm/decorators/bodyParams.js.map +1 -1
  47. package/lib/esm/decorators/context.js +3 -4
  48. package/lib/esm/decorators/context.js.map +1 -1
  49. package/lib/esm/decorators/cookies.js +3 -4
  50. package/lib/esm/decorators/cookies.js.map +1 -1
  51. package/lib/esm/decorators/headerParams.js +3 -4
  52. package/lib/esm/decorators/headerParams.js.map +1 -1
  53. package/lib/esm/decorators/locals.js +3 -4
  54. package/lib/esm/decorators/locals.js.map +1 -1
  55. package/lib/esm/decorators/paramFn.js +2 -7
  56. package/lib/esm/decorators/paramFn.js.map +1 -1
  57. package/lib/esm/decorators/pathParams.js +3 -4
  58. package/lib/esm/decorators/pathParams.js.map +1 -1
  59. package/lib/esm/decorators/queryParams.js +7 -8
  60. package/lib/esm/decorators/queryParams.js.map +1 -1
  61. package/lib/esm/decorators/session.js +3 -4
  62. package/lib/esm/decorators/session.js.map +1 -1
  63. package/lib/esm/decorators/useDeserialization.js +2 -2
  64. package/lib/esm/decorators/useParam.js +6 -10
  65. package/lib/esm/decorators/useParam.js.map +1 -1
  66. package/lib/esm/decorators/useParamExpression.js +1 -1
  67. package/lib/esm/decorators/useParamType.js +11 -5
  68. package/lib/esm/decorators/useParamType.js.map +1 -1
  69. package/lib/esm/decorators/usePipe.js +1 -1
  70. package/lib/esm/decorators/usePipe.js.map +1 -1
  71. package/lib/esm/decorators/useValidation.js +2 -2
  72. package/lib/esm/domain/ParamMetadata.js +1 -30
  73. package/lib/esm/domain/ParamMetadata.js.map +1 -1
  74. package/lib/esm/domain/ParamTypes.js +10 -0
  75. package/lib/esm/domain/ParamTypes.js.map +1 -1
  76. package/lib/esm/errors/ParamValidationError.js +1 -1
  77. package/lib/esm/errors/ParamValidationError.js.map +1 -1
  78. package/lib/esm/errors/RequiredValidationError.js +1 -1
  79. package/lib/esm/errors/RequiredValidationError.js.map +1 -1
  80. package/lib/esm/exports.js +2 -0
  81. package/lib/esm/exports.js.map +1 -0
  82. package/lib/esm/index.js +31 -33
  83. package/lib/esm/index.js.map +1 -1
  84. package/lib/esm/package.json +3 -0
  85. package/lib/esm/pipes/DeserializerPipe.js.map +1 -1
  86. package/lib/esm/pipes/ParseExpressionPipe.js +10 -2
  87. package/lib/esm/pipes/ParseExpressionPipe.js.map +1 -1
  88. package/lib/esm/pipes/ValidationPipe.js +2 -2
  89. package/lib/esm/pipes/ValidationPipe.js.map +1 -1
  90. package/lib/types/builder/PlatformParams.d.ts +3 -4
  91. package/lib/types/decorators/bodyParams.d.ts +1 -0
  92. package/lib/types/decorators/context.d.ts +0 -6
  93. package/lib/types/decorators/paramFn.d.ts +2 -2
  94. package/lib/types/decorators/usePipe.d.ts +1 -1
  95. package/lib/types/domain/ParamMetadata.d.ts +1 -16
  96. package/lib/types/domain/ParamTypes.d.ts +1 -0
  97. package/lib/types/errors/ParamValidationError.d.ts +2 -2
  98. package/lib/types/errors/RequiredValidationError.d.ts +2 -2
  99. package/lib/types/exports.d.ts +1 -0
  100. package/lib/types/index.d.ts +24 -21
  101. package/lib/types/pipes/DeserializerPipe.d.ts +2 -2
  102. package/lib/types/pipes/ParseExpressionPipe.d.ts +3 -2
  103. package/lib/types/pipes/ValidationPipe.d.ts +5 -5
  104. package/package.json +38 -16
  105. package/readme.md +3 -3
  106. package/tsconfig.compile.esm.json +1 -12
package/lib/cjs/index.js CHANGED
@@ -1,37 +1,35 @@
1
1
  "use strict";
2
+ /**
3
+ * @file Automatically generated by barrelsby.
4
+ */
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  const tslib_1 = require("tslib");
4
- (0, tslib_1.__exportStar)(require("./utils/mapParamsOptions"), exports);
5
- // domain
6
- (0, tslib_1.__exportStar)(require("./domain/ParamMetadata"), exports);
7
- (0, tslib_1.__exportStar)(require("./domain/ParamOptions"), exports);
8
- (0, tslib_1.__exportStar)(require("./domain/ParamTypes"), exports);
9
- // pipes
10
- (0, tslib_1.__exportStar)(require("./pipes/ParseExpressionPipe"), exports);
11
- (0, tslib_1.__exportStar)(require("./pipes/DeserializerPipe"), exports);
12
- (0, tslib_1.__exportStar)(require("./pipes/ValidationPipe"), exports);
13
- // builder
14
- (0, tslib_1.__exportStar)(require("./builder/PlatformParams"), exports);
15
- // errors
16
- (0, tslib_1.__exportStar)(require("./errors/RequiredValidationError"), exports);
17
- (0, tslib_1.__exportStar)(require("./errors/ValidationError"), exports);
18
- (0, tslib_1.__exportStar)(require("./errors/ParamValidationError"), exports);
19
- // decorators
20
- (0, tslib_1.__exportStar)(require("./decorators/context"), exports);
21
- (0, tslib_1.__exportStar)(require("./decorators/bodyParams"), exports);
22
- (0, tslib_1.__exportStar)(require("./decorators/usePipe"), exports);
23
- (0, tslib_1.__exportStar)(require("./decorators/useParam"), exports);
24
- (0, tslib_1.__exportStar)(require("./decorators/useParamType"), exports);
25
- (0, tslib_1.__exportStar)(require("./decorators/useType"), exports);
26
- (0, tslib_1.__exportStar)(require("./decorators/useValidation"), exports);
27
- (0, tslib_1.__exportStar)(require("./decorators/useDeserialization"), exports);
28
- (0, tslib_1.__exportStar)(require("./decorators/useParamExpression"), exports);
29
- (0, tslib_1.__exportStar)(require("./decorators/useParamType"), exports);
30
- (0, tslib_1.__exportStar)(require("./decorators/headerParams"), exports);
31
- (0, tslib_1.__exportStar)(require("./decorators/cookies"), exports);
32
- (0, tslib_1.__exportStar)(require("./decorators/locals"), exports);
33
- (0, tslib_1.__exportStar)(require("./decorators/pathParams"), exports);
34
- (0, tslib_1.__exportStar)(require("./decorators/queryParams"), exports);
35
- (0, tslib_1.__exportStar)(require("./decorators/session"), exports);
36
- (0, tslib_1.__exportStar)(require("./decorators/paramFn"), exports);
7
+ tslib_1.__exportStar(require("./exports"), exports);
8
+ tslib_1.__exportStar(require("./builder/PlatformParams"), exports);
9
+ tslib_1.__exportStar(require("./decorators/bodyParams"), exports);
10
+ tslib_1.__exportStar(require("./decorators/context"), exports);
11
+ tslib_1.__exportStar(require("./decorators/cookies"), exports);
12
+ tslib_1.__exportStar(require("./decorators/headerParams"), exports);
13
+ tslib_1.__exportStar(require("./decorators/locals"), exports);
14
+ tslib_1.__exportStar(require("./decorators/paramFn"), exports);
15
+ tslib_1.__exportStar(require("./decorators/pathParams"), exports);
16
+ tslib_1.__exportStar(require("./decorators/queryParams"), exports);
17
+ tslib_1.__exportStar(require("./decorators/session"), exports);
18
+ tslib_1.__exportStar(require("./decorators/useDeserialization"), exports);
19
+ tslib_1.__exportStar(require("./decorators/useParam"), exports);
20
+ tslib_1.__exportStar(require("./decorators/useParamExpression"), exports);
21
+ tslib_1.__exportStar(require("./decorators/useParamType"), exports);
22
+ tslib_1.__exportStar(require("./decorators/usePipe"), exports);
23
+ tslib_1.__exportStar(require("./decorators/useType"), exports);
24
+ tslib_1.__exportStar(require("./decorators/useValidation"), exports);
25
+ tslib_1.__exportStar(require("./domain/ParamMetadata"), exports);
26
+ tslib_1.__exportStar(require("./domain/ParamOptions"), exports);
27
+ tslib_1.__exportStar(require("./domain/ParamTypes"), exports);
28
+ tslib_1.__exportStar(require("./errors/ParamValidationError"), exports);
29
+ tslib_1.__exportStar(require("./errors/RequiredValidationError"), exports);
30
+ tslib_1.__exportStar(require("./errors/ValidationError"), exports);
31
+ tslib_1.__exportStar(require("./pipes/DeserializerPipe"), exports);
32
+ tslib_1.__exportStar(require("./pipes/ParseExpressionPipe"), exports);
33
+ tslib_1.__exportStar(require("./pipes/ValidationPipe"), exports);
34
+ tslib_1.__exportStar(require("./utils/mapParamsOptions"), exports);
37
35
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,wEAAyC;AAEzC,SAAS;AACT,sEAAuC;AACvC,qEAAsC;AACtC,mEAAoC;AAEpC,QAAQ;AACR,2EAA4C;AAC5C,wEAAyC;AACzC,sEAAuC;AAEvC,UAAU;AACV,wEAAyC;AAEzC,SAAS;AACT,gFAAiD;AACjD,wEAAyC;AACzC,6EAA8C;AAE9C,aAAa;AACb,oEAAqC;AACrC,uEAAwC;AACxC,oEAAqC;AACrC,qEAAsC;AACtC,yEAA0C;AAC1C,oEAAqC;AACrC,0EAA2C;AAC3C,+EAAgD;AAChD,+EAAgD;AAChD,yEAA0C;AAC1C,yEAA0C;AAC1C,oEAAqC;AACrC,mEAAoC;AACpC,uEAAwC;AACxC,wEAAyC;AACzC,oEAAqC;AACrC,oEAAqC","sourcesContent":["export * from \"./utils/mapParamsOptions\";\n\n// domain\nexport * from \"./domain/ParamMetadata\";\nexport * from \"./domain/ParamOptions\";\nexport * from \"./domain/ParamTypes\";\n\n// pipes\nexport * from \"./pipes/ParseExpressionPipe\";\nexport * from \"./pipes/DeserializerPipe\";\nexport * from \"./pipes/ValidationPipe\";\n\n// builder\nexport * from \"./builder/PlatformParams\";\n\n// errors\nexport * from \"./errors/RequiredValidationError\";\nexport * from \"./errors/ValidationError\";\nexport * from \"./errors/ParamValidationError\";\n\n// decorators\nexport * from \"./decorators/context\";\nexport * from \"./decorators/bodyParams\";\nexport * from \"./decorators/usePipe\";\nexport * from \"./decorators/useParam\";\nexport * from \"./decorators/useParamType\";\nexport * from \"./decorators/useType\";\nexport * from \"./decorators/useValidation\";\nexport * from \"./decorators/useDeserialization\";\nexport * from \"./decorators/useParamExpression\";\nexport * from \"./decorators/useParamType\";\nexport * from \"./decorators/headerParams\";\nexport * from \"./decorators/cookies\";\nexport * from \"./decorators/locals\";\nexport * from \"./decorators/pathParams\";\nexport * from \"./decorators/queryParams\";\nexport * from \"./decorators/session\";\nexport * from \"./decorators/paramFn\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,oDAA0B;AAC1B,mEAAyC;AACzC,kEAAwC;AACxC,+DAAqC;AACrC,+DAAqC;AACrC,oEAA0C;AAC1C,8DAAoC;AACpC,+DAAqC;AACrC,kEAAwC;AACxC,mEAAyC;AACzC,+DAAqC;AACrC,0EAAgD;AAChD,gEAAsC;AACtC,0EAAgD;AAChD,oEAA0C;AAC1C,+DAAqC;AACrC,+DAAqC;AACrC,qEAA2C;AAC3C,iEAAuC;AACvC,gEAAsC;AACtC,8DAAoC;AACpC,wEAA8C;AAC9C,2EAAiD;AACjD,mEAAyC;AACzC,mEAAyC;AACzC,sEAA4C;AAC5C,iEAAuC;AACvC,mEAAyC","sourcesContent":["/**\n * @file Automatically generated by barrelsby.\n */\n\nexport * from \"./exports\";\nexport * from \"./builder/PlatformParams\";\nexport * from \"./decorators/bodyParams\";\nexport * from \"./decorators/context\";\nexport * from \"./decorators/cookies\";\nexport * from \"./decorators/headerParams\";\nexport * from \"./decorators/locals\";\nexport * from \"./decorators/paramFn\";\nexport * from \"./decorators/pathParams\";\nexport * from \"./decorators/queryParams\";\nexport * from \"./decorators/session\";\nexport * from \"./decorators/useDeserialization\";\nexport * from \"./decorators/useParam\";\nexport * from \"./decorators/useParamExpression\";\nexport * from \"./decorators/useParamType\";\nexport * from \"./decorators/usePipe\";\nexport * from \"./decorators/useType\";\nexport * from \"./decorators/useValidation\";\nexport * from \"./domain/ParamMetadata\";\nexport * from \"./domain/ParamOptions\";\nexport * from \"./domain/ParamTypes\";\nexport * from \"./errors/ParamValidationError\";\nexport * from \"./errors/RequiredValidationError\";\nexport * from \"./errors/ValidationError\";\nexport * from \"./pipes/DeserializerPipe\";\nexport * from \"./pipes/ParseExpressionPipe\";\nexport * from \"./pipes/ValidationPipe\";\nexport * from \"./utils/mapParamsOptions\";\n"]}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
@@ -19,11 +19,11 @@ let DeserializerPipe = DeserializerPipe_1 = class DeserializerPipe {
19
19
  });
20
20
  }
21
21
  };
22
- (0, tslib_1.__decorate)([
22
+ tslib_1.__decorate([
23
23
  (0, di_1.Constant)("converter", {}),
24
- (0, tslib_1.__metadata)("design:type", Object)
24
+ tslib_1.__metadata("design:type", Object)
25
25
  ], DeserializerPipe.prototype, "settings", void 0);
26
- DeserializerPipe = DeserializerPipe_1 = (0, tslib_1.__decorate)([
26
+ DeserializerPipe = DeserializerPipe_1 = tslib_1.__decorate([
27
27
  (0, di_1.Injectable)()
28
28
  ], DeserializerPipe);
29
29
  exports.DeserializerPipe = DeserializerPipe;
@@ -1 +1 @@
1
- {"version":3,"file":"DeserializerPipe.js","sourceRoot":"","sources":["../../../src/pipes/DeserializerPipe.ts"],"names":[],"mappings":";;;;;AAAA,iCAA8C;AAC9C,mDAA8C;AAI9C,IAAa,gBAAgB,wBAA7B,MAAa,gBAAgB;IAM3B,SAAS,CAAC,KAAU,EAAE,KAAoB;QACxC,OAAO,IAAA,yBAAW,EAAC,KAAK,EAAE;YACxB,QAAQ,EAAE,IAAI;YACd,oBAAoB,EAAE,IAAI,CAAC,QAAQ,CAAC,oBAAoB,KAAK,QAAQ;YACrE,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;YAC9B,YAAY,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;YACrC,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAgB,CAAC,IAAI,EAAE,CAAC;SAC7C,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAhBC;IADC,IAAA,aAAQ,EAAC,WAAW,EAAE,EAAE,CAAC;;kDAGxB;AAJS,gBAAgB;IAD5B,IAAA,eAAU,GAAE;GACA,gBAAgB,CAkB5B;AAlBY,4CAAgB","sourcesContent":["import {Constant, Injectable} from \"@tsed/di\";\nimport {deserialize} from \"@tsed/json-mapper\";\nimport {ParamMetadata, PipeMethods} from \"../domain/ParamMetadata\";\n\n@Injectable()\nexport class DeserializerPipe implements PipeMethods {\n @Constant(\"converter\", {})\n private settings: {\n additionalProperties?: \"error\" | \"accept\" | \"ignore\";\n };\n\n transform(value: any, param: ParamMetadata) {\n return deserialize(value, {\n useAlias: true,\n additionalProperties: this.settings.additionalProperties === \"accept\",\n type: param.type,\n collectionType: param.collectionType,\n groups: param.parameter.groups,\n genericTypes: param.nestedGenerics[0],\n nestedGenerics: param.nestedGenerics,\n ...(param.store.get(DeserializerPipe) || {})\n });\n }\n}\n"]}
1
+ {"version":3,"file":"DeserializerPipe.js","sourceRoot":"","sources":["../../../src/pipes/DeserializerPipe.ts"],"names":[],"mappings":";;;;;AAAA,iCAA8C;AAC9C,mDAA8C;AAI9C,IAAa,gBAAgB,wBAA7B,MAAa,gBAAgB;IAM3B,SAAS,CAAC,KAAU,EAAE,KAAyB;QAC7C,OAAO,IAAA,yBAAW,EAAC,KAAK,EAAE;YACxB,QAAQ,EAAE,IAAI;YACd,oBAAoB,EAAE,IAAI,CAAC,QAAQ,CAAC,oBAAoB,KAAK,QAAQ;YACrE,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;YAC9B,YAAY,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;YACrC,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAgB,CAAC,IAAI,EAAE,CAAC;SAC7C,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAhBC;IADC,IAAA,aAAQ,EAAC,WAAW,EAAE,EAAE,CAAC;;kDAGxB;AAJS,gBAAgB;IAD5B,IAAA,eAAU,GAAE;GACA,gBAAgB,CAkB5B;AAlBY,4CAAgB","sourcesContent":["import {Constant, Injectable} from \"@tsed/di\";\nimport {deserialize} from \"@tsed/json-mapper\";\nimport {JsonParameterStore, PipeMethods} from \"@tsed/schema\";\n\n@Injectable()\nexport class DeserializerPipe implements PipeMethods {\n @Constant(\"converter\", {})\n private settings: {\n additionalProperties?: \"error\" | \"accept\" | \"ignore\";\n };\n\n transform(value: any, param: JsonParameterStore) {\n return deserialize(value, {\n useAlias: true,\n additionalProperties: this.settings.additionalProperties === \"accept\",\n type: param.type,\n collectionType: param.collectionType,\n groups: param.parameter.groups,\n genericTypes: param.nestedGenerics[0],\n nestedGenerics: param.nestedGenerics,\n ...(param.store.get(DeserializerPipe) || {})\n });\n }\n}\n"]}
@@ -8,14 +8,22 @@ const ParamTypes_1 = require("../domain/ParamTypes");
8
8
  let ParseExpressionPipe = class ParseExpressionPipe {
9
9
  transform(scope, param) {
10
10
  const { paramType, type } = param;
11
- const value = (0, core_1.getValue)(scope, param.key);
11
+ const value = (0, core_1.getValue)(scope, this.getKey(param));
12
12
  if ([ParamTypes_1.ParamTypes.QUERY, ParamTypes_1.ParamTypes.PATH].includes(paramType) && value === "" && type !== String) {
13
13
  return undefined;
14
14
  }
15
15
  return value;
16
16
  }
17
+ getKey(param) {
18
+ let { expression, paramType, dataPath } = param;
19
+ paramType = paramType || param.parameter.get("in").toUpperCase();
20
+ if (expression && paramType === ParamTypes_1.ParamTypes.HEADER) {
21
+ expression = String(expression).toLowerCase();
22
+ }
23
+ return [dataPath, expression].filter(Boolean).join(".");
24
+ }
17
25
  };
18
- ParseExpressionPipe = (0, tslib_1.__decorate)([
26
+ ParseExpressionPipe = tslib_1.__decorate([
19
27
  (0, di_1.Injectable)({
20
28
  priority: -1000
21
29
  })
@@ -1 +1 @@
1
- {"version":3,"file":"ParseExpressionPipe.js","sourceRoot":"","sources":["../../../src/pipes/ParseExpressionPipe.ts"],"names":[],"mappings":";;;;AAAA,qCAAoC;AACpC,iCAAoC;AAEpC,qDAAgD;AAMhD,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;IAC9B,SAAS,CAAC,KAAe,EAAE,KAAoB;QAC7C,MAAM,EAAC,SAAS,EAAE,IAAI,EAAC,GAAG,KAAK,CAAC;QAEhC,MAAM,KAAK,GAAG,IAAA,eAAQ,EAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAEzC,IAAI,CAAC,uBAAU,CAAC,KAAK,EAAE,uBAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAuB,CAAC,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,KAAK,MAAM,EAAE;YAC5G,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAA;AAZY,mBAAmB;IAH/B,IAAA,eAAU,EAAC;QACV,QAAQ,EAAE,CAAC,IAAI;KAChB,CAAC;GACW,mBAAmB,CAY/B;AAZY,kDAAmB","sourcesContent":["import {getValue} from \"@tsed/core\";\nimport {Injectable} from \"@tsed/di\";\nimport {PipeMethods, ParamMetadata} from \"../domain/ParamMetadata\";\nimport {ParamTypes} from \"../domain/ParamTypes\";\nimport type {ArgScope} from \"../builder/PlatformParams\";\n\n@Injectable({\n priority: -1000\n})\nexport class ParseExpressionPipe implements PipeMethods {\n transform(scope: ArgScope, param: ParamMetadata) {\n const {paramType, type} = param;\n\n const value = getValue(scope, param.key);\n\n if ([ParamTypes.QUERY, ParamTypes.PATH].includes(paramType as ParamTypes) && value === \"\" && type !== String) {\n return undefined;\n }\n\n return value;\n }\n}\n"]}
1
+ {"version":3,"file":"ParseExpressionPipe.js","sourceRoot":"","sources":["../../../src/pipes/ParseExpressionPipe.ts"],"names":[],"mappings":";;;;AAAA,qCAAoC;AACpC,iCAAoC;AAEpC,qDAAgD;AAMhD,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;IAC9B,SAAS,CAAC,KAAe,EAAE,KAAyB;QAClD,MAAM,EAAC,SAAS,EAAE,IAAI,EAAC,GAAG,KAAK,CAAC;QAEhC,MAAM,KAAK,GAAG,IAAA,eAAQ,EAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAElD,IAAI,CAAC,uBAAU,CAAC,KAAK,EAAE,uBAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAuB,CAAC,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,KAAK,MAAM,EAAE;YAC5G,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAES,MAAM,CAAC,KAAyB;QACxC,IAAI,EAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAC,GAAG,KAAK,CAAC;QAC9C,SAAS,GAAG,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAEjE,IAAI,UAAU,IAAI,SAAS,KAAK,uBAAU,CAAC,MAAM,EAAE;YACjD,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;SAC/C;QAED,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC;CACF,CAAA;AAvBY,mBAAmB;IAH/B,IAAA,eAAU,EAAC;QACV,QAAQ,EAAE,CAAC,IAAI;KAChB,CAAC;GACW,mBAAmB,CAuB/B;AAvBY,kDAAmB","sourcesContent":["import {getValue} from \"@tsed/core\";\nimport {Injectable} from \"@tsed/di\";\nimport {JsonParameterStore, PipeMethods} from \"@tsed/schema\";\nimport {ParamTypes} from \"../domain/ParamTypes\";\nimport type {ArgScope} from \"../builder/PlatformParams\";\n\n@Injectable({\n priority: -1000\n})\nexport class ParseExpressionPipe implements PipeMethods {\n transform(scope: ArgScope, param: JsonParameterStore) {\n const {paramType, type} = param;\n\n const value = getValue(scope, this.getKey(param));\n\n if ([ParamTypes.QUERY, ParamTypes.PATH].includes(paramType as ParamTypes) && value === \"\" && type !== String) {\n return undefined;\n }\n\n return value;\n }\n\n protected getKey(param: JsonParameterStore) {\n let {expression, paramType, dataPath} = param;\n paramType = paramType || param.parameter.get(\"in\").toUpperCase();\n\n if (expression && paramType === ParamTypes.HEADER) {\n expression = String(expression).toLowerCase();\n }\n\n return [dataPath, expression].filter(Boolean).join(\".\");\n }\n}\n"]}
@@ -73,11 +73,11 @@ let ValidationPipe = class ValidationPipe {
73
73
  return true;
74
74
  }
75
75
  };
76
- ValidationPipe = (0, tslib_1.__decorate)([
76
+ ValidationPipe = tslib_1.__decorate([
77
77
  (0, di_1.Injectable)({
78
78
  type: "validator"
79
79
  }),
80
- (0, tslib_1.__metadata)("design:paramtypes", [di_1.InjectorService])
80
+ tslib_1.__metadata("design:paramtypes", [di_1.InjectorService])
81
81
  ], ValidationPipe);
82
82
  exports.ValidationPipe = ValidationPipe;
83
83
  //# sourceMappingURL=ValidationPipe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ValidationPipe.js","sourceRoot":"","sources":["../../../src/pipes/ValidationPipe.ts"],"names":[],"mappings":"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","sourcesContent":["import {nameOf} from \"@tsed/core\";\nimport {Injectable, InjectorService} from \"@tsed/di\";\nimport {deserialize} from \"@tsed/json-mapper\";\nimport {getJsonSchema} from \"@tsed/schema\";\nimport {RequiredValidationError} from \"../errors/RequiredValidationError\";\nimport {ParamMetadata, PipeMethods} from \"../domain/ParamMetadata\";\nimport {ParamTypes} from \"../domain/ParamTypes\";\n\nfunction cast(value: any, metadata: ParamMetadata) {\n try {\n return deserialize(value, {\n type: metadata.type\n });\n } catch (er) {\n return value;\n }\n}\n\n@Injectable({\n type: \"validator\"\n})\nexport class ValidationPipe implements PipeMethods {\n private validator: {validate(value: any, options: any): Promise<any>};\n\n constructor(injector: InjectorService) {\n const provider = injector.getProviders().find((provider) => nameOf(provider.token) === \"AjvService\");\n\n if (provider) {\n this.validator = injector.invoke<any>(provider.token);\n }\n }\n\n coerceTypes(value: any, metadata: ParamMetadata) {\n if (value === undefined) {\n return value;\n }\n\n if (value === \"null\") {\n return null;\n }\n\n if (metadata.isArray) {\n return [].concat(value);\n }\n\n if (metadata.isPrimitive) {\n return cast(value, metadata);\n }\n\n return value;\n }\n\n skip(value: any, metadata: ParamMetadata) {\n return metadata.paramType === ParamTypes.PATH && !metadata.isPrimitive;\n }\n\n async transform(value: any, metadata: ParamMetadata): Promise<any> {\n if (!this.validator) {\n this.checkIsRequired(value, metadata);\n return value;\n }\n\n if (this.skip(value, metadata)) {\n return value;\n }\n\n value = this.coerceTypes(value, metadata);\n\n this.checkIsRequired(value, metadata);\n\n if (value === undefined) {\n return value;\n }\n\n const schema = getJsonSchema(metadata, {\n customKeys: true\n });\n\n await this.validator.validate(value, {\n schema,\n type: metadata.isClass ? metadata.type : undefined,\n collectionType: metadata.collectionType\n });\n\n return value;\n }\n\n protected checkIsRequired(value: any, metadata: ParamMetadata) {\n if (metadata.isRequired(value)) {\n throw RequiredValidationError.from(metadata);\n }\n\n return true;\n }\n}\n"]}
1
+ {"version":3,"file":"ValidationPipe.js","sourceRoot":"","sources":["../../../src/pipes/ValidationPipe.ts"],"names":[],"mappings":"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","sourcesContent":["import {nameOf} from \"@tsed/core\";\nimport {Injectable, InjectorService} from \"@tsed/di\";\nimport {deserialize} from \"@tsed/json-mapper\";\nimport {getJsonSchema, JsonParameterStore, PipeMethods} from \"@tsed/schema\";\nimport {RequiredValidationError} from \"../errors/RequiredValidationError\";\nimport {ParamTypes} from \"../domain/ParamTypes\";\n\nfunction cast(value: any, metadata: JsonParameterStore) {\n try {\n return deserialize(value, {\n type: metadata.type\n });\n } catch (er) {\n return value;\n }\n}\n\n@Injectable({\n type: \"validator\"\n})\nexport class ValidationPipe implements PipeMethods {\n private validator: {validate(value: any, options: any): Promise<any>};\n\n constructor(injector: InjectorService) {\n const provider = injector.getProviders().find((provider) => nameOf(provider.token) === \"AjvService\");\n\n if (provider) {\n this.validator = injector.invoke<any>(provider.token);\n }\n }\n\n coerceTypes(value: any, metadata: JsonParameterStore) {\n if (value === undefined) {\n return value;\n }\n\n if (value === \"null\") {\n return null;\n }\n\n if (metadata.isArray) {\n return [].concat(value);\n }\n\n if (metadata.isPrimitive) {\n return cast(value, metadata);\n }\n\n return value;\n }\n\n skip(value: any, metadata: JsonParameterStore) {\n return metadata.paramType === ParamTypes.PATH && !metadata.isPrimitive;\n }\n\n async transform(value: any, metadata: JsonParameterStore): Promise<any> {\n if (!this.validator) {\n this.checkIsRequired(value, metadata);\n return value;\n }\n\n if (this.skip(value, metadata)) {\n return value;\n }\n\n value = this.coerceTypes(value, metadata);\n\n this.checkIsRequired(value, metadata);\n\n if (value === undefined) {\n return value;\n }\n\n const schema = getJsonSchema(metadata, {\n customKeys: true\n });\n\n await this.validator.validate(value, {\n schema,\n type: metadata.isClass ? metadata.type : undefined,\n collectionType: metadata.collectionType\n });\n\n return value;\n }\n\n protected checkIsRequired(value: any, metadata: JsonParameterStore) {\n if (metadata.isRequired(value)) {\n throw RequiredValidationError.from(metadata);\n }\n\n return true;\n }\n}\n"]}
@@ -1,8 +1,8 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import { Inject, Injectable, InjectorService, ProviderScope } from "@tsed/di";
3
3
  import { JsonEntityStore, JsonParameterStore } from "@tsed/schema";
4
- import { ParamValidationError } from "../errors/ParamValidationError";
5
- import { ParseExpressionPipe } from "../pipes/ParseExpressionPipe";
4
+ import { ParamValidationError } from "../errors/ParamValidationError.js";
5
+ import { ParseExpressionPipe } from "../pipes/ParseExpressionPipe.js";
6
6
  /**
7
7
  * Platform Params abstraction layer.
8
8
  * @platform
@@ -49,16 +49,14 @@ let PlatformParams = class PlatformParams {
49
49
  const getArguments = getCustomArgs || (await this.compile(JsonEntityStore.fromMethod(token, propertyKey)));
50
50
  if (!provider || !provider.scope || provider.scope === ProviderScope.SINGLETON) {
51
51
  const instance = await this.injector.invoke(token);
52
- const handler = instance[propertyKey].bind(instance);
53
52
  return async (scope) => {
54
53
  const args = await getArguments(scope);
55
- return handler(...args, scope.$ctx);
54
+ return instance[propertyKey].call(instance, ...args, scope.$ctx);
56
55
  };
57
56
  }
58
57
  return async (scope) => {
59
58
  const [instance, args] = await Promise.all([this.injector.invoke(token, scope.$ctx.container), getArguments(scope)]);
60
- const handler = instance[propertyKey].bind(instance);
61
- return handler(...args, scope.$ctx);
59
+ return instance[propertyKey].call(instance, ...args, scope.$ctx);
62
60
  };
63
61
  }
64
62
  };
@@ -1 +1 @@
1
- {"version":3,"file":"PlatformParams.js","sourceRoot":"","sources":["../../../src/builder/PlatformParams.ts"],"names":[],"mappings":"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","sourcesContent":["import {DIContext, Inject, Injectable, InjectorService, ProviderScope, TokenProvider} from \"@tsed/di\";\nimport {JsonEntityStore, JsonParameterStore} from \"@tsed/schema\";\nimport {ParamMetadata, PipeMethods} from \"../domain/ParamMetadata\";\nimport {ParamValidationError} from \"../errors/ParamValidationError\";\nimport {ParseExpressionPipe} from \"../pipes/ParseExpressionPipe\";\n\nexport type ArgScope<Context extends DIContext = DIContext> = {$ctx: Context} & Record<string, any>;\nexport type HandlerWithScope<Context extends DIContext = DIContext> = (scope: ArgScope<Context>) => any;\n\nexport interface CompileHandlerOptions<Context extends DIContext = DIContext> extends Record<any, unknown> {\n token: TokenProvider;\n propertyKey: string | symbol;\n getCustomArgs?: (scope: ArgScope<Context>) => Promise<any[]>;\n}\n\n/**\n * Platform Params abstraction layer.\n * @platform\n */\n@Injectable({\n scope: ProviderScope.SINGLETON,\n imports: []\n})\nexport class PlatformParams {\n @Inject()\n protected injector: InjectorService;\n\n async getPipes(param: ParamMetadata) {\n const get = (pipe: TokenProvider) => {\n return this.injector.getProvider(pipe)!.priority || 0;\n };\n\n const sort = (p1: TokenProvider, p2: TokenProvider) => (get(p1) < get(p2) ? -1 : get(p1) > get(p2) ? 1 : 0);\n const map = (token: TokenProvider) => this.injector.invoke<PipeMethods>(token)!;\n const promises = await Promise.all([ParseExpressionPipe, ...param.pipes.sort(sort)].map(map));\n\n return promises.filter(Boolean);\n }\n\n async compile<Context extends DIContext = DIContext>(entity: JsonEntityStore) {\n const params = JsonParameterStore.getParams(entity.target, entity.propertyKey);\n\n const argsPipes = await Promise.all(\n params.map(async (param: ParamMetadata) => {\n return {\n param,\n pipes: await this.getPipes(param)\n };\n })\n );\n\n return (scope: ArgScope<Context>) => {\n const promises = argsPipes.map(({param, pipes}) => {\n return this.getArg(scope, pipes, param);\n });\n\n return Promise.all(promises);\n };\n }\n\n async getArg(scope: ArgScope, pipes: PipeMethods[], param: ParamMetadata) {\n return pipes.reduce(async (value, pipe) => {\n value = await value;\n\n try {\n return await pipe.transform(value, param);\n } catch (er) {\n throw ParamValidationError.from(param, er);\n }\n }, scope as any);\n }\n\n async compileHandler<Context extends DIContext = DIContext>(\n metadata: CompileHandlerOptions<Context>\n ): Promise<HandlerWithScope<Context>> {\n const {token, propertyKey, getCustomArgs} = metadata;\n\n const provider = this.injector.getProvider(token);\n const getArguments = getCustomArgs || (await this.compile<Context>(JsonEntityStore.fromMethod(token, propertyKey!)));\n\n if (!provider || !provider.scope || provider.scope === ProviderScope.SINGLETON) {\n const instance = await this.injector.invoke<any>(token);\n const handler = instance[propertyKey!].bind(instance);\n\n return async (scope) => {\n const args = await getArguments(scope);\n\n return handler(...args, scope.$ctx);\n };\n }\n\n return async (scope) => {\n const [instance, args] = await Promise.all([this.injector.invoke<any>(token, scope.$ctx.container), getArguments(scope)]);\n\n const handler = instance[propertyKey!].bind(instance);\n\n return handler(...args, scope.$ctx);\n };\n }\n}\n"]}
1
+ {"version":3,"file":"PlatformParams.js","sourceRoot":"","sources":["../../../src/builder/PlatformParams.ts"],"names":[],"mappings":";AAAA,OAAO,EAAY,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAgB,MAAM,UAAU,CAAC;AACtG,OAAO,EAAC,eAAe,EAAE,kBAAkB,EAAc,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAC,mBAAmB,EAAC,MAAM,8BAA8B,CAAC;AAWjE;;;GAGG;AAKH,IAAa,cAAc,GAA3B,MAAa,cAAc;IAIzB,KAAK,CAAC,QAAQ,CAAC,KAAyB;QACtC,MAAM,GAAG,GAAG,CAAC,IAAmB,EAAE,EAAE;YAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAE,CAAC,QAAQ,IAAI,CAAC,CAAC;QACxD,CAAC,CAAC;QAEF,MAAM,IAAI,GAAG,CAAC,EAAiB,EAAE,EAAiB,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5G,MAAM,GAAG,GAAG,CAAC,KAAoB,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAc,KAAK,CAAE,CAAC;QAChF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,mBAAmB,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAE9F,OAAO,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,OAAO,CAAwC,MAAuB;QAC1E,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAE/E,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACzB,OAAO;gBACL,KAAK;gBACL,KAAK,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;aAClC,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;QAEF,OAAO,CAAC,KAAwB,EAAE,EAAE;YAClC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAC,KAAK,EAAE,KAAK,EAAC,EAAE,EAAE;gBAChD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;YAEH,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAe,EAAE,KAAoB,EAAE,KAAyB;QAC3E,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACxC,KAAK,GAAG,MAAM,KAAK,CAAC;YAEpB,IAAI;gBACF,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;aAC3C;YAAC,OAAO,EAAE,EAAE;gBACX,MAAM,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;aAC5C;QACH,CAAC,EAAE,KAAY,CAAC,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,QAAwC;QAExC,MAAM,EAAC,KAAK,EAAE,WAAW,EAAE,aAAa,EAAC,GAAG,QAAQ,CAAC;QAErD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,YAAY,GAAG,aAAa,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAU,eAAe,CAAC,UAAU,CAAC,KAAK,EAAE,WAAY,CAAC,CAAC,CAAC,CAAC;QAErH,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,KAAK,aAAa,CAAC,SAAS,EAAE;YAC9E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAM,KAAK,CAAC,CAAC;YAExD,OAAO,KAAK,EAAE,KAAK,EAAE,EAAE;gBACrB,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;gBAEvC,OAAO,QAAQ,CAAC,WAAY,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACpE,CAAC,CAAC;SACH;QAED,OAAO,KAAK,EAAE,KAAK,EAAE,EAAE;YACrB,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAM,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAE1H,OAAO,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACnE,CAAC,CAAC;IACJ,CAAC;CACF,CAAA;AAvEC;IADC,MAAM,EAAE;8BACW,eAAe;gDAAC;AAFzB,cAAc;IAJ1B,UAAU,CAAC;QACV,KAAK,EAAE,aAAa,CAAC,SAAS;QAC9B,OAAO,EAAE,EAAE;KACZ,CAAC;GACW,cAAc,CAyE1B;SAzEY,cAAc","sourcesContent":["import {DIContext, Inject, Injectable, InjectorService, ProviderScope, TokenProvider} from \"@tsed/di\";\nimport {JsonEntityStore, JsonParameterStore, PipeMethods} from \"@tsed/schema\";\nimport {ParamValidationError} from \"../errors/ParamValidationError\";\nimport {ParseExpressionPipe} from \"../pipes/ParseExpressionPipe\";\n\nexport type ArgScope<Context extends DIContext = DIContext> = {$ctx: Context} & Record<string, any>;\nexport type HandlerWithScope<Context extends DIContext = DIContext> = (scope: ArgScope<Context>) => any;\n\nexport interface CompileHandlerOptions<Context extends DIContext = DIContext> extends Record<any, unknown> {\n token: TokenProvider;\n propertyKey: string | symbol;\n getCustomArgs?: (scope: ArgScope<Context>) => Promise<any[]>;\n}\n\n/**\n * Platform Params abstraction layer.\n * @platform\n */\n@Injectable({\n scope: ProviderScope.SINGLETON,\n imports: []\n})\nexport class PlatformParams {\n @Inject()\n protected injector: InjectorService;\n\n async getPipes(param: JsonParameterStore) {\n const get = (pipe: TokenProvider) => {\n return this.injector.getProvider(pipe)!.priority || 0;\n };\n\n const sort = (p1: TokenProvider, p2: TokenProvider) => (get(p1) < get(p2) ? -1 : get(p1) > get(p2) ? 1 : 0);\n const map = (token: TokenProvider) => this.injector.invoke<PipeMethods>(token)!;\n const promises = await Promise.all([ParseExpressionPipe, ...param.pipes.sort(sort)].map(map));\n\n return promises.filter(Boolean);\n }\n\n async compile<Context extends DIContext = DIContext>(entity: JsonEntityStore) {\n const params = JsonParameterStore.getParams(entity.target, entity.propertyKey);\n\n const argsPipes = await Promise.all(\n params.map(async (param) => {\n return {\n param,\n pipes: await this.getPipes(param)\n };\n })\n );\n\n return (scope: ArgScope<Context>) => {\n const promises = argsPipes.map(({param, pipes}) => {\n return this.getArg(scope, pipes, param);\n });\n\n return Promise.all(promises);\n };\n }\n\n async getArg(scope: ArgScope, pipes: PipeMethods[], param: JsonParameterStore) {\n return pipes.reduce(async (value, pipe) => {\n value = await value;\n\n try {\n return await pipe.transform(value, param);\n } catch (er) {\n throw ParamValidationError.from(param, er);\n }\n }, scope as any);\n }\n\n async compileHandler<Context extends DIContext = DIContext>(\n metadata: CompileHandlerOptions<Context>\n ): Promise<HandlerWithScope<Context>> {\n const {token, propertyKey, getCustomArgs} = metadata;\n\n const provider = this.injector.getProvider(token);\n const getArguments = getCustomArgs || (await this.compile<Context>(JsonEntityStore.fromMethod(token, propertyKey!)));\n\n if (!provider || !provider.scope || provider.scope === ProviderScope.SINGLETON) {\n const instance = await this.injector.invoke<any>(token);\n\n return async (scope) => {\n const args = await getArguments(scope);\n\n return instance[propertyKey!].call(instance, ...args, scope.$ctx);\n };\n }\n\n return async (scope) => {\n const [instance, args] = await Promise.all([this.injector.invoke<any>(token, scope.$ctx.container), getArguments(scope)]);\n\n return instance[propertyKey].call(instance, ...args, scope.$ctx);\n };\n }\n}\n"]}
@@ -1,13 +1,10 @@
1
- import { useDecorators } from "@tsed/core";
2
- import { ParamTypes } from "../domain/ParamTypes";
3
- import { UseParam } from "./useParam";
4
- import { mapParamsOptions } from "../utils/mapParamsOptions";
5
- import { JsonEntityFn } from "@tsed/schema";
1
+ import { ParamTypes } from "../domain/ParamTypes.js";
2
+ import { UseParam } from "./useParam.js";
3
+ import { mapParamsOptions } from "../utils/mapParamsOptions.js";
6
4
  export function BodyParams(...args) {
7
5
  const { expression, useType, useConverter = true, useValidation = true } = mapParamsOptions(args);
8
6
  return UseParam({
9
7
  paramType: ParamTypes.BODY,
10
- dataPath: "$ctx.request.body",
11
8
  expression,
12
9
  useType,
13
10
  useConverter,
@@ -32,17 +29,13 @@ export function BodyParams(...args) {
32
29
  * @decorator
33
30
  * @operation
34
31
  * @input
32
+ * @alias BodyParams Example: @BodyParams() payload: Buffer
35
33
  */
36
34
  export function RawBodyParams() {
37
- return useDecorators(UseParam({
35
+ return UseParam({
38
36
  paramType: ParamTypes.RAW_BODY,
39
- dataPath: "$ctx.request.rawBody",
40
- useType: String,
41
37
  useConverter: false,
42
38
  useValidation: false
43
- }), JsonEntityFn((entity) => {
44
- var _a;
45
- (_a = entity.parent.operation) === null || _a === void 0 ? void 0 : _a.consumes(["*/*"]);
46
- }));
39
+ });
47
40
  }
48
41
  //# sourceMappingURL=bodyParams.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bodyParams.js","sourceRoot":"","sources":["../../../src/decorators/bodyParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,aAAa,EAAC,MAAM,YAAY,CAAC;AAE/C,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAC,YAAY,EAAC,MAAM,cAAc,CAAC;AA4C1C,MAAM,UAAU,UAAU,CAAC,GAAG,IAAW;IACvC,MAAM,EAAC,UAAU,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,EAAE,aAAa,GAAG,IAAI,EAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAEhG,OAAO,QAAQ,CAAC;QACd,SAAS,EAAE,UAAU,CAAC,IAAI;QAC1B,QAAQ,EAAE,mBAAmB;QAC7B,UAAU;QACV,OAAO;QACP,YAAY;QACZ,aAAa;KACd,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,aAAa,CAClB,QAAQ,CAAC;QACP,SAAS,EAAE,UAAU,CAAC,QAAQ;QAC9B,QAAQ,EAAE,sBAAsB;QAChC,OAAO,EAAE,MAAM;QACf,YAAY,EAAE,KAAK;QACnB,aAAa,EAAE,KAAK;KACrB,CAAC,EACF,YAAY,CAAC,CAAC,MAAM,EAAE,EAAE;;QACtB,MAAA,MAAM,CAAC,MAAM,CAAC,SAAS,0CAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CACH,CAAC;AACJ,CAAC","sourcesContent":["import {Type, useDecorators} from \"@tsed/core\";\nimport {ParamOptions} from \"../domain/ParamOptions\";\nimport {ParamTypes} from \"../domain/ParamTypes\";\nimport {UseParam} from \"./useParam\";\nimport {mapParamsOptions} from \"../utils/mapParamsOptions\";\nimport {JsonEntityFn} from \"@tsed/schema\";\n\n/**\n * BodyParams return the value from [request.body](http://expressjs.com/en/4x/api.html#req.body) object.\n *\n * #### Example\n *\n * ```typescript\n * @Controller('/')\n * class MyCtrl {\n * @Post('/')\n * create(@BodyParams() body: any) {\n * console.log('Entire body', body);\n * }\n *\n * @Post('/')\n * create(@BodyParams('id') id: string) {\n * console.log('ID', id);\n * }\n *\n * @Post('/')\n * create(@BodyParams('user') user: User) { // with deserialization\n * console.log('user', user);\n * }\n *\n * @Post('/')\n * create(@BodyParams('users', User) users: User[]) { // with deserialization\n * console.log('users', users);\n * }\n * }\n * ```\n * > For more information on deserialization see [converters](/docs/converters.md) page.\n *\n * @param expression The path of the property to get.\n * @param useType The type of the class that to be used to deserialize the data.\n * @decorator\n * @operation\n * @input\n */\nexport function BodyParams(expression: string, useType: Type<any>): ParameterDecorator;\nexport function BodyParams(expression: string): ParameterDecorator;\nexport function BodyParams(useType: Type<any>): ParameterDecorator;\nexport function BodyParams(options: Partial<ParamOptions>): ParameterDecorator;\nexport function BodyParams(): ParameterDecorator;\nexport function BodyParams(...args: any[]): ParameterDecorator {\n const {expression, useType, useConverter = true, useValidation = true} = mapParamsOptions(args);\n\n return UseParam({\n paramType: ParamTypes.BODY,\n dataPath: \"$ctx.request.body\",\n expression,\n useType,\n useConverter,\n useValidation\n });\n}\n\n/**\n * RawBodyParams return the value from [request.body](http://expressjs.com/en/4x/api.html#req.body) as a Buffer.\n *\n * #### Example\n *\n * ```typescript\n * @Controller('/')\n * class MyCtrl {\n * @Post('/')\n * create(@RawBodyParams() body: Buffer) {\n * console.log('Entire body', body.toString(\"utf8\"));\n * }\n * }\n * ```\n *\n * @decorator\n * @operation\n * @input\n */\nexport function RawBodyParams(): ParameterDecorator {\n return useDecorators(\n UseParam({\n paramType: ParamTypes.RAW_BODY,\n dataPath: \"$ctx.request.rawBody\",\n useType: String,\n useConverter: false,\n useValidation: false\n }),\n JsonEntityFn((entity) => {\n entity.parent.operation?.consumes([\"*/*\"]);\n })\n );\n}\n"]}
1
+ {"version":3,"file":"bodyParams.js","sourceRoot":"","sources":["../../../src/decorators/bodyParams.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AA4C3D,MAAM,UAAU,UAAU,CAAC,GAAG,IAAW;IACvC,MAAM,EAAC,UAAU,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,EAAE,aAAa,GAAG,IAAI,EAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAEhG,OAAO,QAAQ,CAAC;QACd,SAAS,EAAE,UAAU,CAAC,IAAI;QAC1B,UAAU;QACV,OAAO;QACP,YAAY;QACZ,aAAa;KACd,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,QAAQ,CAAC;QACd,SAAS,EAAE,UAAU,CAAC,QAAQ;QAC9B,YAAY,EAAE,KAAK;QACnB,aAAa,EAAE,KAAK;KACrB,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {Type} from \"@tsed/core\";\nimport {ParamOptions} from \"../domain/ParamOptions\";\nimport {ParamTypes} from \"../domain/ParamTypes\";\nimport {UseParam} from \"./useParam\";\nimport {mapParamsOptions} from \"../utils/mapParamsOptions\";\n\n/**\n * BodyParams return the value from [request.body](http://expressjs.com/en/4x/api.html#req.body) object.\n *\n * #### Example\n *\n * ```typescript\n * @Controller('/')\n * class MyCtrl {\n * @Post('/')\n * create(@BodyParams() body: any) {\n * console.log('Entire body', body);\n * }\n *\n * @Post('/')\n * create(@BodyParams('id') id: string) {\n * console.log('ID', id);\n * }\n *\n * @Post('/')\n * create(@BodyParams('user') user: User) { // with deserialization\n * console.log('user', user);\n * }\n *\n * @Post('/')\n * create(@BodyParams('users', User) users: User[]) { // with deserialization\n * console.log('users', users);\n * }\n * }\n * ```\n * > For more information on deserialization see [converters](/docs/converters.md) page.\n *\n * @param expression The path of the property to get.\n * @param useType The type of the class that to be used to deserialize the data.\n * @decorator\n * @operation\n * @input\n */\nexport function BodyParams(expression: string, useType: Type<any>): ParameterDecorator;\nexport function BodyParams(expression: string): ParameterDecorator;\nexport function BodyParams(useType: Type<any>): ParameterDecorator;\nexport function BodyParams(options: Partial<ParamOptions>): ParameterDecorator;\nexport function BodyParams(): ParameterDecorator;\nexport function BodyParams(...args: any[]): ParameterDecorator {\n const {expression, useType, useConverter = true, useValidation = true} = mapParamsOptions(args);\n\n return UseParam({\n paramType: ParamTypes.BODY,\n expression,\n useType,\n useConverter,\n useValidation\n });\n}\n\n/**\n * RawBodyParams return the value from [request.body](http://expressjs.com/en/4x/api.html#req.body) as a Buffer.\n *\n * #### Example\n *\n * ```typescript\n * @Controller('/')\n * class MyCtrl {\n * @Post('/')\n * create(@RawBodyParams() body: Buffer) {\n * console.log('Entire body', body.toString(\"utf8\"));\n * }\n * }\n * ```\n *\n * @decorator\n * @operation\n * @input\n * @alias BodyParams Example: @BodyParams() payload: Buffer\n */\nexport function RawBodyParams(): ParameterDecorator {\n return UseParam({\n paramType: ParamTypes.RAW_BODY,\n useConverter: false,\n useValidation: false\n });\n}\n"]}
@@ -1,11 +1,10 @@
1
- import { ParamTypes } from "../domain/ParamTypes";
2
- import { mapParamsOptions } from "../utils/mapParamsOptions";
3
- import { UseParam } from "./useParam";
1
+ import { ParamTypes } from "../domain/ParamTypes.js";
2
+ import { mapParamsOptions } from "../utils/mapParamsOptions.js";
3
+ import { UseParam } from "./useParam.js";
4
4
  export function Context(...args) {
5
5
  const { expression, useType, useConverter = false, useValidation = false } = mapParamsOptions(args);
6
6
  return UseParam({
7
7
  paramType: ParamTypes.$CTX,
8
- dataPath: "$ctx",
9
8
  expression,
10
9
  useType,
11
10
  useConverter,
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/decorators/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AA2DpC,MAAM,UAAU,OAAO,CAAC,GAAG,IAAW;IACpC,MAAM,EAAC,UAAU,EAAE,OAAO,EAAE,YAAY,GAAG,KAAK,EAAE,aAAa,GAAG,KAAK,EAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAElG,OAAO,QAAQ,CAAC;QACd,SAAS,EAAE,UAAU,CAAC,IAAI;QAC1B,QAAQ,EAAE,MAAM;QAChB,UAAU;QACV,OAAO;QACP,YAAY;QACZ,aAAa;KACd,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {BaseContext} from \"@tsed/di\";\nimport {ParamTypes} from \"../domain/ParamTypes\";\nimport {mapParamsOptions} from \"../utils/mapParamsOptions\";\nimport {UseParam} from \"./useParam\";\n\ndeclare global {\n namespace TsED {\n export interface Context {}\n }\n}\n\n/**\n * Context decorator return the @@PlatformContext@@ created by Ts.ED when request is handled by the server.\n *\n * It contains some information as following:\n *\n * - The request id,\n * - The request container used by the Ts.ED DI. It contain all services annotated with `@Scope(ProviderScope.REQUEST)`,\n * - The current @@EndpointMetadata@@ resolved by Ts.ED during the request,\n * - The data return by the previous endpoint if you use multiple handler on the same route. By default data is empty.\n *\n * ::: tip\n * The @@PlatformContext@@ inherit from Map class. So you can store any information with.\n * :::\n *\n * #### Example\n *\n * ```typescript\n * @Middleware()\n * class AuthTokenMiddleware {\n * use(@Req() request: Req, @Context() context: PlatformContext) {\n * if (!context.has(\"auth\")){\n * context.set('auth', new AuthToken(request))\n * }\n *\n * try {\n * context.get(\"auth\").claims() // check token\n * } catch(er){\n * throw new Forbidden(\"Access forbidden - Bad token\")\n * }\n * }\n * }\n *\n * @Controller('/')\n * @UseBefore(AuthTokenMiddleware) // protect all routes for this controller\n * class MyCtrl {\n * @Get('/')\n * get(@Context('auth') auth: AuthToken) {\n * console.log('auth', auth);\n * console.log('auth.accessToken', auth.accessToken);\n * console.log('auth.idToken', auth.idToken);\n * }\n * }\n * ```\n *\n * @param expression The path of the property to get.\n * @decorator\n * @operation\n * @input\n */\nexport function Context(expression: string): ParameterDecorator;\nexport function Context(): ParameterDecorator;\nexport function Context(...args: any[]): ParameterDecorator {\n const {expression, useType, useConverter = false, useValidation = false} = mapParamsOptions(args);\n\n return UseParam({\n paramType: ParamTypes.$CTX,\n dataPath: \"$ctx\",\n expression,\n useType,\n useConverter,\n useValidation\n });\n}\n\nexport type Context = BaseContext;\n"]}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/decorators/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAqDpC,MAAM,UAAU,OAAO,CAAC,GAAG,IAAW;IACpC,MAAM,EAAC,UAAU,EAAE,OAAO,EAAE,YAAY,GAAG,KAAK,EAAE,aAAa,GAAG,KAAK,EAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAElG,OAAO,QAAQ,CAAC;QACd,SAAS,EAAE,UAAU,CAAC,IAAI;QAC1B,UAAU;QACV,OAAO;QACP,YAAY;QACZ,aAAa;KACd,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {BaseContext} from \"@tsed/di\";\nimport {ParamTypes} from \"../domain/ParamTypes\";\nimport {mapParamsOptions} from \"../utils/mapParamsOptions\";\nimport {UseParam} from \"./useParam\";\n\n/**\n * Context decorator return the @@PlatformContext@@ created by Ts.ED when request is handled by the server.\n *\n * It contains some information as following:\n *\n * - The request id,\n * - The request container used by the Ts.ED DI. It contain all services annotated with `@Scope(ProviderScope.REQUEST)`,\n * - The current @@EndpointMetadata@@ resolved by Ts.ED during the request,\n * - The data return by the previous endpoint if you use multiple handler on the same route. By default data is empty.\n *\n * ::: tip\n * The @@PlatformContext@@ inherit from Map class. So you can store any information with.\n * :::\n *\n * #### Example\n *\n * ```typescript\n * @Middleware()\n * class AuthTokenMiddleware {\n * use(@Req() request: Req, @Context() context: PlatformContext) {\n * if (!context.has(\"auth\")){\n * context.set('auth', new AuthToken(request))\n * }\n *\n * try {\n * context.get(\"auth\").claims() // check token\n * } catch(er){\n * throw new Forbidden(\"Access forbidden - Bad token\")\n * }\n * }\n * }\n *\n * @Controller('/')\n * @UseBefore(AuthTokenMiddleware) // protect all routes for this controller\n * class MyCtrl {\n * @Get('/')\n * get(@Context('auth') auth: AuthToken) {\n * console.log('auth', auth);\n * console.log('auth.accessToken', auth.accessToken);\n * console.log('auth.idToken', auth.idToken);\n * }\n * }\n * ```\n *\n * @param expression The path of the property to get.\n * @decorator\n * @operation\n * @input\n */\nexport function Context(expression: string): ParameterDecorator;\nexport function Context(): ParameterDecorator;\nexport function Context(...args: any[]): ParameterDecorator {\n const {expression, useType, useConverter = false, useValidation = false} = mapParamsOptions(args);\n\n return UseParam({\n paramType: ParamTypes.$CTX,\n expression,\n useType,\n useConverter,\n useValidation\n });\n}\n\nexport type Context = BaseContext;\n"]}
@@ -1,11 +1,10 @@
1
- import { ParamTypes } from "../domain/ParamTypes";
2
- import { mapParamsOptions } from "../utils/mapParamsOptions";
3
- import { UseParam } from "./useParam";
1
+ import { ParamTypes } from "../domain/ParamTypes.js";
2
+ import { mapParamsOptions } from "../utils/mapParamsOptions.js";
3
+ import { UseParam } from "./useParam.js";
4
4
  export function CookiesParams(...args) {
5
5
  const { expression, useType, useConverter = false, useValidation = false } = mapParamsOptions(args);
6
6
  return UseParam({
7
7
  paramType: ParamTypes.COOKIES,
8
- dataPath: "$ctx.request.cookies",
9
8
  expression,
10
9
  useType,
11
10
  useConverter,
@@ -1 +1 @@
1
- {"version":3,"file":"cookies.js","sourceRoot":"","sources":["../../../src/decorators/cookies.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAsCpC,MAAM,UAAU,aAAa,CAAC,GAAG,IAAW;IAC1C,MAAM,EAAC,UAAU,EAAE,OAAO,EAAE,YAAY,GAAG,KAAK,EAAE,aAAa,GAAG,KAAK,EAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAElG,OAAO,QAAQ,CAAC;QACd,SAAS,EAAE,UAAU,CAAC,OAAO;QAC7B,QAAQ,EAAE,sBAAsB;QAChC,UAAU;QACV,OAAO;QACP,YAAY;QACZ,aAAa;KACd,CAAC,CAAC;AACL,CAAC;AA6CD,MAAM,UAAU,OAAO,CAAC,GAAG,IAAW;IACpC,aAAa;IACb,OAAO,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC;AAChC,CAAC","sourcesContent":["import {Type} from \"@tsed/core\";\nimport {ParamOptions} from \"../domain/ParamOptions\";\nimport {ParamTypes} from \"../domain/ParamTypes\";\nimport {mapParamsOptions} from \"../utils/mapParamsOptions\";\nimport {UseParam} from \"./useParam\";\n\n/**\n * Cookies or CookiesParams return the value from [request.cookies](http://expressjs.com/en/4x/api.html#req.cookies) object.\n *\n * #### Example\n *\n * ```typescript\n * @Controller('/')\n * class MyCtrl {\n * @Post('/')\n * create(@Cookies() cookies: any) {\n * console.log('Entire cookies', cookies);\n * }\n *\n * @Post('/')\n * create(@Cookies('id') id: string) {\n * console.log('ID', id);\n * }\n *\n * @Post('/')\n * create(@Cookies('user') user: IUser) {\n * console.log('user', user);\n * }\n * }\n * ```\n * > For more information on deserialization see [converters](/docs/converters.md) page.\n *\n * @param expression The path of the property to get.\n * @param useType The type of the class that to be used to deserialize the data.\n * @decorator\n * @operation\n * @input\n */\nexport function CookiesParams(expression: string | any, useType: any): ParameterDecorator;\nexport function CookiesParams(): ParameterDecorator;\nexport function CookiesParams(expression: string | any): ParameterDecorator;\nexport function CookiesParams(options: ParamOptions<any>): ParameterDecorator;\nexport function CookiesParams(...args: any[]): ParameterDecorator {\n const {expression, useType, useConverter = false, useValidation = false} = mapParamsOptions(args);\n\n return UseParam({\n paramType: ParamTypes.COOKIES,\n dataPath: \"$ctx.request.cookies\",\n expression,\n useType,\n useConverter,\n useValidation\n });\n}\n\n/**\n * Cookies or CookiesParams return the value from [request.cookies](http://expressjs.com/en/4x/api.html#req.cookies) object.\n *\n * #### Example\n *\n * ```typescript\n * @Controller('/')\n * class MyCtrl {\n * @Post('/')\n * create(@Cookies() body: any) {\n * console.log('Entire body', body);\n * }\n *\n * @Post('/')\n * create(@Cookies('id') id: string) {\n * console.log('ID', id);\n * }\n *\n * @Post('/')\n * create(@Cookies('user') user: User) { // with deserialization\n * console.log('user', user);\n * }\n *\n * @Post('/')\n * create(@Cookies('users', User) users: User[]) { // with deserialization\n * console.log('users', users);\n * }\n * }\n * ```\n * > For more information on deserialization see [converters](/docs/converters.md) page.\n *\n * @param expression The path of the property to get.\n * @param useType The type of the class that to be used to deserialize the data.\n * @decorator\n * @aliasof CookiesParams\n * @operation\n * @input\n */\nexport function Cookies(expression: string, useType: Type<any>): ParameterDecorator;\nexport function Cookies(expression: string): ParameterDecorator;\nexport function Cookies(useType: Type<any>): ParameterDecorator;\nexport function Cookies(options: Partial<ParamOptions>): ParameterDecorator;\nexport function Cookies(): ParameterDecorator;\nexport function Cookies(...args: any[]): ParameterDecorator {\n // @ts-ignore\n return CookiesParams(...args);\n}\n"]}
1
+ {"version":3,"file":"cookies.js","sourceRoot":"","sources":["../../../src/decorators/cookies.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAsCpC,MAAM,UAAU,aAAa,CAAC,GAAG,IAAW;IAC1C,MAAM,EAAC,UAAU,EAAE,OAAO,EAAE,YAAY,GAAG,KAAK,EAAE,aAAa,GAAG,KAAK,EAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAElG,OAAO,QAAQ,CAAC;QACd,SAAS,EAAE,UAAU,CAAC,OAAO;QAC7B,UAAU;QACV,OAAO;QACP,YAAY;QACZ,aAAa;KACd,CAAC,CAAC;AACL,CAAC;AA6CD,MAAM,UAAU,OAAO,CAAC,GAAG,IAAW;IACpC,aAAa;IACb,OAAO,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC;AAChC,CAAC","sourcesContent":["import {Type} from \"@tsed/core\";\nimport {ParamOptions} from \"../domain/ParamOptions\";\nimport {ParamTypes} from \"../domain/ParamTypes\";\nimport {mapParamsOptions} from \"../utils/mapParamsOptions\";\nimport {UseParam} from \"./useParam\";\n\n/**\n * Cookies or CookiesParams return the value from [request.cookies](http://expressjs.com/en/4x/api.html#req.cookies) object.\n *\n * #### Example\n *\n * ```typescript\n * @Controller('/')\n * class MyCtrl {\n * @Post('/')\n * create(@Cookies() cookies: any) {\n * console.log('Entire cookies', cookies);\n * }\n *\n * @Post('/')\n * create(@Cookies('id') id: string) {\n * console.log('ID', id);\n * }\n *\n * @Post('/')\n * create(@Cookies('user') user: IUser) {\n * console.log('user', user);\n * }\n * }\n * ```\n * > For more information on deserialization see [converters](/docs/converters.md) page.\n *\n * @param expression The path of the property to get.\n * @param useType The type of the class that to be used to deserialize the data.\n * @decorator\n * @operation\n * @input\n */\nexport function CookiesParams(expression: string | any, useType: any): ParameterDecorator;\nexport function CookiesParams(): ParameterDecorator;\nexport function CookiesParams(expression: string | any): ParameterDecorator;\nexport function CookiesParams(options: ParamOptions<any>): ParameterDecorator;\nexport function CookiesParams(...args: any[]): ParameterDecorator {\n const {expression, useType, useConverter = false, useValidation = false} = mapParamsOptions(args);\n\n return UseParam({\n paramType: ParamTypes.COOKIES,\n expression,\n useType,\n useConverter,\n useValidation\n });\n}\n\n/**\n * Cookies or CookiesParams return the value from [request.cookies](http://expressjs.com/en/4x/api.html#req.cookies) object.\n *\n * #### Example\n *\n * ```typescript\n * @Controller('/')\n * class MyCtrl {\n * @Post('/')\n * create(@Cookies() body: any) {\n * console.log('Entire body', body);\n * }\n *\n * @Post('/')\n * create(@Cookies('id') id: string) {\n * console.log('ID', id);\n * }\n *\n * @Post('/')\n * create(@Cookies('user') user: User) { // with deserialization\n * console.log('user', user);\n * }\n *\n * @Post('/')\n * create(@Cookies('users', User) users: User[]) { // with deserialization\n * console.log('users', users);\n * }\n * }\n * ```\n * > For more information on deserialization see [converters](/docs/converters.md) page.\n *\n * @param expression The path of the property to get.\n * @param useType The type of the class that to be used to deserialize the data.\n * @decorator\n * @aliasof CookiesParams\n * @operation\n * @input\n */\nexport function Cookies(expression: string, useType: Type<any>): ParameterDecorator;\nexport function Cookies(expression: string): ParameterDecorator;\nexport function Cookies(useType: Type<any>): ParameterDecorator;\nexport function Cookies(options: Partial<ParamOptions>): ParameterDecorator;\nexport function Cookies(): ParameterDecorator;\nexport function Cookies(...args: any[]): ParameterDecorator {\n // @ts-ignore\n return CookiesParams(...args);\n}\n"]}
@@ -1,11 +1,10 @@
1
- import { ParamTypes } from "../domain/ParamTypes";
2
- import { UseParam } from "./useParam";
3
- import { mapParamsOptions } from "../utils/mapParamsOptions";
1
+ import { ParamTypes } from "../domain/ParamTypes.js";
2
+ import { UseParam } from "./useParam.js";
3
+ import { mapParamsOptions } from "../utils/mapParamsOptions.js";
4
4
  export function HeaderParams(...args) {
5
5
  const { expression, useType, useConverter = false, useValidation = false } = mapParamsOptions(args);
6
6
  return UseParam({
7
7
  paramType: ParamTypes.HEADER,
8
- dataPath: "$ctx.request.headers",
9
8
  expression,
10
9
  useType,
11
10
  useConverter,
@@ -1 +1 @@
1
- {"version":3,"file":"headerParams.js","sourceRoot":"","sources":["../../../src/decorators/headerParams.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAkC3D,MAAM,UAAU,YAAY,CAAC,GAAG,IAAW;IACzC,MAAM,EAAC,UAAU,EAAE,OAAO,EAAE,YAAY,GAAG,KAAK,EAAE,aAAa,GAAG,KAAK,EAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAElG,OAAO,QAAQ,CAAC;QACd,SAAS,EAAE,UAAU,CAAC,MAAM;QAC5B,QAAQ,EAAE,sBAAsB;QAChC,UAAU;QACV,OAAO;QACP,YAAY;QACZ,aAAa;KACd,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {Type} from \"@tsed/core\";\nimport {ParamTypes} from \"../domain/ParamTypes\";\nimport {UseParam} from \"./useParam\";\nimport {mapParamsOptions} from \"../utils/mapParamsOptions\";\nimport {ParamOptions} from \"../domain/ParamOptions\";\n\n/**\n * HeaderParams return the value from [`request.get()`](http://expressjs.com/en/4x/api.html#req.get) method.\n *\n * #### Example\n *\n * ```typescript\n * @Controller('/')\n * class MyCtrl {\n * @Get('/')\n * get(@HeaderParams() body: any) {\n * console.log('Entire body', body);\n * }\n *\n * @Get('/')\n * get(@HeaderParams('x-token') token: string) {\n * console.log('token', id);\n * }\n * }\n * ```\n *\n * @param expression The path of the property to get.\n * @param useType\n * @decorator\n * @operation\n * @input\n */\nexport function HeaderParams(expression: string, useType: Type<any>): ParameterDecorator;\nexport function HeaderParams(expression: string): ParameterDecorator;\nexport function HeaderParams(useType: Type<any>): ParameterDecorator;\nexport function HeaderParams(options: Partial<ParamOptions>): ParameterDecorator;\nexport function HeaderParams(): ParameterDecorator;\nexport function HeaderParams(...args: any[]): ParameterDecorator {\n const {expression, useType, useConverter = false, useValidation = false} = mapParamsOptions(args);\n\n return UseParam({\n paramType: ParamTypes.HEADER,\n dataPath: \"$ctx.request.headers\",\n expression,\n useType,\n useConverter,\n useValidation\n });\n}\n"]}
1
+ {"version":3,"file":"headerParams.js","sourceRoot":"","sources":["../../../src/decorators/headerParams.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAkC3D,MAAM,UAAU,YAAY,CAAC,GAAG,IAAW;IACzC,MAAM,EAAC,UAAU,EAAE,OAAO,EAAE,YAAY,GAAG,KAAK,EAAE,aAAa,GAAG,KAAK,EAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAElG,OAAO,QAAQ,CAAC;QACd,SAAS,EAAE,UAAU,CAAC,MAAM;QAC5B,UAAU;QACV,OAAO;QACP,YAAY;QACZ,aAAa;KACd,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {Type} from \"@tsed/core\";\nimport {ParamTypes} from \"../domain/ParamTypes\";\nimport {UseParam} from \"./useParam\";\nimport {mapParamsOptions} from \"../utils/mapParamsOptions\";\nimport {ParamOptions} from \"../domain/ParamOptions\";\n\n/**\n * HeaderParams return the value from [`request.get()`](http://expressjs.com/en/4x/api.html#req.get) method.\n *\n * #### Example\n *\n * ```typescript\n * @Controller('/')\n * class MyCtrl {\n * @Get('/')\n * get(@HeaderParams() body: any) {\n * console.log('Entire body', body);\n * }\n *\n * @Get('/')\n * get(@HeaderParams('x-token') token: string) {\n * console.log('token', id);\n * }\n * }\n * ```\n *\n * @param expression The path of the property to get.\n * @param useType\n * @decorator\n * @operation\n * @input\n */\nexport function HeaderParams(expression: string, useType: Type<any>): ParameterDecorator;\nexport function HeaderParams(expression: string): ParameterDecorator;\nexport function HeaderParams(useType: Type<any>): ParameterDecorator;\nexport function HeaderParams(options: Partial<ParamOptions>): ParameterDecorator;\nexport function HeaderParams(): ParameterDecorator;\nexport function HeaderParams(...args: any[]): ParameterDecorator {\n const {expression, useType, useConverter = false, useValidation = false} = mapParamsOptions(args);\n\n return UseParam({\n paramType: ParamTypes.HEADER,\n expression,\n useType,\n useConverter,\n useValidation\n });\n}\n"]}
@@ -1,11 +1,10 @@
1
- import { ParamTypes } from "../domain/ParamTypes";
2
- import { mapParamsOptions } from "../utils/mapParamsOptions";
3
- import { UseParam } from "./useParam";
1
+ import { ParamTypes } from "../domain/ParamTypes.js";
2
+ import { mapParamsOptions } from "../utils/mapParamsOptions.js";
3
+ import { UseParam } from "./useParam.js";
4
4
  export function Locals(...args) {
5
5
  const { expression, useType, useConverter = false, useValidation = false } = mapParamsOptions(args);
6
6
  return UseParam({
7
7
  paramType: ParamTypes.LOCALS,
8
- dataPath: "$ctx.response.locals",
9
8
  expression,
10
9
  useType,
11
10
  useConverter,
@@ -1 +1 @@
1
- {"version":3,"file":"locals.js","sourceRoot":"","sources":["../../../src/decorators/locals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AA4CpC,MAAM,UAAU,MAAM,CAAC,GAAG,IAAW;IACnC,MAAM,EAAC,UAAU,EAAE,OAAO,EAAE,YAAY,GAAG,KAAK,EAAE,aAAa,GAAG,KAAK,EAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAElG,OAAO,QAAQ,CAAC;QACd,SAAS,EAAE,UAAU,CAAC,MAAM;QAC5B,QAAQ,EAAE,sBAAsB;QAChC,UAAU;QACV,OAAO;QACP,YAAY;QACZ,aAAa;KACd,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {ParamTypes} from \"../domain/ParamTypes\";\nimport {mapParamsOptions} from \"../utils/mapParamsOptions\";\nimport {UseParam} from \"./useParam\";\n\n/**\n * Locals return the value from [response.locals](http://expressjs.com/en/4x/api.html#res.locals) object.\n *\n * ::: tip\n * Locals are generally used by express and third-party like templating engine to render a page/template.\n * See [Templating](http://tsed.io/tutorials/templating.html) section for more details.\n * :::\n *\n * #### Example\n *\n * ```typescript\n * * @Middleware()\n * class LocalsMiddleware {\n * use(@Locals() locals: any) {\n * // set some on locals\n * locals.user = \"user\"\n * }\n * }\n *\n * @Controller('/')\n * @UseBefore(LocalsMiddleware)\n * class MyCtrl {\n * @Get('/')\n * @View('home.ejs') // will use locals and returned data to render the page\n * get(@Locals('user') user: any) {\n * console.log('user', user);\n *\n * return {\n * description: 'Hello world'\n * }\n * }\n * }\n * ```\n *\n * @param expression The path of the property to get.\n * @decorator\n * @operation\n * @input\n * @response\n */\nexport function Locals(expression: string): ParameterDecorator;\nexport function Locals(): ParameterDecorator;\nexport function Locals(...args: any[]): ParameterDecorator {\n const {expression, useType, useConverter = false, useValidation = false} = mapParamsOptions(args);\n\n return UseParam({\n paramType: ParamTypes.LOCALS,\n dataPath: \"$ctx.response.locals\",\n expression,\n useType,\n useConverter,\n useValidation\n });\n}\n"]}
1
+ {"version":3,"file":"locals.js","sourceRoot":"","sources":["../../../src/decorators/locals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AA4CpC,MAAM,UAAU,MAAM,CAAC,GAAG,IAAW;IACnC,MAAM,EAAC,UAAU,EAAE,OAAO,EAAE,YAAY,GAAG,KAAK,EAAE,aAAa,GAAG,KAAK,EAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAElG,OAAO,QAAQ,CAAC;QACd,SAAS,EAAE,UAAU,CAAC,MAAM;QAC5B,UAAU;QACV,OAAO;QACP,YAAY;QACZ,aAAa;KACd,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {ParamTypes} from \"../domain/ParamTypes\";\nimport {mapParamsOptions} from \"../utils/mapParamsOptions\";\nimport {UseParam} from \"./useParam\";\n\n/**\n * Locals return the value from [response.locals](http://expressjs.com/en/4x/api.html#res.locals) object.\n *\n * ::: tip\n * Locals are generally used by express and third-party like templating engine to render a page/template.\n * See [Templating](http://tsed.io/tutorials/templating.html) section for more details.\n * :::\n *\n * #### Example\n *\n * ```typescript\n * * @Middleware()\n * class LocalsMiddleware {\n * use(@Locals() locals: any) {\n * // set some on locals\n * locals.user = \"user\"\n * }\n * }\n *\n * @Controller('/')\n * @UseBefore(LocalsMiddleware)\n * class MyCtrl {\n * @Get('/')\n * @View('home.ejs') // will use locals and returned data to render the page\n * get(@Locals('user') user: any) {\n * console.log('user', user);\n *\n * return {\n * description: 'Hello world'\n * }\n * }\n * }\n * ```\n *\n * @param expression The path of the property to get.\n * @decorator\n * @operation\n * @input\n * @response\n */\nexport function Locals(expression: string): ParameterDecorator;\nexport function Locals(): ParameterDecorator;\nexport function Locals(...args: any[]): ParameterDecorator {\n const {expression, useType, useConverter = false, useValidation = false} = mapParamsOptions(args);\n\n return UseParam({\n paramType: ParamTypes.LOCALS,\n expression,\n useType,\n useConverter,\n useValidation\n });\n}\n"]}
@@ -1,5 +1,4 @@
1
- import { decoratorTypeOf, DecoratorTypes } from "@tsed/core";
2
- import { ParamMetadata } from "../domain/ParamMetadata";
1
+ import { JsonEntityFn } from "@tsed/schema";
3
2
  /**
4
3
  * Get the Param metadata. Use this decorator to compose your own decorator.
5
4
  *
@@ -9,10 +8,6 @@ import { ParamMetadata } from "../domain/ParamMetadata";
9
8
  * @input
10
9
  */
11
10
  export function ParamFn(fn) {
12
- return (target, propertyKey, index) => {
13
- if (decoratorTypeOf([target, propertyKey, index]) === DecoratorTypes.PARAM) {
14
- fn(ParamMetadata.get(target, propertyKey, index), [target, propertyKey, index]);
15
- }
16
- };
11
+ return JsonEntityFn(fn);
17
12
  }
18
13
  //# sourceMappingURL=paramFn.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"paramFn.js","sourceRoot":"","sources":["../../../src/decorators/paramFn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,eAAe,EAAE,cAAc,EAAO,MAAM,YAAY,CAAC;AACtF,OAAO,EAAC,aAAa,EAAC,MAAM,yBAAyB,CAAC;AAEtD;;;;;;;GAOG;AACH,MAAM,UAAU,OAAO,CAAC,EAAmE;IACzF,OAAO,CAAI,MAAiB,EAAE,WAAmB,EAAE,KAAa,EAAQ,EAAE;QACxE,IAAI,eAAe,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,KAAK,cAAc,CAAC,KAAK,EAAE;YAC1E,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,MAAO,EAAE,WAAY,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;SACnF;IACH,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import {DecoratorParameters, decoratorTypeOf, DecoratorTypes, Type} from \"@tsed/core\";\nimport {ParamMetadata} from \"../domain/ParamMetadata\";\n\n/**\n * Get the Param metadata. Use this decorator to compose your own decorator.\n *\n * @param fn\n * @decorator\n * @operation\n * @input\n */\nexport function ParamFn(fn: (param: ParamMetadata, parameters: DecoratorParameters) => void): ParameterDecorator {\n return <T>(target: Type<any>, propertyKey: string, index: number): void => {\n if (decoratorTypeOf([target, propertyKey, index]) === DecoratorTypes.PARAM) {\n fn(ParamMetadata.get(target!, propertyKey!, index), [target, propertyKey, index]);\n }\n };\n}\n"]}
1
+ {"version":3,"file":"paramFn.js","sourceRoot":"","sources":["../../../src/decorators/paramFn.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAqB,MAAM,cAAc,CAAC;AAE9D;;;;;;;GAOG;AACH,MAAM,UAAU,OAAO,CAAC,EAAwE;IAC9F,OAAO,YAAY,CAAqB,EAAE,CAAC,CAAC;AAC9C,CAAC","sourcesContent":["import {DecoratorParameters} from \"@tsed/core\";\nimport {JsonEntityFn, JsonParameterStore} from \"@tsed/schema\";\n\n/**\n * Get the Param metadata. Use this decorator to compose your own decorator.\n *\n * @param fn\n * @decorator\n * @operation\n * @input\n */\nexport function ParamFn(fn: (param: JsonParameterStore, parameters: DecoratorParameters) => void): ParameterDecorator {\n return JsonEntityFn<JsonParameterStore>(fn);\n}\n"]}
@@ -1,11 +1,10 @@
1
- import { ParamTypes } from "../domain/ParamTypes";
2
- import { mapParamsOptions } from "../utils/mapParamsOptions";
3
- import { UseParam } from "./useParam";
1
+ import { ParamTypes } from "../domain/ParamTypes.js";
2
+ import { mapParamsOptions } from "../utils/mapParamsOptions.js";
3
+ import { UseParam } from "./useParam.js";
4
4
  export function PathParams(...args) {
5
5
  const { expression, useType, useConverter = true, useValidation = true } = mapParamsOptions(args);
6
6
  return UseParam({
7
7
  paramType: ParamTypes.PATH,
8
- dataPath: "$ctx.request.params",
9
8
  expression,
10
9
  useType,
11
10
  useConverter,
@@ -1 +1 @@
1
- {"version":3,"file":"pathParams.js","sourceRoot":"","sources":["../../../src/decorators/pathParams.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAuCpC,MAAM,UAAU,UAAU,CAAC,GAAG,IAAW;IACvC,MAAM,EAAC,UAAU,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,EAAE,aAAa,GAAG,IAAI,EAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAEhG,OAAO,QAAQ,CAAC;QACd,SAAS,EAAE,UAAU,CAAC,IAAI;QAC1B,QAAQ,EAAE,qBAAqB;QAC/B,UAAU;QACV,OAAO;QACP,YAAY;QACZ,aAAa;KACd,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,aAAa,CAAC,UAAkB;IAC9C,OAAO,QAAQ,CAAC;QACd,SAAS,EAAE,UAAU,CAAC,IAAI;QAC1B,QAAQ,EAAE,qBAAqB;QAC/B,UAAU;KACX,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {Type} from \"@tsed/core\";\nimport {ParamOptions} from \"../domain/ParamOptions\";\nimport {ParamTypes} from \"../domain/ParamTypes\";\nimport {mapParamsOptions} from \"../utils/mapParamsOptions\";\nimport {UseParam} from \"./useParam\";\n\n/**\n * PathParams return the value from [request.params](http://expressjs.com/en/4x/api.html#req.params) object.\n *\n * #### Example\n *\n * ```typescript\n * @Controller('/')\n * class MyCtrl {\n * @Get('/')\n * get(@PathParams() params: any) {\n * console.log('Entire params', params);\n * }\n *\n * @Get('/')\n * get(@PathParams('id') id: string) {\n * console.log('ID', id);\n * }\n *\n * @Get('/')\n * get(@PathParams({expression: 'id', useType: () => new MyCustomModel() }) id: string) {\n * console.log('ID', id);\n * }\n * }\n * ```\n * > For more information on deserialization see [converters](/docs/converters.md) page.\n *\n * @param expression The path of the property to get.\n * @param useType The type of the class that to be used to deserialize the data.\n * @decorator\n * @operation\n * @input\n */\nexport function PathParams(expression: string, useType: Type<any>): ParameterDecorator;\nexport function PathParams(expression: string): ParameterDecorator;\nexport function PathParams(useType: Type<any>): ParameterDecorator;\nexport function PathParams(options: Partial<ParamOptions>): ParameterDecorator;\nexport function PathParams(): ParameterDecorator;\nexport function PathParams(...args: any[]): ParameterDecorator {\n const {expression, useType, useConverter = true, useValidation = true} = mapParamsOptions(args);\n\n return UseParam({\n paramType: ParamTypes.PATH,\n dataPath: \"$ctx.request.params\",\n expression,\n useType,\n useConverter,\n useValidation\n });\n}\n\n/**\n * RawPathParams return the raw value from [request.params](http://expressjs.com/en/4x/api.html#req.params) object.\n *\n * Any validation and transformation are performed on the value. Use [pipes](/docs/pipes.html) to validate and/or transform the value.\n *\n * #### Example\n *\n * ```typescript\n * @Controller('/')\n * class MyCtrl {\n * @Get('/')\n * get(@RawPathParams() params: string) {\n * console.log('Entire params', params);\n * }\n *\n * @Get('/')\n * get(@RawPathParams('id') id: string) {\n * console.log('ID', id);\n * }\n * }\n * ```\n * > For more information on deserialization see [converters](/docs/converters.md) page.\n *\n * @param expression The path of the property to get.\n * @decorator\n * @operation\n * @input\n */\nexport function RawPathParams(expression: string) {\n return UseParam({\n paramType: ParamTypes.PATH,\n dataPath: \"$ctx.request.params\",\n expression\n });\n}\n"]}
1
+ {"version":3,"file":"pathParams.js","sourceRoot":"","sources":["../../../src/decorators/pathParams.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAuCpC,MAAM,UAAU,UAAU,CAAC,GAAG,IAAW;IACvC,MAAM,EAAC,UAAU,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,EAAE,aAAa,GAAG,IAAI,EAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAEhG,OAAO,QAAQ,CAAC;QACd,SAAS,EAAE,UAAU,CAAC,IAAI;QAC1B,UAAU;QACV,OAAO;QACP,YAAY;QACZ,aAAa;KACd,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,aAAa,CAAC,UAAkB;IAC9C,OAAO,QAAQ,CAAC;QACd,SAAS,EAAE,UAAU,CAAC,IAAI;QAC1B,QAAQ,EAAE,qBAAqB;QAC/B,UAAU;KACX,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {Type} from \"@tsed/core\";\nimport {ParamOptions} from \"../domain/ParamOptions\";\nimport {ParamTypes} from \"../domain/ParamTypes\";\nimport {mapParamsOptions} from \"../utils/mapParamsOptions\";\nimport {UseParam} from \"./useParam\";\n\n/**\n * PathParams return the value from [request.params](http://expressjs.com/en/4x/api.html#req.params) object.\n *\n * #### Example\n *\n * ```typescript\n * @Controller('/')\n * class MyCtrl {\n * @Get('/')\n * get(@PathParams() params: any) {\n * console.log('Entire params', params);\n * }\n *\n * @Get('/')\n * get(@PathParams('id') id: string) {\n * console.log('ID', id);\n * }\n *\n * @Get('/')\n * get(@PathParams({expression: 'id', useType: () => new MyCustomModel() }) id: string) {\n * console.log('ID', id);\n * }\n * }\n * ```\n * > For more information on deserialization see [converters](/docs/converters.md) page.\n *\n * @param expression The path of the property to get.\n * @param useType The type of the class that to be used to deserialize the data.\n * @decorator\n * @operation\n * @input\n */\nexport function PathParams(expression: string, useType: Type<any>): ParameterDecorator;\nexport function PathParams(expression: string): ParameterDecorator;\nexport function PathParams(useType: Type<any>): ParameterDecorator;\nexport function PathParams(options: Partial<ParamOptions>): ParameterDecorator;\nexport function PathParams(): ParameterDecorator;\nexport function PathParams(...args: any[]): ParameterDecorator {\n const {expression, useType, useConverter = true, useValidation = true} = mapParamsOptions(args);\n\n return UseParam({\n paramType: ParamTypes.PATH,\n expression,\n useType,\n useConverter,\n useValidation\n });\n}\n\n/**\n * RawPathParams return the raw value from [request.params](http://expressjs.com/en/4x/api.html#req.params) object.\n *\n * Any validation and transformation are performed on the value. Use [pipes](/docs/pipes.html) to validate and/or transform the value.\n *\n * #### Example\n *\n * ```typescript\n * @Controller('/')\n * class MyCtrl {\n * @Get('/')\n * get(@RawPathParams() params: string) {\n * console.log('Entire params', params);\n * }\n *\n * @Get('/')\n * get(@RawPathParams('id') id: string) {\n * console.log('ID', id);\n * }\n * }\n * ```\n * > For more information on deserialization see [converters](/docs/converters.md) page.\n *\n * @param expression The path of the property to get.\n * @decorator\n * @operation\n * @input\n */\nexport function RawPathParams(expression: string) {\n return UseParam({\n paramType: ParamTypes.PATH,\n dataPath: \"$ctx.request.params\",\n expression\n });\n}\n"]}
@@ -1,11 +1,10 @@
1
- import { ParamTypes } from "../domain/ParamTypes";
2
- import { mapParamsOptions } from "../utils/mapParamsOptions";
3
- import { UseParam } from "./useParam";
1
+ import { ParamTypes } from "../domain/ParamTypes.js";
2
+ import { mapParamsOptions } from "../utils/mapParamsOptions.js";
3
+ import { UseParam } from "./useParam.js";
4
4
  export function QueryParams(...args) {
5
5
  const { expression, useType, useConverter = true, useValidation = true } = mapParamsOptions(args);
6
6
  return UseParam({
7
7
  paramType: ParamTypes.QUERY,
8
- dataPath: "$ctx.request.query",
9
8
  expression,
10
9
  useType,
11
10
  useConverter,
@@ -41,10 +40,10 @@ export function QueryParams(...args) {
41
40
  * @input
42
41
  */
43
42
  export function RawQueryParams(expression) {
44
- return UseParam({
45
- paramType: ParamTypes.QUERY,
46
- dataPath: "$ctx.request.query",
47
- expression
43
+ return QueryParams({
44
+ expression,
45
+ useConverters: false,
46
+ useValidation: false
48
47
  });
49
48
  }
50
49
  //# sourceMappingURL=queryParams.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queryParams.js","sourceRoot":"","sources":["../../../src/decorators/queryParams.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AA4CpC,MAAM,UAAU,WAAW,CAAC,GAAG,IAAW;IACxC,MAAM,EAAC,UAAU,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,EAAE,aAAa,GAAG,IAAI,EAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAEhG,OAAO,QAAQ,CAAC;QACd,SAAS,EAAE,UAAU,CAAC,KAAK;QAC3B,QAAQ,EAAE,oBAAoB;QAC9B,UAAU;QACV,OAAO;QACP,YAAY;QACZ,aAAa;KACd,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC/C,OAAO,QAAQ,CAAC;QACd,SAAS,EAAE,UAAU,CAAC,KAAK;QAC3B,QAAQ,EAAE,oBAAoB;QAC9B,UAAU;KACX,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {Type} from \"@tsed/core\";\nimport {ParamOptions} from \"../domain/ParamOptions\";\nimport {ParamTypes} from \"../domain/ParamTypes\";\nimport {mapParamsOptions} from \"../utils/mapParamsOptions\";\nimport {UseParam} from \"./useParam\";\n\n/**\n * QueryParams return the value from [request.query](http://expressjs.com/en/4x/api.html#req.query) object.\n *\n * #### Example\n *\n * ```typescript\n * @Controller('/')\n * class MyCtrl {\n * @Get('/')\n * get(@QueryParams() query: any) {\n * console.log('Entire query', query);\n * }\n *\n * @Get('/')\n * get(@QueryParams('id') id: string) {\n * console.log('ID', id);\n * }\n *\n * @Get('/')\n * get(@QueryParams('user') user: User) { // with deserialization\n * console.log('user', user);\n * }\n *\n * @Get('/')\n * get(@QueryParams('users', User) users: User[]) { // with deserialization\n * console.log('users', users);\n * }\n * }\n * ```\n * > For more information on deserialization see [converters](/docs/converters.md) page.\n *\n * @param expression The path of the property to get.\n * @param useType The type of the class that to be used to deserialize the data.\n * @decorator\n * @operation\n * @input\n */\nexport function QueryParams(expression: string, useType: Type<any>): ParameterDecorator;\nexport function QueryParams(expression: string): ParameterDecorator;\nexport function QueryParams(useType: Type<any>): ParameterDecorator;\nexport function QueryParams(options: Partial<ParamOptions>): ParameterDecorator;\nexport function QueryParams(): ParameterDecorator;\nexport function QueryParams(...args: any[]): ParameterDecorator {\n const {expression, useType, useConverter = true, useValidation = true} = mapParamsOptions(args);\n\n return UseParam({\n paramType: ParamTypes.QUERY,\n dataPath: \"$ctx.request.query\",\n expression,\n useType,\n useConverter,\n useValidation\n });\n}\n\n/**\n * RawQueryParams return the value from [request.query](http://expressjs.com/en/4x/api.html#req.query) object.\n *\n * Any validation and transformation are performed on the value. Use [pipes](/docs/pipes.html) to validate and/or transform the value.\n *\n * #### Example\n *\n * ```typescript\n * @Controller('/')\n * class MyCtrl {\n * @Get('/')\n * get(@RawPathParams() params: any) {\n * console.log('Entire params', params);\n * }\n *\n * @Get('/')\n * get(@RawPathParams('id') id: string) {\n * console.log('ID', id);\n * }\n * }\n * ```\n * > For more information on deserialization see [converters](/docs/converters.md) page.\n *\n * @param expression The path of the property to get.\n * @decorator\n * @operation\n * @input\n */\nexport function RawQueryParams(expression: string) {\n return UseParam({\n paramType: ParamTypes.QUERY,\n dataPath: \"$ctx.request.query\",\n expression\n });\n}\n"]}
1
+ {"version":3,"file":"queryParams.js","sourceRoot":"","sources":["../../../src/decorators/queryParams.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AA4CpC,MAAM,UAAU,WAAW,CAAC,GAAG,IAAW;IACxC,MAAM,EAAC,UAAU,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,EAAE,aAAa,GAAG,IAAI,EAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAEhG,OAAO,QAAQ,CAAC;QACd,SAAS,EAAE,UAAU,CAAC,KAAK;QAC3B,UAAU;QACV,OAAO;QACP,YAAY;QACZ,aAAa;KACd,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC/C,OAAO,WAAW,CAAC;QACjB,UAAU;QACV,aAAa,EAAE,KAAK;QACpB,aAAa,EAAE,KAAK;KACrB,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {Type} from \"@tsed/core\";\nimport {ParamOptions} from \"../domain/ParamOptions\";\nimport {ParamTypes} from \"../domain/ParamTypes\";\nimport {mapParamsOptions} from \"../utils/mapParamsOptions\";\nimport {UseParam} from \"./useParam\";\n\n/**\n * QueryParams return the value from [request.query](http://expressjs.com/en/4x/api.html#req.query) object.\n *\n * #### Example\n *\n * ```typescript\n * @Controller('/')\n * class MyCtrl {\n * @Get('/')\n * get(@QueryParams() query: any) {\n * console.log('Entire query', query);\n * }\n *\n * @Get('/')\n * get(@QueryParams('id') id: string) {\n * console.log('ID', id);\n * }\n *\n * @Get('/')\n * get(@QueryParams('user') user: User) { // with deserialization\n * console.log('user', user);\n * }\n *\n * @Get('/')\n * get(@QueryParams('users', User) users: User[]) { // with deserialization\n * console.log('users', users);\n * }\n * }\n * ```\n * > For more information on deserialization see [converters](/docs/converters.md) page.\n *\n * @param expression The path of the property to get.\n * @param useType The type of the class that to be used to deserialize the data.\n * @decorator\n * @operation\n * @input\n */\nexport function QueryParams(expression: string, useType: Type<any>): ParameterDecorator;\nexport function QueryParams(expression: string): ParameterDecorator;\nexport function QueryParams(useType: Type<any>): ParameterDecorator;\nexport function QueryParams(options: Partial<ParamOptions>): ParameterDecorator;\nexport function QueryParams(): ParameterDecorator;\nexport function QueryParams(...args: any[]): ParameterDecorator {\n const {expression, useType, useConverter = true, useValidation = true} = mapParamsOptions(args);\n\n return UseParam({\n paramType: ParamTypes.QUERY,\n expression,\n useType,\n useConverter,\n useValidation\n });\n}\n\n/**\n * RawQueryParams return the value from [request.query](http://expressjs.com/en/4x/api.html#req.query) object.\n *\n * Any validation and transformation are performed on the value. Use [pipes](/docs/pipes.html) to validate and/or transform the value.\n *\n * #### Example\n *\n * ```typescript\n * @Controller('/')\n * class MyCtrl {\n * @Get('/')\n * get(@RawPathParams() params: any) {\n * console.log('Entire params', params);\n * }\n *\n * @Get('/')\n * get(@RawPathParams('id') id: string) {\n * console.log('ID', id);\n * }\n * }\n * ```\n * > For more information on deserialization see [converters](/docs/converters.md) page.\n *\n * @param expression The path of the property to get.\n * @decorator\n * @operation\n * @input\n */\nexport function RawQueryParams(expression: string) {\n return QueryParams({\n expression,\n useConverters: false,\n useValidation: false\n });\n}\n"]}