@lerianstudio/sindarian-server 1.0.0-beta.1 → 1.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 (199) hide show
  1. package/README.md +367 -0
  2. package/dist/constants/index.d.ts +1 -0
  3. package/dist/constants/index.d.ts.map +1 -1
  4. package/dist/constants/index.js +1 -0
  5. package/dist/constants/index.js.map +1 -1
  6. package/dist/constants/keys.d.ts +5 -0
  7. package/dist/constants/keys.d.ts.map +1 -1
  8. package/dist/constants/keys.js +6 -1
  9. package/dist/constants/keys.js.map +1 -1
  10. package/dist/constants/scopes.d.ts +6 -0
  11. package/dist/constants/scopes.d.ts.map +1 -0
  12. package/dist/constants/scopes.js +10 -0
  13. package/dist/constants/scopes.js.map +1 -0
  14. package/dist/context/arguments-host.d.ts +14 -0
  15. package/dist/context/arguments-host.d.ts.map +1 -0
  16. package/dist/context/arguments-host.js +28 -0
  17. package/dist/context/arguments-host.js.map +1 -0
  18. package/dist/context/execution-context.d.ts +10 -0
  19. package/dist/context/execution-context.d.ts.map +1 -0
  20. package/dist/context/execution-context.js +19 -0
  21. package/dist/context/execution-context.js.map +1 -0
  22. package/dist/context/http-arguments-host.d.ts +8 -0
  23. package/dist/context/http-arguments-host.d.ts.map +1 -0
  24. package/dist/context/http-arguments-host.js +17 -0
  25. package/dist/context/http-arguments-host.js.map +1 -0
  26. package/dist/context/index.d.ts +4 -0
  27. package/dist/context/index.d.ts.map +1 -0
  28. package/dist/context/index.js +20 -0
  29. package/dist/context/index.js.map +1 -0
  30. package/dist/controllers/base-controller.d.ts +0 -2
  31. package/dist/controllers/base-controller.d.ts.map +1 -1
  32. package/dist/controllers/base-controller.js +0 -15
  33. package/dist/controllers/base-controller.js.map +1 -1
  34. package/dist/controllers/decorators/body-decorator.d.ts +12 -17
  35. package/dist/controllers/decorators/body-decorator.d.ts.map +1 -1
  36. package/dist/controllers/decorators/body-decorator.js +55 -43
  37. package/dist/controllers/decorators/body-decorator.js.map +1 -1
  38. package/dist/controllers/decorators/controller-decorator.d.ts +5 -8
  39. package/dist/controllers/decorators/controller-decorator.d.ts.map +1 -1
  40. package/dist/controllers/decorators/controller-decorator.js +30 -66
  41. package/dist/controllers/decorators/controller-decorator.js.map +1 -1
  42. package/dist/controllers/decorators/param-decorator.d.ts +4 -9
  43. package/dist/controllers/decorators/param-decorator.d.ts.map +1 -1
  44. package/dist/controllers/decorators/param-decorator.js +33 -29
  45. package/dist/controllers/decorators/param-decorator.js.map +1 -1
  46. package/dist/controllers/decorators/query-decorator.d.ts +11 -15
  47. package/dist/controllers/decorators/query-decorator.d.ts.map +1 -1
  48. package/dist/controllers/decorators/query-decorator.js +24 -38
  49. package/dist/controllers/decorators/query-decorator.js.map +1 -1
  50. package/dist/controllers/decorators/request-decorator.d.ts +8 -12
  51. package/dist/controllers/decorators/request-decorator.d.ts.map +1 -1
  52. package/dist/controllers/decorators/request-decorator.js +21 -17
  53. package/dist/controllers/decorators/request-decorator.js.map +1 -1
  54. package/dist/controllers/decorators/route-decorator.d.ts +12 -1
  55. package/dist/controllers/decorators/route-decorator.d.ts.map +1 -1
  56. package/dist/controllers/decorators/route-decorator.js +24 -16
  57. package/dist/controllers/decorators/route-decorator.js.map +1 -1
  58. package/dist/dependency-injection/container.js +1 -1
  59. package/dist/dependency-injection/container.js.map +1 -1
  60. package/dist/dependency-injection/index.d.ts +2 -1
  61. package/dist/dependency-injection/index.d.ts.map +1 -1
  62. package/dist/dependency-injection/index.js +3 -2
  63. package/dist/dependency-injection/index.js.map +1 -1
  64. package/dist/dependency-injection/injectable-decorator.d.ts +7 -0
  65. package/dist/dependency-injection/injectable-decorator.d.ts.map +1 -0
  66. package/dist/dependency-injection/injectable-decorator.js +21 -0
  67. package/dist/dependency-injection/injectable-decorator.js.map +1 -0
  68. package/dist/exceptions/api-exception.d.ts +4 -7
  69. package/dist/exceptions/api-exception.d.ts.map +1 -1
  70. package/dist/exceptions/api-exception.js +8 -4
  71. package/dist/exceptions/api-exception.js.map +1 -1
  72. package/dist/exceptions/base-exception-filter.d.ts +8 -0
  73. package/dist/exceptions/base-exception-filter.d.ts.map +1 -0
  74. package/dist/exceptions/base-exception-filter.js +21 -0
  75. package/dist/exceptions/base-exception-filter.js.map +1 -0
  76. package/dist/exceptions/decorators/catch-decorator.d.ts +8 -0
  77. package/dist/exceptions/decorators/catch-decorator.d.ts.map +1 -0
  78. package/dist/exceptions/decorators/catch-decorator.js +14 -0
  79. package/dist/exceptions/decorators/catch-decorator.js.map +1 -0
  80. package/dist/exceptions/decorators/index.d.ts +3 -0
  81. package/dist/exceptions/decorators/index.d.ts.map +1 -0
  82. package/dist/exceptions/decorators/index.js +8 -0
  83. package/dist/exceptions/decorators/index.js.map +1 -0
  84. package/dist/exceptions/decorators/use-filters-decorator.d.ts +15 -0
  85. package/dist/exceptions/decorators/use-filters-decorator.d.ts.map +1 -0
  86. package/dist/exceptions/decorators/use-filters-decorator.js +47 -0
  87. package/dist/exceptions/decorators/use-filters-decorator.js.map +1 -0
  88. package/dist/exceptions/exception-filter.d.ts +6 -0
  89. package/dist/exceptions/exception-filter.d.ts.map +1 -0
  90. package/dist/exceptions/exception-filter.js +7 -0
  91. package/dist/exceptions/exception-filter.js.map +1 -0
  92. package/dist/exceptions/index.d.ts +3 -0
  93. package/dist/exceptions/index.d.ts.map +1 -1
  94. package/dist/exceptions/index.js +3 -0
  95. package/dist/exceptions/index.js.map +1 -1
  96. package/dist/index.d.ts +10 -0
  97. package/dist/index.d.ts.map +1 -1
  98. package/dist/index.js +15 -1
  99. package/dist/index.js.map +1 -1
  100. package/dist/interceptor/call-handler.d.ts +4 -0
  101. package/dist/interceptor/call-handler.d.ts.map +1 -0
  102. package/dist/interceptor/call-handler.js +3 -0
  103. package/dist/interceptor/call-handler.js.map +1 -0
  104. package/dist/interceptor/decorators/index.d.ts +2 -0
  105. package/dist/interceptor/decorators/index.d.ts.map +1 -0
  106. package/dist/interceptor/decorators/index.js +6 -0
  107. package/dist/interceptor/decorators/index.js.map +1 -0
  108. package/dist/interceptor/decorators/use-interceptor-decorator.d.ts +15 -0
  109. package/dist/interceptor/decorators/use-interceptor-decorator.d.ts.map +1 -0
  110. package/dist/interceptor/decorators/use-interceptor-decorator.js +76 -0
  111. package/dist/interceptor/decorators/use-interceptor-decorator.js.map +1 -0
  112. package/dist/interceptor/index.d.ts +4 -0
  113. package/dist/interceptor/index.d.ts.map +1 -0
  114. package/dist/interceptor/index.js +20 -0
  115. package/dist/interceptor/index.js.map +1 -0
  116. package/dist/interceptor/interceptor.d.ts +3 -5
  117. package/dist/interceptor/interceptor.d.ts.map +1 -1
  118. package/dist/interceptor/interceptor.js.map +1 -1
  119. package/dist/logger/console-logger.d.ts +24 -0
  120. package/dist/logger/console-logger.d.ts.map +1 -0
  121. package/dist/logger/console-logger.js +78 -0
  122. package/dist/logger/console-logger.js.map +1 -0
  123. package/dist/logger/index.d.ts +4 -0
  124. package/dist/logger/index.d.ts.map +1 -0
  125. package/dist/logger/index.js +8 -0
  126. package/dist/logger/index.js.map +1 -0
  127. package/dist/logger/logger-service.d.ts +34 -0
  128. package/dist/logger/logger-service.d.ts.map +1 -0
  129. package/dist/logger/logger-service.js +12 -0
  130. package/dist/logger/logger-service.js.map +1 -0
  131. package/dist/logger/logger.d.ts +21 -0
  132. package/dist/logger/logger.d.ts.map +1 -0
  133. package/dist/logger/logger.js +86 -0
  134. package/dist/logger/logger.js.map +1 -0
  135. package/dist/modules/module-decorator.d.ts +5 -3
  136. package/dist/modules/module-decorator.d.ts.map +1 -1
  137. package/dist/modules/module-decorator.js +78 -24
  138. package/dist/modules/module-decorator.js.map +1 -1
  139. package/dist/pipes/decorators/index.d.ts +2 -0
  140. package/dist/pipes/decorators/index.d.ts.map +1 -0
  141. package/dist/pipes/decorators/index.js +6 -0
  142. package/dist/pipes/decorators/index.js.map +1 -0
  143. package/dist/pipes/decorators/use-pipes.d.ts +19 -0
  144. package/dist/pipes/decorators/use-pipes.d.ts.map +1 -0
  145. package/dist/pipes/decorators/use-pipes.js +118 -0
  146. package/dist/pipes/decorators/use-pipes.js.map +1 -0
  147. package/dist/pipes/index.d.ts +3 -0
  148. package/dist/pipes/index.d.ts.map +1 -0
  149. package/dist/pipes/index.js +18 -0
  150. package/dist/pipes/index.js.map +1 -0
  151. package/dist/pipes/pipe-transform.d.ts +46 -0
  152. package/dist/pipes/pipe-transform.d.ts.map +1 -0
  153. package/dist/pipes/pipe-transform.js +3 -0
  154. package/dist/pipes/pipe-transform.js.map +1 -0
  155. package/dist/server/server-factory.d.ts +23 -6
  156. package/dist/server/server-factory.d.ts.map +1 -1
  157. package/dist/server/server-factory.js +114 -48
  158. package/dist/server/server-factory.js.map +1 -1
  159. package/dist/services/filters.d.ts +2 -0
  160. package/dist/services/filters.d.ts.map +1 -0
  161. package/dist/services/filters.js +5 -0
  162. package/dist/services/filters.js.map +1 -0
  163. package/dist/services/http-service.d.ts +68 -0
  164. package/dist/services/http-service.d.ts.map +1 -0
  165. package/dist/services/http-service.js +233 -0
  166. package/dist/services/http-service.js.map +1 -0
  167. package/dist/services/interceptor.d.ts +2 -0
  168. package/dist/services/interceptor.d.ts.map +1 -0
  169. package/dist/services/interceptor.js +5 -0
  170. package/dist/services/interceptor.js.map +1 -0
  171. package/dist/services/pipes.d.ts +2 -0
  172. package/dist/services/pipes.d.ts.map +1 -0
  173. package/dist/services/pipes.js +5 -0
  174. package/dist/services/pipes.js.map +1 -0
  175. package/dist/utils/form-data/get-form-data.d.ts +2 -0
  176. package/dist/utils/form-data/get-form-data.d.ts.map +1 -0
  177. package/dist/utils/form-data/get-form-data.js +11 -0
  178. package/dist/utils/form-data/get-form-data.js.map +1 -0
  179. package/dist/utils/search/create-query-string.d.ts +9 -0
  180. package/dist/utils/search/create-query-string.d.ts.map +1 -0
  181. package/dist/utils/search/create-query-string.js +26 -0
  182. package/dist/utils/search/create-query-string.js.map +1 -0
  183. package/dist/zod/create-zod-dto.d.ts +16 -0
  184. package/dist/zod/create-zod-dto.d.ts.map +1 -0
  185. package/dist/zod/create-zod-dto.js +14 -0
  186. package/dist/zod/create-zod-dto.js.map +1 -0
  187. package/dist/zod/index.d.ts +3 -0
  188. package/dist/zod/index.d.ts.map +1 -0
  189. package/dist/zod/index.js +8 -0
  190. package/dist/zod/index.js.map +1 -0
  191. package/dist/zod/zod-validation-pipe.d.ts +5 -0
  192. package/dist/zod/zod-validation-pipe.d.ts.map +1 -0
  193. package/dist/zod/zod-validation-pipe.js +35 -0
  194. package/dist/zod/zod-validation-pipe.js.map +1 -0
  195. package/package.json +7 -6
  196. package/dist/interceptor/decorators/use-interceptor.d.ts +0 -3
  197. package/dist/interceptor/decorators/use-interceptor.d.ts.map +0 -1
  198. package/dist/interceptor/decorators/use-interceptor.js +0 -9
  199. package/dist/interceptor/decorators/use-interceptor.js.map +0 -1
@@ -4,7 +4,12 @@ exports.moduleHandler = moduleHandler;
4
4
  exports.Module = Module;
5
5
  const container_1 = require("../dependency-injection/container");
6
6
  const keys_1 = require("../constants/keys");
7
+ const scopes_1 = require("../constants/scopes");
7
8
  const controller_decorator_1 = require("../controllers/decorators/controller-decorator");
9
+ const use_interceptor_decorator_1 = require("../interceptor/decorators/use-interceptor-decorator");
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");
8
13
  function moduleHandler(target, visited = new Set()) {
9
14
  // Prevent infinite recursion by tracking visited modules
10
15
  if (visited.has(target)) {
@@ -21,10 +26,11 @@ function moduleHandler(target, visited = new Set()) {
21
26
  }
22
27
  if (controllers) {
23
28
  for (const controller of controllers) {
24
- const controllerRoutes = (0, controller_decorator_1.controllerHandler)(controller).map((route) => ({
29
+ const controllerRoutes = controller_decorator_1.ControllerHandler.getRoutes(controller).map((route) => ({
25
30
  ...route,
26
31
  controller
27
32
  }));
33
+ logger_1.Logger.log(`Registered ${controllerRoutes.length} routes for controller ${controller.name}`);
28
34
  routes.push(...controllerRoutes);
29
35
  }
30
36
  }
@@ -41,32 +47,16 @@ function Module(options) {
41
47
  });
42
48
  }
43
49
  if (providers) {
44
- providers.forEach((providerEntity) => {
45
- if (typeof providerEntity === 'object') {
46
- if (providerEntity.useClass) {
47
- container.bind(providerEntity.provide).to(providerEntity.useClass);
48
- }
49
- else if (providerEntity.useFactory) {
50
- container
51
- .bind(providerEntity.provide)
52
- .toDynamicValue(async (context) => {
53
- return await providerEntity.useFactory(context);
54
- });
55
- }
56
- else if (providerEntity.useValue) {
57
- container
58
- .bind(providerEntity.provide)
59
- .toConstantValue(providerEntity.useValue);
60
- }
61
- }
62
- else {
63
- container.bind(providerEntity).to(providerEntity);
64
- }
65
- });
50
+ providers.forEach((provider) => registerProvider(container, provider));
66
51
  }
67
52
  if (controllers) {
68
53
  controllers.forEach((controller) => {
69
- container.bind(controller).to(controller);
54
+ // Bind the controller
55
+ container.bind(controller).to(controller).inSingletonScope();
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);
70
60
  });
71
61
  }
72
62
  });
@@ -83,4 +73,68 @@ function Module(options) {
83
73
  prototype[keys_1.CONTROLLERS_PROPERTY] = controllers;
84
74
  };
85
75
  }
76
+ /**
77
+ * Register a provider in the container
78
+ * @param container
79
+ * @param provider
80
+ */
81
+ function registerProvider(container, provider) {
82
+ // Checks if provider is a object with options
83
+ if (typeof provider === 'object') {
84
+ registerProviderObject(container, provider);
85
+ }
86
+ else {
87
+ // If not, it's a simple class type
88
+ container.bind(provider).to(provider);
89
+ }
90
+ }
91
+ /**
92
+ * Registers a provider object in the container
93
+ * @param container
94
+ * @param provider
95
+ * @returns
96
+ */
97
+ function registerProviderObject(container, provider) {
98
+ // Protect the method by avoid non objects
99
+ if (typeof provider !== 'object') {
100
+ return;
101
+ }
102
+ const { provide, useClass, useValue, useFactory, scope } = provider;
103
+ const bind = container.bind(provide);
104
+ if (useClass) {
105
+ registerScope(bind.to(useClass), scope);
106
+ return;
107
+ }
108
+ if (useFactory) {
109
+ registerScope(bind.toDynamicValue(async (context) => {
110
+ return await useFactory(context);
111
+ }), scope);
112
+ return;
113
+ }
114
+ if (useValue) {
115
+ bind.toConstantValue(useValue);
116
+ return;
117
+ }
118
+ const message = `Module: Invalid provider ${provider.provide.toString()} configuration`;
119
+ logger_1.Logger.error(message);
120
+ throw new Error(message);
121
+ }
122
+ /**
123
+ * Registers a scope for a binding
124
+ * @param bind
125
+ * @param scope
126
+ * @returns
127
+ */
128
+ function registerScope(bind, scope) {
129
+ switch (scope) {
130
+ case scopes_1.Scope.DEFAULT:
131
+ return bind.inSingletonScope();
132
+ case scopes_1.Scope.REQUEST:
133
+ return bind.inRequestScope();
134
+ case scopes_1.Scope.TRANSIENT:
135
+ return bind.inTransientScope();
136
+ default:
137
+ return bind.inSingletonScope();
138
+ }
139
+ }
86
140
  //# sourceMappingURL=module-decorator.js.map
@@ -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;
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":""}
@@ -1,19 +1,32 @@
1
1
  import { Container } from '../dependency-injection/container';
2
+ import { ExceptionFilter } from '../exceptions/exception-filter';
3
+ import { Interceptor } from '../interceptor/interceptor';
2
4
  import { ModuleMetadata } from '../modules/module-decorator';
3
5
  import { Class } from '../types/class';
4
6
  import { NextRequest } from 'next/server';
7
+ import { LoggerService } from '../logger/logger-service';
8
+ import { PipeTransform } from '../pipes/pipe-transform';
9
+ export type ServerFactoryOptions = {
10
+ logger?: LoggerService | boolean;
11
+ };
5
12
  export declare class ServerFactory {
6
13
  private globalPrefix;
14
+ private globalFilters;
15
+ private globalInterceptors;
16
+ private globalPipes;
7
17
  private readonly module;
8
18
  private readonly container;
9
19
  private readonly routes;
10
20
  constructor(module: Class, container: Container, routes: ModuleMetadata[]);
11
- static create(module: Class): ServerFactory;
21
+ static create(module: Class, options?: ServerFactoryOptions): ServerFactory;
12
22
  /**
13
23
  * Set the global prefix for the server
14
24
  * @param prefix - The global prefix to set
15
25
  */
16
26
  setGlobalPrefix(prefix: string): void;
27
+ useGlobalFilters(...filters: ExceptionFilter[]): void;
28
+ useGlobalInterceptors(...interceptors: Interceptor[]): void;
29
+ useGlobalPipes(...pipes: PipeTransform[]): void;
17
30
  /**
18
31
  * Handle a request
19
32
  * @param request - The request to handle
@@ -23,6 +36,7 @@ export declare class ServerFactory {
23
36
  handler(request: NextRequest, { params }: {
24
37
  params: Promise<any>;
25
38
  }): Promise<any>;
39
+ private static _registerLogger;
26
40
  /**
27
41
  * Parse the request
28
42
  * @param request - The request to parse
@@ -36,12 +50,15 @@ export declare class ServerFactory {
36
50
  * @returns The route
37
51
  */
38
52
  private _fetchRoute;
53
+ private _fetchInterceptors;
54
+ private _fetchHandler;
55
+ private _fetchExceptionFilters;
39
56
  /**
40
- * Extract parameters from the URL using the route pattern
41
- * @param pathname - The actual pathname
42
- * @param routePattern - The route pattern with :param syntax
43
- * @returns The extracted parameters
57
+ * Fetch the pipes for a controller method
58
+ * @param controller
59
+ * @param methodName
60
+ * @returns
44
61
  */
45
- private _extractParams;
62
+ private _fetchPipes;
46
63
  }
47
64
  //# 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":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAC5D,OAAO,EAAiB,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAE1E,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAErC,OAAO,EAAE,WAAW,EAAgB,MAAM,aAAa,CAAA;AAEvD,qBAAa,aAAa;IACxB,OAAO,CAAC,YAAY,CAAa;IAEjC,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;WAM3D,MAAM,CAAC,MAAM,EAAE,KAAK;IAUlC;;;OAGG;IACI,eAAe,CAAC,MAAM,EAAE,MAAM;IAIrC;;;;;OAKG;IACU,OAAO,CAClB,OAAO,EAAE,WAAW,EACpB,EAAE,MAAM,EAAE,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;KAAE;IA0EtC;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAUrB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAgBnB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;CAqBvB"}
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,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;IAYlE;;;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;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;IAUrB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;YAiBL,kBAAkB;IAqBhC,OAAO,CAAC,aAAa;YAiBP,sBAAsB;IAgBpC;;;;;OAKG;YACW,WAAW;CAqB1B"}