@lerianstudio/sindarian-server 1.0.0-beta.2 → 1.0.0-beta.20

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 (103) hide show
  1. package/README.md +52 -18
  2. package/dist/constants/keys.d.ts +1 -0
  3. package/dist/constants/keys.d.ts.map +1 -1
  4. package/dist/constants/keys.js +2 -1
  5. package/dist/constants/keys.js.map +1 -1
  6. package/dist/controllers/decorators/body-decorator.d.ts +12 -16
  7. package/dist/controllers/decorators/body-decorator.d.ts.map +1 -1
  8. package/dist/controllers/decorators/body-decorator.js +52 -58
  9. package/dist/controllers/decorators/body-decorator.js.map +1 -1
  10. package/dist/controllers/decorators/controller-decorator.d.ts +5 -4
  11. package/dist/controllers/decorators/controller-decorator.d.ts.map +1 -1
  12. package/dist/controllers/decorators/controller-decorator.js +29 -22
  13. package/dist/controllers/decorators/controller-decorator.js.map +1 -1
  14. package/dist/controllers/decorators/param-decorator.d.ts +4 -9
  15. package/dist/controllers/decorators/param-decorator.d.ts.map +1 -1
  16. package/dist/controllers/decorators/param-decorator.js +33 -29
  17. package/dist/controllers/decorators/param-decorator.js.map +1 -1
  18. package/dist/controllers/decorators/query-decorator.d.ts +11 -15
  19. package/dist/controllers/decorators/query-decorator.d.ts.map +1 -1
  20. package/dist/controllers/decorators/query-decorator.js +24 -38
  21. package/dist/controllers/decorators/query-decorator.js.map +1 -1
  22. package/dist/controllers/decorators/request-decorator.d.ts +8 -12
  23. package/dist/controllers/decorators/request-decorator.d.ts.map +1 -1
  24. package/dist/controllers/decorators/request-decorator.js +21 -17
  25. package/dist/controllers/decorators/request-decorator.js.map +1 -1
  26. package/dist/controllers/decorators/route-decorator.d.ts +12 -1
  27. package/dist/controllers/decorators/route-decorator.d.ts.map +1 -1
  28. package/dist/controllers/decorators/route-decorator.js +24 -16
  29. package/dist/controllers/decorators/route-decorator.js.map +1 -1
  30. package/dist/dependency-injection/container.d.ts +4 -3
  31. package/dist/dependency-injection/container.d.ts.map +1 -1
  32. package/dist/dependency-injection/container.js +14 -3
  33. package/dist/dependency-injection/container.js.map +1 -1
  34. package/dist/exceptions/api-exception.d.ts +4 -7
  35. package/dist/exceptions/api-exception.d.ts.map +1 -1
  36. package/dist/exceptions/api-exception.js +8 -4
  37. package/dist/exceptions/api-exception.js.map +1 -1
  38. package/dist/exceptions/base-exception-filter.d.ts.map +1 -1
  39. package/dist/exceptions/base-exception-filter.js +10 -3
  40. package/dist/exceptions/base-exception-filter.js.map +1 -1
  41. package/dist/exceptions/decorators/use-filters-decorator.d.ts +12 -1
  42. package/dist/exceptions/decorators/use-filters-decorator.d.ts.map +1 -1
  43. package/dist/exceptions/decorators/use-filters-decorator.js +34 -3
  44. package/dist/exceptions/decorators/use-filters-decorator.js.map +1 -1
  45. package/dist/index.d.ts +3 -0
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +5 -1
  48. package/dist/index.js.map +1 -1
  49. package/dist/interceptor/decorators/use-interceptor-decorator.d.ts +10 -3
  50. package/dist/interceptor/decorators/use-interceptor-decorator.d.ts.map +1 -1
  51. package/dist/interceptor/decorators/use-interceptor-decorator.js +60 -22
  52. package/dist/interceptor/decorators/use-interceptor-decorator.js.map +1 -1
  53. package/dist/modules/module-decorator.d.ts +2 -2
  54. package/dist/modules/module-decorator.d.ts.map +1 -1
  55. package/dist/modules/module-decorator.js +7 -13
  56. package/dist/modules/module-decorator.js.map +1 -1
  57. package/dist/pipes/decorators/index.d.ts +2 -0
  58. package/dist/pipes/decorators/index.d.ts.map +1 -0
  59. package/dist/pipes/decorators/index.js +6 -0
  60. package/dist/pipes/decorators/index.js.map +1 -0
  61. package/dist/pipes/decorators/use-pipes.d.ts +19 -0
  62. package/dist/pipes/decorators/use-pipes.d.ts.map +1 -0
  63. package/dist/pipes/decorators/use-pipes.js +118 -0
  64. package/dist/pipes/decorators/use-pipes.js.map +1 -0
  65. package/dist/pipes/index.d.ts +3 -0
  66. package/dist/pipes/index.d.ts.map +1 -0
  67. package/dist/pipes/index.js +18 -0
  68. package/dist/pipes/index.js.map +1 -0
  69. package/dist/pipes/pipe-transform.d.ts +46 -0
  70. package/dist/pipes/pipe-transform.d.ts.map +1 -0
  71. package/dist/pipes/pipe-transform.js +3 -0
  72. package/dist/pipes/pipe-transform.js.map +1 -0
  73. package/dist/server/server-factory.d.ts +25 -0
  74. package/dist/server/server-factory.d.ts.map +1 -1
  75. package/dist/server/server-factory.js +98 -33
  76. package/dist/server/server-factory.js.map +1 -1
  77. package/dist/services/http-service.d.ts +2 -2
  78. package/dist/services/http-service.d.ts.map +1 -1
  79. package/dist/services/http-service.js.map +1 -1
  80. package/dist/services/pipes.d.ts +2 -0
  81. package/dist/services/pipes.d.ts.map +1 -0
  82. package/dist/services/pipes.js +5 -0
  83. package/dist/services/pipes.js.map +1 -0
  84. package/dist/utils/routes/route-specificity.d.ts +40 -0
  85. package/dist/utils/routes/route-specificity.d.ts.map +1 -0
  86. package/dist/utils/routes/route-specificity.js +89 -0
  87. package/dist/utils/routes/route-specificity.js.map +1 -0
  88. package/dist/utils/url/url-match.d.ts.map +1 -1
  89. package/dist/utils/url/url-match.js +16 -2
  90. package/dist/utils/url/url-match.js.map +1 -1
  91. package/dist/zod/create-zod-dto.d.ts +16 -0
  92. package/dist/zod/create-zod-dto.d.ts.map +1 -0
  93. package/dist/zod/create-zod-dto.js +14 -0
  94. package/dist/zod/create-zod-dto.js.map +1 -0
  95. package/dist/zod/index.d.ts +3 -0
  96. package/dist/zod/index.d.ts.map +1 -0
  97. package/dist/zod/index.js +8 -0
  98. package/dist/zod/index.js.map +1 -0
  99. package/dist/zod/zod-validation-pipe.d.ts +5 -0
  100. package/dist/zod/zod-validation-pipe.d.ts.map +1 -0
  101. package/dist/zod/zod-validation-pipe.js +35 -0
  102. package/dist/zod/zod-validation-pipe.js.map +1 -0
  103. package/package.json +6 -2
@@ -1 +1 @@
1
- {"version":3,"file":"use-filters-decorator.js","sourceRoot":"","sources":["../../../src/exceptions/decorators/use-filters-decorator.ts"],"names":[],"mappings":";;AAGA,sCAEC;AAED,gCASC;AAhBD,2CAA6C;AAG7C,SAAgB,aAAa,CAAC,MAAc;IAC1C,OAAO,OAAO,CAAC,cAAc,CAAC,iBAAU,EAAE,MAAM,CAAC,IAAI,EAAE,CAAA;AACzD,CAAC;AAED,SAAgB,UAAU,CAAC,OAAgB;IACzC,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,MAAM,eAAe,GACnB,OAAO,CAAC,cAAc,CAAC,iBAAU,EAAE,MAAM,CAAC,IAAI,EAAE,CAAA;QAElD,MAAM,cAAc,GAAG,CAAC,GAAG,eAAe,EAAE,GAAG,OAAO,CAAC,CAAA;QAEvD,OAAO,CAAC,cAAc,CAAC,iBAAU,EAAE,cAAc,EAAE,MAAM,CAAC,CAAA;IAC5D,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"use-filters-decorator.js","sourceRoot":"","sources":["../../../src/exceptions/decorators/use-filters-decorator.ts"],"names":[],"mappings":";;;AA0DA,gCASC;AAnED,2CAA6C;AAS7C,MAAa,aAAa;IACxB,MAAM,CAAC,WAAW,CAAC,MAAc;QAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,iBAAU,EAAE,MAAM,CAAC,CAAA;QAC3D,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAA;QAC9B,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;IACxB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAoB,EAAE,MAAc;QACxD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QAE5C,MAAM,OAAO,CAAC,GAAG,CACf,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CACpE,CAAA;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,SAAoB,EAAE,MAAc;QACrD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QAE5C,OAAO,OAAO,CAAC,GAAG,CAChB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAC1B,CAAA;IACjC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,SAAoB,EACpB,MAAgD;QAEhD,iEAAiE;QACjE,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,OAAO,SAAS,CAAC,QAAQ,CAAkB,MAAM,CAAC,CAAA;QACpD,CAAC;QACD,oEAAoE;QACpE,OAAO,SAAS,CAAC,QAAQ,CAAkB,MAAM,CAAC,WAAkB,CAAC,CAAA;IACvE,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,SAAS,CACpB,SAAoB,EACpB,MAAgD;QAEhD,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,gBAAgB,EAAE,CAAA;QACtD,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;QAC5D,CAAC;IACH,CAAC;CACF;AA/CD,sCA+CC;AAED,SAAgB,UAAU,CAAC,OAAgB;IACzC,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,MAAM,eAAe,GACnB,OAAO,CAAC,cAAc,CAAC,iBAAU,EAAE,MAAM,CAAC,IAAI,EAAE,CAAA;QAElD,MAAM,cAAc,GAAG,CAAC,GAAG,eAAe,EAAE,GAAG,OAAO,CAAC,CAAA;QAEvD,OAAO,CAAC,cAAc,CAAC,iBAAU,EAAE,cAAc,EAAE,MAAM,CAAC,CAAA;IAC5D,CAAC,CAAA;AACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -8,9 +8,12 @@ export * from './logger';
8
8
  export * from './controllers';
9
9
  export * from './dependency-injection';
10
10
  export * from './modules';
11
+ export * from './pipes';
11
12
  export * from './server';
13
+ export * from './zod';
12
14
  export { REQUEST } from './services/request';
13
15
  export { APP_INTERCEPTOR } from './services/interceptor';
14
16
  export { APP_FILTER } from './services/filters';
17
+ export { APP_PIPE } from './services/pipes';
15
18
  export { FetchModuleOptions, HttpService } from './services/http-service';
16
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAA;AAEzB,cAAc,aAAa,CAAA;AAC3B,cAAc,0BAA0B,CAAA;AACxC,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AAGxB,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAA;AAEzB,cAAc,aAAa,CAAA;AAC3B,cAAc,0BAA0B,CAAA;AACxC,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,OAAO,CAAA;AAGrB,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA"}
package/dist/index.js CHANGED
@@ -16,7 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
17
17
  };
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.HttpService = exports.APP_FILTER = exports.APP_INTERCEPTOR = exports.REQUEST = void 0;
19
+ exports.HttpService = exports.APP_PIPE = exports.APP_FILTER = exports.APP_INTERCEPTOR = exports.REQUEST = void 0;
20
20
  require("reflect-metadata");
21
21
  __exportStar(require("./constants"), exports);
22
22
  __exportStar(require("./utils/apply-decorators"), exports);
@@ -27,7 +27,9 @@ __exportStar(require("./logger"), exports);
27
27
  __exportStar(require("./controllers"), exports);
28
28
  __exportStar(require("./dependency-injection"), exports);
29
29
  __exportStar(require("./modules"), exports);
30
+ __exportStar(require("./pipes"), exports);
30
31
  __exportStar(require("./server"), exports);
32
+ __exportStar(require("./zod"), exports);
31
33
  // Services
32
34
  var request_1 = require("./services/request");
33
35
  Object.defineProperty(exports, "REQUEST", { enumerable: true, get: function () { return request_1.REQUEST; } });
@@ -35,6 +37,8 @@ var interceptor_1 = require("./services/interceptor");
35
37
  Object.defineProperty(exports, "APP_INTERCEPTOR", { enumerable: true, get: function () { return interceptor_1.APP_INTERCEPTOR; } });
36
38
  var filters_1 = require("./services/filters");
37
39
  Object.defineProperty(exports, "APP_FILTER", { enumerable: true, get: function () { return filters_1.APP_FILTER; } });
40
+ var pipes_1 = require("./services/pipes");
41
+ Object.defineProperty(exports, "APP_PIPE", { enumerable: true, get: function () { return pipes_1.APP_PIPE; } });
38
42
  var http_service_1 = require("./services/http-service");
39
43
  Object.defineProperty(exports, "HttpService", { enumerable: true, get: function () { return http_service_1.HttpService; } });
40
44
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,0DAA0D;AAC1D,sEAAsE;;;;;;;;;;;;;;;;;AAEtE,4BAAyB;AAEzB,8CAA2B;AAC3B,2DAAwC;AACxC,4CAAyB;AACzB,+CAA4B;AAC5B,gDAA6B;AAC7B,2CAAwB;AACxB,gDAA6B;AAC7B,yDAAsC;AACtC,4CAAyB;AACzB,2CAAwB;AAExB,WAAW;AACX,8CAA4C;AAAnC,kGAAA,OAAO,OAAA;AAChB,sDAAwD;AAA/C,8GAAA,eAAe,OAAA;AACxB,8CAA+C;AAAtC,qGAAA,UAAU,OAAA;AACnB,wDAAyE;AAA5C,2GAAA,WAAW,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,0DAA0D;AAC1D,sEAAsE;;;;;;;;;;;;;;;;;AAEtE,4BAAyB;AAEzB,8CAA2B;AAC3B,2DAAwC;AACxC,4CAAyB;AACzB,+CAA4B;AAC5B,gDAA6B;AAC7B,2CAAwB;AACxB,gDAA6B;AAC7B,yDAAsC;AACtC,4CAAyB;AACzB,0CAAuB;AACvB,2CAAwB;AACxB,wCAAqB;AAErB,WAAW;AACX,8CAA4C;AAAnC,kGAAA,OAAO,OAAA;AAChB,sDAAwD;AAA/C,8GAAA,eAAe,OAAA;AACxB,8CAA+C;AAAtC,qGAAA,UAAU,OAAA;AACnB,0CAA2C;AAAlC,iGAAA,QAAQ,OAAA;AACjB,wDAAyE;AAA5C,2GAAA,WAAW,OAAA"}
@@ -1,8 +1,15 @@
1
1
  import { Interceptor } from '../interceptor';
2
2
  import { ExecutionContext } from '../../context/execution-context';
3
3
  import { Class } from '../../types/class';
4
- export declare function interceptorExecute(executionContext: ExecutionContext, middlewares: Interceptor[], action: () => Promise<any>): Promise<any>;
5
- export type InterceptorMetadata = Interceptor | Class<Interceptor>;
6
- export declare function interceptorHandler(target: object): InterceptorMetadata[];
4
+ import type { Container } from '../../dependency-injection';
5
+ export type InterceptorMetadata = {
6
+ interceptors: (Interceptor | Class<Interceptor>)[];
7
+ };
8
+ export declare class InterceptorHandler {
9
+ static getMetadata(target: object): InterceptorMetadata;
10
+ static register(container: Container, target: object): Promise<void>;
11
+ static fetch(container: Container, target: object): Promise<Interceptor[]>;
12
+ static execute(executionContext: ExecutionContext, middlewares: Interceptor[], action: () => Promise<any>): Promise<any>;
13
+ }
7
14
  export declare function UseInterceptors(...interceptors: (Interceptor | Class<Interceptor>)[]): ClassDecorator;
8
15
  //# sourceMappingURL=use-interceptor-decorator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-interceptor-decorator.d.ts","sourceRoot":"","sources":["../../../src/interceptor/decorators/use-interceptor-decorator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAErC,wBAAsB,kBAAkB,CACtC,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,WAAW,EAAE,EAC1B,MAAM,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,gBA0B3B;AAED,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAA;AAElE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAExE;AAED,wBAAgB,eAAe,CAC7B,GAAG,YAAY,EAAE,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,GACpD,cAAc,CAUhB"}
1
+ {"version":3,"file":"use-interceptor-decorator.d.ts","sourceRoot":"","sources":["../../../src/interceptor/decorators/use-interceptor-decorator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAEvD,MAAM,MAAM,mBAAmB,GAAG;IAChC,YAAY,EAAE,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,CAAA;CACnD,CAAA;AAED,qBAAa,kBAAkB;IAC7B,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB;WAQ1C,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM;WAoB7C,KAAK,CAChB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,EAAE,CAAC;WAmBZ,OAAO,CAClB,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,WAAW,EAAE,EAC1B,MAAM,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC;CA2B7B;AAED,wBAAgB,eAAe,CAC7B,GAAG,YAAY,EAAE,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,GACpD,cAAc,CAUhB"}
@@ -1,34 +1,72 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.interceptorExecute = interceptorExecute;
4
- exports.interceptorHandler = interceptorHandler;
3
+ exports.InterceptorHandler = void 0;
5
4
  exports.UseInterceptors = UseInterceptors;
6
5
  const keys_1 = require("../../constants/keys");
7
- async function interceptorExecute(executionContext, middlewares, action) {
8
- if (middlewares.length === 0) {
9
- return await action();
6
+ class InterceptorHandler {
7
+ static getMetadata(target) {
8
+ const metadata = Reflect.getOwnMetadata(keys_1.INTERCEPTOR_KEY, target);
9
+ if (metadata) {
10
+ return { interceptors: metadata };
11
+ }
12
+ return { interceptors: [] };
10
13
  }
11
- let i = 0;
12
- const next = {
13
- handle: async () => {
14
- if (i >= middlewares.length) {
15
- return await action();
16
- }
17
- const layer = middlewares[i++];
18
- try {
19
- return await layer.intercept(executionContext, next);
20
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
14
+ static async register(container, target) {
15
+ const metadata = InterceptorHandler.getMetadata(target);
16
+ if (!metadata || metadata.interceptors.length === 0) {
17
+ return;
18
+ }
19
+ metadata.interceptors.forEach((interceptor) => {
20
+ // If it's a class constructor (function), register it in the container
21
+ if (typeof interceptor === 'function') {
22
+ if (!container.isBound(interceptor)) {
23
+ container.bind(interceptor).toSelf().inSingletonScope();
24
+ }
21
25
  }
22
- catch (error) {
23
- return await next.handle();
26
+ else {
27
+ // If it's an instance, bind it to its constructor class as a constant value
28
+ container.bind(interceptor.constructor).toConstantValue(interceptor);
24
29
  }
30
+ });
31
+ }
32
+ static async fetch(container, target) {
33
+ const metadata = InterceptorHandler.getMetadata(target);
34
+ if (metadata && metadata.interceptors.length > 0) {
35
+ return await Promise.all(metadata.interceptors.map((interceptor) => {
36
+ // If it's a class constructor (function), resolve from container
37
+ if (typeof interceptor === 'function') {
38
+ return container.getAsync(interceptor);
39
+ }
40
+ // If it's an instance, resolve from container using its constructor
41
+ return container.getAsync(interceptor.constructor);
42
+ }));
25
43
  }
26
- };
27
- return await next.handle();
28
- }
29
- function interceptorHandler(target) {
30
- return Reflect.getOwnMetadata(keys_1.INTERCEPTOR_KEY, target) || [];
44
+ return [];
45
+ }
46
+ static async execute(executionContext, middlewares, action) {
47
+ if (middlewares.length === 0) {
48
+ return await action();
49
+ }
50
+ let i = 0;
51
+ const next = {
52
+ handle: async () => {
53
+ if (i >= middlewares.length) {
54
+ return await action();
55
+ }
56
+ const layer = middlewares[i++];
57
+ try {
58
+ return await layer.intercept(executionContext, next);
59
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
60
+ }
61
+ catch (error) {
62
+ return await next.handle();
63
+ }
64
+ }
65
+ };
66
+ return await next.handle();
67
+ }
31
68
  }
69
+ exports.InterceptorHandler = InterceptorHandler;
32
70
  function UseInterceptors(...interceptors) {
33
71
  return (target) => {
34
72
  const existingInterceptors = Reflect.getOwnMetadata(keys_1.INTERCEPTOR_KEY, target) || [];
@@ -1 +1 @@
1
- {"version":3,"file":"use-interceptor-decorator.js","sourceRoot":"","sources":["../../../src/interceptor/decorators/use-interceptor-decorator.ts"],"names":[],"mappings":";;AAMA,gDA6BC;AAID,gDAEC;AAED,0CAYC;AAvDD,2CAAkD;AAM3C,KAAK,UAAU,kBAAkB,CACtC,gBAAkC,EAClC,WAA0B,EAC1B,MAA0B;IAE1B,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,MAAM,MAAM,EAAE,CAAA;IACvB,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,CAAA;IAET,MAAM,IAAI,GAAgB;QACxB,MAAM,EAAE,KAAK,IAAI,EAAE;YACjB,IAAI,CAAC,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;gBAC5B,OAAO,MAAM,MAAM,EAAE,CAAA;YACvB,CAAC;YAED,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAAA;YAE9B,IAAI,CAAC;gBACH,OAAO,MAAM,KAAK,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAA;gBACpD,6DAA6D;YAC/D,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,OAAO,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;YAC5B,CAAC;QACH,CAAC;KACF,CAAA;IAED,OAAO,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;AAC5B,CAAC;AAID,SAAgB,kBAAkB,CAAC,MAAc;IAC/C,OAAO,OAAO,CAAC,cAAc,CAAC,sBAAe,EAAE,MAAM,CAAC,IAAI,EAAE,CAAA;AAC9D,CAAC;AAED,SAAgB,eAAe,CAC7B,GAAG,YAAkD;IAErD,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,MAAM,oBAAoB,GACxB,OAAO,CAAC,cAAc,CAAC,sBAAe,EAAE,MAAM,CAAC,IAAI,EAAE,CAAA;QACvD,OAAO,CAAC,cAAc,CACpB,sBAAe,EACf,CAAC,GAAG,oBAAoB,EAAE,GAAG,YAAY,CAAC,EAC1C,MAAM,CACP,CAAA;IACH,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"use-interceptor-decorator.js","sourceRoot":"","sources":["../../../src/interceptor/decorators/use-interceptor-decorator.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { ResolutionContext } from 'inversify';
2
2
  import { Class, Constructor } from '../types/class';
3
3
  import { Scope } from '../constants/scopes';
4
- import { ControllerMetadata } from '../controllers/decorators/controller-decorator';
4
+ import { RouteMetadata } from '../controllers/decorators/route-decorator';
5
5
  export type InjectionToken<T = any> = symbol | string | Constructor<T>;
6
6
  type Provider = {
7
7
  provide: InjectionToken;
@@ -15,7 +15,7 @@ export type ModuleOptions = {
15
15
  controllers?: Class[];
16
16
  providers?: Provider[];
17
17
  };
18
- export type ModuleMetadata = ControllerMetadata & {
18
+ export type ModuleMetadata = RouteMetadata & {
19
19
  controller: Class;
20
20
  };
21
21
  export declare function moduleHandler(target: Function, visited?: Set<Function>): ModuleMetadata[];
@@ -1 +1 @@
1
- {"version":3,"file":"module-decorator.d.ts","sourceRoot":"","sources":["../../src/modules/module-decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,iBAAiB,EAAE,MAAM,WAAW,CAAA;AACjE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AASlD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAEL,kBAAkB,EACnB,MAAM,+CAA+C,CAAA;AAKtD,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,GAAG,IAAI,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;AAEtE,KAAK,QAAQ,GACT;IACE,OAAO,EAAE,cAAc,CAAA;IACvB,QAAQ,CAAC,EAAE,KAAK,CAAA;IAChB,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IAC/D,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GACD,KAAK,CAAA;AAET,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,CAAC,EAAE,KAAK,EAAE,CAAA;IACjB,WAAW,CAAC,EAAE,KAAK,EAAE,CAAA;IACrB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,kBAAkB,GAAG;IAChD,UAAU,EAAE,KAAK,CAAA;CAClB,CAAA;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,QAAQ,EAChB,OAAO,GAAE,GAAG,CAAC,QAAQ,CAAa,GACjC,cAAc,EAAE,CAiClB;AAED,wBAAgB,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,cAAc,CAsD9D"}
1
+ {"version":3,"file":"module-decorator.d.ts","sourceRoot":"","sources":["../../src/modules/module-decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,iBAAiB,EAAE,MAAM,WAAW,CAAA;AACjE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AASlD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAK1C,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAA;AAIxE,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,GAAG,IAAI,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;AAEtE,KAAK,QAAQ,GACT;IACE,OAAO,EAAE,cAAc,CAAA;IACvB,QAAQ,CAAC,EAAE,KAAK,CAAA;IAChB,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IAC/D,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GACD,KAAK,CAAA;AAET,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,CAAC,EAAE,KAAK,EAAE,CAAA;IACjB,WAAW,CAAC,EAAE,KAAK,EAAE,CAAA;IACrB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG;IAC3C,UAAU,EAAE,KAAK,CAAA;CAClB,CAAA;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,QAAQ,EAChB,OAAO,GAAE,GAAG,CAAC,QAAQ,CAAa,GACjC,cAAc,EAAE,CAmClB;AAED,wBAAgB,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,cAAc,CA+C9D"}
@@ -8,6 +8,8 @@ const scopes_1 = require("../constants/scopes");
8
8
  const controller_decorator_1 = require("../controllers/decorators/controller-decorator");
9
9
  const use_interceptor_decorator_1 = require("../interceptor/decorators/use-interceptor-decorator");
10
10
  const logger_1 = require("../logger/logger");
11
+ const use_pipes_1 = require("../pipes/decorators/use-pipes");
12
+ const use_filters_decorator_1 = require("../exceptions/decorators/use-filters-decorator");
11
13
  function moduleHandler(target, visited = new Set()) {
12
14
  // Prevent infinite recursion by tracking visited modules
13
15
  if (visited.has(target)) {
@@ -24,7 +26,7 @@ function moduleHandler(target, visited = new Set()) {
24
26
  }
25
27
  if (controllers) {
26
28
  for (const controller of controllers) {
27
- const controllerRoutes = (0, controller_decorator_1.controllerHandler)(controller).map((route) => ({
29
+ const controllerRoutes = controller_decorator_1.ControllerHandler.getRoutes(controller).map((route) => ({
28
30
  ...route,
29
31
  controller
30
32
  }));
@@ -51,18 +53,10 @@ function Module(options) {
51
53
  controllers.forEach((controller) => {
52
54
  // Bind the controller
53
55
  container.bind(controller).to(controller).inSingletonScope();
54
- // Check for interceptors and register class types
55
- const interceptors = (0, use_interceptor_decorator_1.interceptorHandler)(controller);
56
- interceptors.forEach((interceptor) => {
57
- // If it's a class constructor (function), register it in the container
58
- if (typeof interceptor === 'function') {
59
- container.bind(interceptor).toSelf().inSingletonScope();
60
- }
61
- else {
62
- // If it's an instance, bind it to its constructor class as a constant value
63
- container.bind(interceptor.constructor).toConstantValue(interceptor);
64
- }
65
- });
56
+ // Bind other related decorators
57
+ use_interceptor_decorator_1.InterceptorHandler.register(container, controller);
58
+ use_pipes_1.PipeHandler.register(container, controller);
59
+ use_filters_decorator_1.FilterHandler.register(container, controller);
66
60
  });
67
61
  }
68
62
  });
@@ -1 +1 @@
1
- {"version":3,"file":"module-decorator.js","sourceRoot":"","sources":["../../src/modules/module-decorator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module-decorator.js","sourceRoot":"","sources":["../../src/modules/module-decorator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { UsePipes } from './use-pipes';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pipes/decorators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UsePipes = void 0;
4
+ var use_pipes_1 = require("./use-pipes");
5
+ Object.defineProperty(exports, "UsePipes", { enumerable: true, get: function () { return use_pipes_1.UsePipes; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/pipes/decorators/index.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AAA7B,qGAAA,QAAQ,OAAA"}
@@ -0,0 +1,19 @@
1
+ import { PipeTransform } from '../pipe-transform';
2
+ import { Class } from '../../types/class';
3
+ import { RouteContext } from '../../controllers/decorators/route-decorator';
4
+ import { Container } from '../../dependency-injection';
5
+ type PipeMetadata = {
6
+ pipes: (Class<PipeTransform> | PipeTransform)[];
7
+ };
8
+ export declare class PipeHandler {
9
+ static getClassMetadata(target: object): PipeMetadata | undefined;
10
+ static getMethodMetadata(target: object, propertyKey: string | symbol): PipeMetadata | undefined;
11
+ static register(container: Container, target: Class): void;
12
+ static fetch(container: Container, target: object, methodName: string | symbol): Promise<PipeTransform[]>;
13
+ static execute(target: object, propertyKey: string | symbol, pipes: PipeTransform[], args: RouteContext[]): Promise<any[]>;
14
+ private static _fetch;
15
+ private static _register;
16
+ }
17
+ export declare function UsePipes(...pipes: (Class<PipeTransform> | PipeTransform)[]): (target: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor) => void;
18
+ export {};
19
+ //# sourceMappingURL=use-pipes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-pipes.d.ts","sourceRoot":"","sources":["../../../src/pipes/decorators/use-pipes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAErC,OAAO,EACL,YAAY,EAEb,MAAM,0CAA0C,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAElD,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC,EAAE,CAAA;CAChD,CAAA;AAED,qBAAa,WAAW;IACtB,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIjE,MAAM,CAAC,iBAAiB,CACtB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,MAAM,GAC3B,YAAY,GAAG,SAAS;IAgB3B,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK;WA4BtC,KAAK,CAChB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GAAG,MAAM,GAC1B,OAAO,CAAC,aAAa,EAAE,CAAC;WA2Bd,OAAO,CAClB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,MAAM,EAC5B,KAAK,EAAE,aAAa,EAAE,EACtB,IAAI,EAAE,YAAY,EAAE,GACnB,OAAO,CAAC,GAAG,EAAE,CAAC;mBAmCI,MAAM;mBAUN,SAAS;CAc/B;AAED,wBAAgB,QAAQ,CAAC,GAAG,KAAK,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC,EAAE,IAEvE,QAAQ,GAAG,EACX,cAAc,MAAM,GAAG,MAAM,EAC7B,aAAa,kBAAkB,UA0BlC"}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PipeHandler = void 0;
4
+ exports.UsePipes = UsePipes;
5
+ const keys_1 = require("../../constants/keys");
6
+ const get_class_methods_1 = require("../../utils/class/get-class-methods");
7
+ const route_decorator_1 = require("../../controllers/decorators/route-decorator");
8
+ class PipeHandler {
9
+ static getClassMetadata(target) {
10
+ return Reflect.getOwnMetadata(keys_1.PIPE_KEY, target);
11
+ }
12
+ static getMethodMetadata(target, propertyKey) {
13
+ // First check if metadata exists directly on the target (method-level decorator)
14
+ let metadata = Reflect.getOwnMetadata(keys_1.PIPE_KEY, target, propertyKey);
15
+ // If not found, check on the constructor prototype (class-level decorator)
16
+ if (!metadata && target.constructor) {
17
+ metadata = Reflect.getOwnMetadata(keys_1.PIPE_KEY, target.constructor.prototype, propertyKey);
18
+ }
19
+ return metadata;
20
+ }
21
+ static register(container, target) {
22
+ const metadata = PipeHandler.getClassMetadata(target);
23
+ if (metadata && metadata?.pipes?.length !== 0) {
24
+ const { pipes } = metadata;
25
+ pipes.forEach((pipe) => {
26
+ PipeHandler._register(container, pipe);
27
+ });
28
+ }
29
+ // Register methods pipes
30
+ const methodNames = (0, get_class_methods_1.getClassMethods)(target);
31
+ methodNames.forEach((methodName) => {
32
+ const methodMetadata = Reflect.getOwnMetadata(keys_1.PIPE_KEY, target.prototype, methodName);
33
+ if (methodMetadata) {
34
+ methodMetadata.pipes.forEach((pipe) => {
35
+ PipeHandler._register(container, pipe);
36
+ });
37
+ }
38
+ });
39
+ }
40
+ static async fetch(container, target, methodName) {
41
+ const pipes = [];
42
+ const metadata = PipeHandler.getClassMetadata(target.constructor);
43
+ if (metadata && metadata.pipes.length > 0) {
44
+ pipes.push(...(await Promise.all(metadata.pipes.map((pipe) => PipeHandler._fetch(container, pipe)))));
45
+ }
46
+ const methodMetadata = PipeHandler.getMethodMetadata(target, methodName);
47
+ if (methodMetadata) {
48
+ pipes.push(...(await Promise.all(methodMetadata.pipes.map((pipe) => PipeHandler._fetch(container, pipe)))));
49
+ }
50
+ return pipes;
51
+ }
52
+ static async execute(target, propertyKey, pipes, args) {
53
+ const metadata = route_decorator_1.RouteHandler.getMetadata(target.constructor, propertyKey);
54
+ if (pipes.length === 0) {
55
+ return args.map((arg) => arg.parameter);
56
+ }
57
+ // Get paramTypes from route metadata (which contains the method parameter types)
58
+ const paramTypes = metadata?.paramTypes || [];
59
+ const pipedArgs = await Promise.all(args.map(async (arg) => {
60
+ // Get the parameter type for this argument - prefer arg.paramType over paramTypes array
61
+ const metatype = arg.paramType || paramTypes[arg.parameterIndex];
62
+ // Process through pipes (pipes parameter contains resolved instances)
63
+ let result = arg.parameter;
64
+ for (const pipe of pipes) {
65
+ result = await pipe.transform(result, {
66
+ type: arg.type || 'custom',
67
+ metatype: metatype,
68
+ data: arg.parameter
69
+ });
70
+ }
71
+ return {
72
+ ...arg,
73
+ parameter: result
74
+ };
75
+ }));
76
+ return pipedArgs.map((arg) => arg.parameter);
77
+ }
78
+ static async _fetch(container, pipe) {
79
+ if (typeof pipe === 'function') {
80
+ return container.getAsync(pipe);
81
+ }
82
+ return container.getAsync(pipe.constructor);
83
+ }
84
+ static async _register(container, pipe) {
85
+ // If it's a class constructor (function), register it in the container
86
+ if (typeof pipe === 'function') {
87
+ if (!container.isBound(pipe)) {
88
+ container.bind(pipe).toSelf().inSingletonScope();
89
+ }
90
+ }
91
+ else {
92
+ // If it's an instance, bind it to its constructor class as a constant value
93
+ container.bind(pipe.constructor).toConstantValue(pipe);
94
+ }
95
+ }
96
+ }
97
+ exports.PipeHandler = PipeHandler;
98
+ function UsePipes(...pipes) {
99
+ return (target, propertyKey, descriptor) => {
100
+ if (descriptor && propertyKey) {
101
+ // Method decorator
102
+ Reflect.defineMetadata(keys_1.PIPE_KEY, { pipes }, target, propertyKey);
103
+ return;
104
+ }
105
+ else {
106
+ // Class decorator
107
+ const methodNames = (0, get_class_methods_1.getClassMethods)(target);
108
+ // Store class-level pipes metadata
109
+ Reflect.defineMetadata(keys_1.PIPE_KEY, { pipes, paramTypes: [] }, target);
110
+ // Process each method and store its paramTypes
111
+ methodNames.forEach((methodName) => {
112
+ // Store method-specific metadata with class pipes and method paramTypes
113
+ Reflect.defineMetadata(keys_1.PIPE_KEY, { pipes }, target.prototype, methodName);
114
+ });
115
+ }
116
+ };
117
+ }
118
+ //# sourceMappingURL=use-pipes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-pipes.js","sourceRoot":"","sources":["../../../src/pipes/decorators/use-pipes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './decorators';
2
+ export { PipeTransform, ArgumentMetadata } from './pipe-transform';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pipes/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./decorators"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pipes/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B"}
@@ -0,0 +1,46 @@
1
+ import { Class } from '../types/class';
2
+ /**
3
+ * @publicApi
4
+ */
5
+ export type Paramtype = 'body' | 'query' | 'param' | 'custom';
6
+ export type Transform<T = any> = (value: T, metadata: ArgumentMetadata) => any;
7
+ /**
8
+ * Interface describing a pipe implementation's `transform()` method metadata argument.
9
+ *
10
+ * @see [Pipes](https://docs.nestjs.com/pipes)
11
+ *
12
+ * @publicApi
13
+ */
14
+ export interface ArgumentMetadata {
15
+ /**
16
+ * Indicates whether argument is a body, query, param, or custom parameter
17
+ */
18
+ readonly type: Paramtype;
19
+ /**
20
+ * Underlying base type (e.g., `String`) of the parameter, based on the type
21
+ * definition in the route handler.
22
+ */
23
+ readonly metatype?: Class<any> | undefined;
24
+ /**
25
+ * String passed as an argument to the decorator.
26
+ * Example: `@Body('userId')` would yield `userId`
27
+ */
28
+ readonly data?: string | undefined;
29
+ }
30
+ /**
31
+ * Interface describing implementation of a pipe.
32
+ *
33
+ * @see [Pipes](https://docs.nestjs.com/pipes)
34
+ *
35
+ * @publicApi
36
+ */
37
+ export interface PipeTransform<T = any, R = any> {
38
+ /**
39
+ * Method to implement a custom pipe. Called with two parameters
40
+ *
41
+ * @param value argument before it is received by route handler method
42
+ * @param metadata contains metadata about the value
43
+ */
44
+ transform(value: T, metadata: ArgumentMetadata): R;
45
+ }
46
+ //# sourceMappingURL=pipe-transform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipe-transform.d.ts","sourceRoot":"","sources":["../../src/pipes/pipe-transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAErC;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAA;AAE7D,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,gBAAgB,KAAK,GAAG,CAAA;AAE9E;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA;IAC1C;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACnC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG;IAC7C;;;;;OAKG;IACH,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,gBAAgB,GAAG,CAAC,CAAA;CACnD"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=pipe-transform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipe-transform.js","sourceRoot":"","sources":["../../src/pipes/pipe-transform.ts"],"names":[],"mappings":""}
@@ -5,6 +5,8 @@ import { ModuleMetadata } from '../modules/module-decorator';
5
5
  import { Class } from '../types/class';
6
6
  import { NextRequest } from 'next/server';
7
7
  import { LoggerService } from '../logger/logger-service';
8
+ import { PipeTransform } from '../pipes/pipe-transform';
9
+ import { GetOptions, OptionalGetOptions } from 'inversify';
8
10
  export type ServerFactoryOptions = {
9
11
  logger?: LoggerService | boolean;
10
12
  };
@@ -12,6 +14,7 @@ export declare class ServerFactory {
12
14
  private globalPrefix;
13
15
  private globalFilters;
14
16
  private globalInterceptors;
17
+ private globalPipes;
15
18
  private readonly module;
16
19
  private readonly container;
17
20
  private readonly routes;
@@ -24,6 +27,21 @@ export declare class ServerFactory {
24
27
  setGlobalPrefix(prefix: string): void;
25
28
  useGlobalFilters(...filters: ExceptionFilter[]): void;
26
29
  useGlobalInterceptors(...interceptors: Interceptor[]): void;
30
+ useGlobalPipes(...pipes: PipeTransform[]): void;
31
+ /**
32
+ * Get a service synchronously
33
+ * @param service - The service to get
34
+ * @param options - The options for getting the service
35
+ * @returns The service instance
36
+ */
37
+ get<T>(service: Class<T>, options?: OptionalGetOptions): T;
38
+ /**
39
+ * Get a service asynchronously
40
+ * @param service - The service to get
41
+ * @param options - The options for getting the service
42
+ * @returns A promise that resolves to the service instance
43
+ */
44
+ getAsync<T>(service: Class<T>, options?: GetOptions): Promise<T>;
27
45
  /**
28
46
  * Handle a request
29
47
  * @param request - The request to handle
@@ -50,5 +68,12 @@ export declare class ServerFactory {
50
68
  private _fetchInterceptors;
51
69
  private _fetchHandler;
52
70
  private _fetchExceptionFilters;
71
+ /**
72
+ * Fetch the pipes for a controller method
73
+ * @param controller
74
+ * @param methodName
75
+ * @returns
76
+ */
77
+ private _fetchPipes;
53
78
  }
54
79
  //# sourceMappingURL=server-factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server-factory.d.ts","sourceRoot":"","sources":["../../src/server/server-factory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAI5D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAK/D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAAiB,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAI1E,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAErC,OAAO,EAAE,WAAW,EAAgB,MAAM,aAAa,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAKvD,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAA;CACjC,CAAA;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,aAAa,CAAiD;IACtE,OAAO,CAAC,kBAAkB,CAAoB;IAE9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;gBAE7B,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE;WAQ3D,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,oBAAoB;IAYlE;;;OAGG;IACI,eAAe,CAAC,MAAM,EAAE,MAAM;IAI9B,gBAAgB,CAAC,GAAG,OAAO,EAAE,eAAe,EAAE;IAI9C,qBAAqB,CAAC,GAAG,YAAY,EAAE,WAAW,EAAE;IAI3D;;;;;OAKG;IACU,OAAO,CAClB,OAAO,EAAE,WAAW,EACpB,EAAE,MAAM,EAAE,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;KAAE;IA2DtC,OAAO,CAAC,MAAM,CAAC,eAAe;IAM9B;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAUrB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;YAiBL,kBAAkB;IAgChC,OAAO,CAAC,aAAa;YAiBP,sBAAsB;CAmBrC"}
1
+ {"version":3,"file":"server-factory.d.ts","sourceRoot":"","sources":["../../src/server/server-factory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAI5D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAAiB,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAI1E,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAErC,OAAO,EAAE,WAAW,EAAgB,MAAM,aAAa,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAIvD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAKtD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAE1D,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAA;CACjC,CAAA;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,aAAa,CAAiD;IACtE,OAAO,CAAC,kBAAkB,CAAoB;IAC9C,OAAO,CAAC,WAAW,CAAsB;IAEzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;gBAE7B,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE;WAQ3D,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,oBAAoB;IAgBlE;;;OAGG;IACI,eAAe,CAAC,MAAM,EAAE,MAAM;IAI9B,gBAAgB,CAAC,GAAG,OAAO,EAAE,eAAe,EAAE;IAI9C,qBAAqB,CAAC,GAAG,YAAY,EAAE,WAAW,EAAE;IAIpD,cAAc,CAAC,GAAG,KAAK,EAAE,aAAa,EAAE;IAI/C;;;;;OAKG;IACI,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,CAAC;IAIjE;;;;;OAKG;IACI,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC;IAIvE;;;;;OAKG;IACU,OAAO,CAClB,OAAO,EAAE,WAAW,EACpB,EAAE,MAAM,EAAE,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;KAAE;IAgFtC,OAAO,CAAC,MAAM,CAAC,eAAe;IAM9B;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAoBrB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;YAiBL,kBAAkB;IAwBhC,OAAO,CAAC,aAAa;YAiBP,sBAAsB;IAqBpC;;;;;OAKG;YACW,WAAW;CAyB1B"}