@forklaunch/core 0.2.37 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/lib/{src/database/mikro/models/entities/base.entity.d.ts → base.entity-DNfmMOgd.d.mts} +3 -2
  2. package/lib/base.entity-DNfmMOgd.d.ts +27 -0
  3. package/lib/{src/cache/redisTtlCache.d.ts → cache/index.d.mts} +67 -4
  4. package/lib/cache/index.d.ts +130 -0
  5. package/lib/cache/index.js +133 -0
  6. package/lib/cache/index.mjs +105 -0
  7. package/lib/controllers/index.d.mts +5 -0
  8. package/lib/controllers/index.d.ts +5 -0
  9. package/lib/controllers/index.js +18 -0
  10. package/lib/controllers/index.mjs +0 -0
  11. package/lib/database/index.d.mts +37 -0
  12. package/lib/{src/database/mikro/models/entities/mongo.base.entity.d.ts → database/index.d.ts} +5 -2
  13. package/lib/database/index.js +78 -0
  14. package/lib/database/index.mjs +53 -0
  15. package/lib/dtoMapper/index.d.mts +215 -0
  16. package/lib/dtoMapper/index.d.ts +215 -0
  17. package/lib/dtoMapper/index.js +235 -0
  18. package/lib/dtoMapper/index.mjs +213 -0
  19. package/lib/http/index.d.mts +910 -0
  20. package/lib/http/index.d.ts +910 -0
  21. package/lib/http/index.js +2189 -0
  22. package/lib/http/index.mjs +2134 -0
  23. package/lib/services/index.d.mts +69 -0
  24. package/lib/services/index.d.ts +69 -0
  25. package/lib/services/index.js +244 -0
  26. package/lib/services/index.mjs +215 -0
  27. package/package.json +68 -55
  28. package/lib/src/cache/index.d.ts +0 -5
  29. package/lib/src/cache/index.d.ts.map +0 -1
  30. package/lib/src/cache/index.js +0 -4
  31. package/lib/src/cache/interfaces/ttlCache.interface.d.ts +0 -48
  32. package/lib/src/cache/interfaces/ttlCache.interface.d.ts.map +0 -1
  33. package/lib/src/cache/interfaces/ttlCache.interface.js +0 -1
  34. package/lib/src/cache/redisTtlCache.d.ts.map +0 -1
  35. package/lib/src/cache/redisTtlCache.js +0 -98
  36. package/lib/src/cache/types/ttlCacheRecord.types.d.ts +0 -14
  37. package/lib/src/cache/types/ttlCacheRecord.types.d.ts.map +0 -1
  38. package/lib/src/cache/types/ttlCacheRecord.types.js +0 -1
  39. package/lib/src/cache/utils/cacheKey.d.ts +0 -2
  40. package/lib/src/cache/utils/cacheKey.d.ts.map +0 -1
  41. package/lib/src/cache/utils/cacheKey.js +0 -3
  42. package/lib/src/controllers/index.d.ts +0 -2
  43. package/lib/src/controllers/index.d.ts.map +0 -1
  44. package/lib/src/controllers/index.js +0 -1
  45. package/lib/src/controllers/interfaces/controller.interface.d.ts +0 -4
  46. package/lib/src/controllers/interfaces/controller.interface.d.ts.map +0 -1
  47. package/lib/src/controllers/interfaces/controller.interface.js +0 -1
  48. package/lib/src/database/index.d.ts +0 -3
  49. package/lib/src/database/index.d.ts.map +0 -1
  50. package/lib/src/database/index.js +0 -2
  51. package/lib/src/database/mikro/models/entities/base.entity.d.ts.map +0 -1
  52. package/lib/src/database/mikro/models/entities/base.entity.js +0 -42
  53. package/lib/src/database/mikro/models/entities/mongo.base.entity.d.ts.map +0 -1
  54. package/lib/src/database/mikro/models/entities/mongo.base.entity.js +0 -51
  55. package/lib/src/dtoMapper/index.d.ts +0 -3
  56. package/lib/src/dtoMapper/index.d.ts.map +0 -1
  57. package/lib/src/dtoMapper/index.js +0 -2
  58. package/lib/src/dtoMapper/interfaces/dtoMapper.interface.d.ts +0 -18
  59. package/lib/src/dtoMapper/interfaces/dtoMapper.interface.d.ts.map +0 -1
  60. package/lib/src/dtoMapper/interfaces/dtoMapper.interface.js +0 -1
  61. package/lib/src/dtoMapper/models/baseDtoMapper.model.d.ts +0 -72
  62. package/lib/src/dtoMapper/models/baseDtoMapper.model.d.ts.map +0 -1
  63. package/lib/src/dtoMapper/models/baseDtoMapper.model.js +0 -76
  64. package/lib/src/dtoMapper/models/requestDtoMapper.model.d.ts +0 -68
  65. package/lib/src/dtoMapper/models/requestDtoMapper.model.d.ts.map +0 -1
  66. package/lib/src/dtoMapper/models/requestDtoMapper.model.js +0 -71
  67. package/lib/src/dtoMapper/models/responseDtoMapper.model.d.ts +0 -67
  68. package/lib/src/dtoMapper/models/responseDtoMapper.model.d.ts.map +0 -1
  69. package/lib/src/dtoMapper/models/responseDtoMapper.model.js +0 -68
  70. package/lib/src/dtoMapper/types/dtoMapper.types.d.ts +0 -9
  71. package/lib/src/dtoMapper/types/dtoMapper.types.d.ts.map +0 -1
  72. package/lib/src/dtoMapper/types/dtoMapper.types.js +0 -1
  73. package/lib/src/http/application/expressLikeApplication.d.ts +0 -21
  74. package/lib/src/http/application/expressLikeApplication.d.ts.map +0 -1
  75. package/lib/src/http/application/expressLikeApplication.js +0 -21
  76. package/lib/src/http/guards/isConstrainedForklaunchRouter.d.ts +0 -4
  77. package/lib/src/http/guards/isConstrainedForklaunchRouter.d.ts.map +0 -1
  78. package/lib/src/http/guards/isConstrainedForklaunchRouter.js +0 -5
  79. package/lib/src/http/guards/isExpressLikeSchemaHandler.d.ts +0 -5
  80. package/lib/src/http/guards/isExpressLikeSchemaHandler.d.ts.map +0 -1
  81. package/lib/src/http/guards/isExpressLikeSchemaHandler.js +0 -6
  82. package/lib/src/http/guards/isForklaunchExpressLikeRouter.d.ts +0 -5
  83. package/lib/src/http/guards/isForklaunchExpressLikeRouter.d.ts.map +0 -1
  84. package/lib/src/http/guards/isForklaunchExpressLikeRouter.js +0 -6
  85. package/lib/src/http/guards/isForklaunchRouter.d.ts +0 -4
  86. package/lib/src/http/guards/isForklaunchRouter.d.ts.map +0 -1
  87. package/lib/src/http/guards/isForklaunchRouter.js +0 -7
  88. package/lib/src/http/guards/isHttpContractDetails.d.ts +0 -7
  89. package/lib/src/http/guards/isHttpContractDetails.d.ts.map +0 -1
  90. package/lib/src/http/guards/isHttpContractDetails.js +0 -9
  91. package/lib/src/http/guards/isPathParamContractDetails.d.ts +0 -4
  92. package/lib/src/http/guards/isPathParamContractDetails.d.ts.map +0 -1
  93. package/lib/src/http/guards/isPathParamContractDetails.js +0 -10
  94. package/lib/src/http/guards/isResponseShape.d.ts +0 -3
  95. package/lib/src/http/guards/isResponseShape.d.ts.map +0 -1
  96. package/lib/src/http/guards/isResponseShape.js +0 -7
  97. package/lib/src/http/guards/isTypedHandler.d.ts +0 -5
  98. package/lib/src/http/guards/isTypedHandler.d.ts.map +0 -1
  99. package/lib/src/http/guards/isTypedHandler.js +0 -6
  100. package/lib/src/http/handlers/delete.d.ts +0 -9
  101. package/lib/src/http/handlers/delete.d.ts.map +0 -1
  102. package/lib/src/http/handlers/delete.js +0 -4
  103. package/lib/src/http/handlers/get.d.ts +0 -9
  104. package/lib/src/http/handlers/get.d.ts.map +0 -1
  105. package/lib/src/http/handlers/get.js +0 -4
  106. package/lib/src/http/handlers/head.d.ts +0 -9
  107. package/lib/src/http/handlers/head.d.ts.map +0 -1
  108. package/lib/src/http/handlers/head.js +0 -4
  109. package/lib/src/http/handlers/middleware.d.ts +0 -9
  110. package/lib/src/http/handlers/middleware.d.ts.map +0 -1
  111. package/lib/src/http/handlers/middleware.js +0 -4
  112. package/lib/src/http/handlers/options.d.ts +0 -9
  113. package/lib/src/http/handlers/options.d.ts.map +0 -1
  114. package/lib/src/http/handlers/options.js +0 -4
  115. package/lib/src/http/handlers/patch.d.ts +0 -9
  116. package/lib/src/http/handlers/patch.d.ts.map +0 -1
  117. package/lib/src/http/handlers/patch.js +0 -4
  118. package/lib/src/http/handlers/post.d.ts +0 -9
  119. package/lib/src/http/handlers/post.d.ts.map +0 -1
  120. package/lib/src/http/handlers/post.js +0 -4
  121. package/lib/src/http/handlers/put.d.ts +0 -9
  122. package/lib/src/http/handlers/put.d.ts.map +0 -1
  123. package/lib/src/http/handlers/put.js +0 -4
  124. package/lib/src/http/handlers/trace.d.ts +0 -9
  125. package/lib/src/http/handlers/trace.d.ts.map +0 -1
  126. package/lib/src/http/handlers/trace.js +0 -4
  127. package/lib/src/http/handlers/typedAuthHandler.d.ts +0 -5
  128. package/lib/src/http/handlers/typedAuthHandler.d.ts.map +0 -1
  129. package/lib/src/http/handlers/typedAuthHandler.js +0 -3
  130. package/lib/src/http/handlers/typedHandler.d.ts +0 -21
  131. package/lib/src/http/handlers/typedHandler.d.ts.map +0 -1
  132. package/lib/src/http/handlers/typedHandler.js +0 -30
  133. package/lib/src/http/index.d.ts +0 -23
  134. package/lib/src/http/index.d.ts.map +0 -1
  135. package/lib/src/http/index.js +0 -22
  136. package/lib/src/http/interfaces/expressLikeRouter.interface.d.ts +0 -24
  137. package/lib/src/http/interfaces/expressLikeRouter.interface.d.ts.map +0 -1
  138. package/lib/src/http/interfaces/expressLikeRouter.interface.js +0 -1
  139. package/lib/src/http/middleware/request/auth.middleware.d.ts +0 -16
  140. package/lib/src/http/middleware/request/auth.middleware.d.ts.map +0 -1
  141. package/lib/src/http/middleware/request/auth.middleware.js +0 -143
  142. package/lib/src/http/middleware/request/cors.middleware.d.ts +0 -13
  143. package/lib/src/http/middleware/request/cors.middleware.d.ts.map +0 -1
  144. package/lib/src/http/middleware/request/cors.middleware.js +0 -15
  145. package/lib/src/http/middleware/request/createContext.middleware.d.ts +0 -15
  146. package/lib/src/http/middleware/request/createContext.middleware.d.ts.map +0 -1
  147. package/lib/src/http/middleware/request/createContext.middleware.js +0 -26
  148. package/lib/src/http/middleware/request/enrichDetails.middleware.d.ts +0 -15
  149. package/lib/src/http/middleware/request/enrichDetails.middleware.d.ts.map +0 -1
  150. package/lib/src/http/middleware/request/enrichDetails.middleware.js +0 -19
  151. package/lib/src/http/middleware/request/parse.middleware.d.ts +0 -17
  152. package/lib/src/http/middleware/request/parse.middleware.d.ts.map +0 -1
  153. package/lib/src/http/middleware/request/parse.middleware.js +0 -43
  154. package/lib/src/http/middleware/response/parse.middleware.d.ts +0 -31
  155. package/lib/src/http/middleware/response/parse.middleware.d.ts.map +0 -1
  156. package/lib/src/http/middleware/response/parse.middleware.js +0 -52
  157. package/lib/src/http/openApiV3Generator/openApiV3Generator.d.ts +0 -14
  158. package/lib/src/http/openApiV3Generator/openApiV3Generator.d.ts.map +0 -1
  159. package/lib/src/http/openApiV3Generator/openApiV3Generator.js +0 -169
  160. package/lib/src/http/router/expressLikeRouter.d.ts +0 -138
  161. package/lib/src/http/router/expressLikeRouter.d.ts.map +0 -1
  162. package/lib/src/http/router/expressLikeRouter.js +0 -483
  163. package/lib/src/http/types/apiDefinition.types.d.ts +0 -260
  164. package/lib/src/http/types/apiDefinition.types.d.ts.map +0 -1
  165. package/lib/src/http/types/apiDefinition.types.js +0 -1
  166. package/lib/src/http/types/contractDetails.types.d.ts +0 -211
  167. package/lib/src/http/types/contractDetails.types.d.ts.map +0 -1
  168. package/lib/src/http/types/contractDetails.types.js +0 -1
  169. package/lib/src/http/types/expressLikeRouter.types.d.ts +0 -51
  170. package/lib/src/http/types/expressLikeRouter.types.d.ts.map +0 -1
  171. package/lib/src/http/types/expressLikeRouter.types.js +0 -1
  172. package/lib/src/http/types/router.types.d.ts +0 -32
  173. package/lib/src/http/types/router.types.d.ts.map +0 -1
  174. package/lib/src/http/types/router.types.js +0 -1
  175. package/lib/src/http/types/typedHandler.types.d.ts +0 -10
  176. package/lib/src/http/types/typedHandler.types.d.ts.map +0 -1
  177. package/lib/src/http/types/typedHandler.types.js +0 -1
  178. package/lib/src/http/utils/enrichExpressLikeSend.d.ts +0 -32
  179. package/lib/src/http/utils/enrichExpressLikeSend.d.ts.map +0 -1
  180. package/lib/src/http/utils/enrichExpressLikeSend.js +0 -50
  181. package/lib/src/http/utils/httpStatusCodes.d.ts +0 -75
  182. package/lib/src/http/utils/httpStatusCodes.d.ts.map +0 -1
  183. package/lib/src/http/utils/httpStatusCodes.js +0 -1039
  184. package/lib/src/services/configInjector.d.ts +0 -21
  185. package/lib/src/services/configInjector.d.ts.map +0 -1
  186. package/lib/src/services/configInjector.js +0 -90
  187. package/lib/src/services/index.d.ts +0 -5
  188. package/lib/src/services/index.d.ts.map +0 -1
  189. package/lib/src/services/index.js +0 -4
  190. package/lib/src/services/interfaces/baseService.d.ts +0 -15
  191. package/lib/src/services/interfaces/baseService.d.ts.map +0 -1
  192. package/lib/src/services/interfaces/baseService.js +0 -1
  193. package/lib/src/services/types/configInjector.types.d.ts +0 -25
  194. package/lib/src/services/types/configInjector.types.d.ts.map +0 -1
  195. package/lib/src/services/types/configInjector.types.js +0 -6
  196. package/lib/src/services/types/entityManager.types.d.ts +0 -4
  197. package/lib/src/services/types/entityManager.types.d.ts.map +0 -1
  198. package/lib/src/services/types/entityManager.types.js +0 -1
  199. package/lib/tests/configInjector.test.d.ts +0 -2
  200. package/lib/tests/configInjector.test.d.ts.map +0 -1
  201. package/lib/tests/configInjector.test.js +0 -105
  202. package/lib/tests/dtoMapper.test.d.ts +0 -2
  203. package/lib/tests/dtoMapper.test.d.ts.map +0 -1
  204. package/lib/tests/dtoMapper.test.js +0 -170
  205. package/lib/tests/expressLikeRouterInstantiation.test.d.ts +0 -2
  206. package/lib/tests/expressLikeRouterInstantiation.test.d.ts.map +0 -1
  207. package/lib/tests/expressLikeRouterInstantiation.test.js +0 -118
  208. package/lib/tests/http.middleware.test.d.ts +0 -2
  209. package/lib/tests/http.middleware.test.d.ts.map +0 -1
  210. package/lib/tests/http.middleware.test.js +0 -102
  211. package/lib/tests/openApiV3Generator.test.d.ts +0 -2
  212. package/lib/tests/openApiV3Generator.test.d.ts.map +0 -1
  213. package/lib/tests/openApiV3Generator.test.js +0 -66
  214. package/lib/tests/redisTtlCache.test.d.ts +0 -2
  215. package/lib/tests/redisTtlCache.test.d.ts.map +0 -1
  216. package/lib/tests/redisTtlCache.test.js +0 -49
  217. package/lib/tests/typedHandler.test.d.ts +0 -2
  218. package/lib/tests/typedHandler.test.d.ts.map +0 -1
  219. package/lib/tests/typedHandler.test.js +0 -3
  220. package/lib/vitest.config.d.ts +0 -3
  221. package/lib/vitest.config.d.ts.map +0 -1
  222. package/lib/vitest.config.js +0 -7
@@ -1,21 +0,0 @@
1
- import { AnySchemaValidator, ParseResult } from '@forklaunch/validator';
2
- import { ConfigValidator, Constructed, ResolvedConfigValidator, Singleton } from './types/configInjector.types';
3
- export declare class ConfigInjector<SV extends AnySchemaValidator, CV extends ConfigValidator<SV>> {
4
- private schemaValidator;
5
- private configShapes;
6
- private dependenciesDefinition;
7
- instances: {
8
- [K in keyof CV]?: ResolvedConfigValidator<SV, CV>[K];
9
- };
10
- private loadSingletons;
11
- private resolveInstance;
12
- constructor(schemaValidator: SV, configShapes: CV, dependenciesDefinition: {
13
- [K in keyof CV]: Singleton<ResolvedConfigValidator<SV, CV>[K]> | Constructed<Omit<ResolvedConfigValidator<SV, CV>, K>, ResolvedConfigValidator<SV, CV>[K]>;
14
- });
15
- validateConfigSingletons(config: Partial<ResolvedConfigValidator<SV, CV>>): ParseResult<unknown>;
16
- resolve<T extends keyof CV>(token: T, context?: Record<string, unknown>, resolutionPath?: (keyof CV)[]): ResolvedConfigValidator<SV, CV>[T];
17
- scopedResolver<T extends keyof CV>(token: T, context?: Record<string, unknown>, resolutionPath?: (keyof CV)[]): (scope?: ConfigInjector<SV, CV>) => ResolvedConfigValidator<SV, CV>[T];
18
- createScope(): ConfigInjector<SV, CV>;
19
- dispose(): void;
20
- }
21
- //# sourceMappingURL=configInjector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"configInjector.d.ts","sourceRoot":"","sources":["../../../src/services/configInjector.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,WAAW,EAEZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,eAAe,EACf,WAAW,EAEX,uBAAuB,EACvB,SAAS,EACV,MAAM,8BAA8B,CAAC;AAEtC,qBAAa,cAAc,CACzB,EAAE,SAAS,kBAAkB,EAC7B,EAAE,SAAS,eAAe,CAAC,EAAE,CAAC;IAgE5B,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,sBAAsB;IAhEhC,SAAS,EAAE;SACR,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,uBAAuB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;KACrD,CAAM;IAEP,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,eAAe;gBAiDb,eAAe,EAAE,EAAE,EACnB,YAAY,EAAE,EAAE,EAChB,sBAAsB,EAAE;SAC7B,CAAC,IAAI,MAAM,EAAE,GACV,SAAS,CAAC,uBAAuB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAC7C,WAAW,CACT,IAAI,CAAC,uBAAuB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EACxC,uBAAuB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CACnC;KACN;IAKH,wBAAwB,CACtB,MAAM,EAAE,OAAO,CAAC,uBAAuB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAC/C,WAAW,CAAC,OAAO,CAAC;IAgBvB,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,EACxB,KAAK,EAAE,CAAC,EACR,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,cAAc,GAAE,CAAC,MAAM,EAAE,CAAC,EAAO,GAChC,uBAAuB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IA2CrC,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,EAC/B,KAAK,EAAE,CAAC,EACR,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,cAAc,GAAE,CAAC,MAAM,EAAE,CAAC,EAAO,GAChC,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,uBAAuB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAKzE,WAAW,IAAI,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC;IAQrC,OAAO,IAAI,IAAI;CAIhB"}
@@ -1,90 +0,0 @@
1
- import { extractArgumentNames, isNever } from '@forklaunch/common';
2
- import { Lifetime } from './types/configInjector.types';
3
- export class ConfigInjector {
4
- schemaValidator;
5
- configShapes;
6
- dependenciesDefinition;
7
- instances = {};
8
- loadSingletons() {
9
- for (const token in this.dependenciesDefinition) {
10
- const definition = this.dependenciesDefinition[token];
11
- if (definition.lifetime === Lifetime.Singleton) {
12
- this.instances[token] = definition.value;
13
- }
14
- }
15
- }
16
- resolveInstance(token, definition, context, resolutionPath = []) {
17
- const injectorArgument = extractArgumentNames(definition.factory)[0];
18
- // short circuit as no args
19
- if (injectorArgument === '_args') {
20
- return definition.factory({}, this.resolve.bind(this), context ?? {});
21
- }
22
- if (!injectorArgument.startsWith('{') || !injectorArgument.endsWith('}')) {
23
- throw new Error(`Invalid injector argument for ${String(token)}: ${injectorArgument}. Please use object destructuring syntax: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment.`);
24
- }
25
- const resolvedArguments = Object.fromEntries(injectorArgument
26
- .replace('{', '')
27
- .replace('}', '')
28
- .split(',')
29
- .map((arg) => arg.split(':')[0].trim())
30
- .map((arg) => {
31
- const newResolutionPath = [...resolutionPath, token];
32
- if (resolutionPath.includes(arg)) {
33
- throw new Error(`Circular dependency detected: ${newResolutionPath.join(' -> ')} -> ${arg}`);
34
- }
35
- const resolvedArg = this.resolve(arg, context, newResolutionPath);
36
- return [arg, resolvedArg];
37
- }));
38
- return definition.factory(resolvedArguments, this.resolve.bind(this), context ?? {});
39
- }
40
- constructor(schemaValidator, configShapes, dependenciesDefinition) {
41
- this.schemaValidator = schemaValidator;
42
- this.configShapes = configShapes;
43
- this.dependenciesDefinition = dependenciesDefinition;
44
- this.loadSingletons();
45
- }
46
- validateConfigSingletons(config) {
47
- return this.schemaValidator.parse(this.schemaValidator.schemify(Object.fromEntries(Object.entries(this.configShapes).filter(([key, value]) => this.dependenciesDefinition[key].lifetime ===
48
- Lifetime.Singleton &&
49
- this.schemaValidator.isSchema(value)))), config);
50
- }
51
- resolve(token, context, resolutionPath = []) {
52
- const instance = this.instances[token];
53
- if (!instance) {
54
- const definition = this.dependenciesDefinition[token];
55
- if (!definition) {
56
- throw new Error(`Unable to resolve dependency ${String(token)}`);
57
- }
58
- switch (definition.lifetime) {
59
- case Lifetime.Singleton: {
60
- return definition.value;
61
- }
62
- case Lifetime.Scoped: {
63
- const scopedInstance = this.resolveInstance(token, definition, context, resolutionPath);
64
- this.instances[token] = scopedInstance;
65
- return scopedInstance;
66
- }
67
- case Lifetime.Transient: {
68
- return this.resolveInstance(token, definition, context, resolutionPath);
69
- }
70
- default: {
71
- isNever(definition);
72
- throw new Error(`Unable to resolve lifetime for dependency ${String(token)}, ${resolutionPath}`);
73
- }
74
- }
75
- }
76
- else {
77
- return instance;
78
- }
79
- }
80
- scopedResolver(token, context, resolutionPath = []) {
81
- return (scope) => (scope ?? this.createScope()).resolve(token, context, resolutionPath);
82
- }
83
- createScope() {
84
- return new ConfigInjector(this.schemaValidator, this.configShapes, this.dependenciesDefinition);
85
- }
86
- dispose() {
87
- this.instances = {};
88
- this.loadSingletons();
89
- }
90
- }
@@ -1,5 +0,0 @@
1
- export * from './configInjector';
2
- export * from './interfaces/baseService';
3
- export * from './types/configInjector.types';
4
- export * from './types/entityManager.types';
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC"}
@@ -1,4 +0,0 @@
1
- export * from './configInjector';
2
- export * from './interfaces/baseService';
3
- export * from './types/configInjector.types';
4
- export * from './types/entityManager.types';
@@ -1,15 +0,0 @@
1
- import { EntityManager } from '@mikro-orm/core';
2
- /**
3
- * Interface representing a base service.
4
- *
5
- * @interface BaseService
6
- */
7
- export interface BaseService {
8
- /**
9
- * The EntityManager instance for managing entities.
10
- *
11
- * @type {EntityManager}
12
- */
13
- em: EntityManager;
14
- }
15
- //# sourceMappingURL=baseService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"baseService.d.ts","sourceRoot":"","sources":["../../../../src/services/interfaces/baseService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,EAAE,EAAE,aAAa,CAAC;CACnB"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,25 +0,0 @@
1
- import { AnySchemaValidator, IdiomaticSchema, Schema } from '@forklaunch/validator';
2
- import { ConfigInjector } from '../configInjector';
3
- export declare enum Lifetime {
4
- Singleton = 0,
5
- Transient = 1,
6
- Scoped = 2
7
- }
8
- export type Singleton<Value> = {
9
- lifetime: Lifetime.Singleton;
10
- value: Value;
11
- };
12
- export type Constructed<Args, Return> = {
13
- lifetime: Lifetime.Transient | Lifetime.Scoped;
14
- factory: (args: Args, resolve: <T extends keyof Args>(token: T, context?: Record<string, unknown>) => Args[T], context: Record<string, unknown>) => Return;
15
- };
16
- export type Constructor = new (...args: never[]) => unknown;
17
- export type SchemaConstructor<SV extends AnySchemaValidator> = new (...args: unknown[]) => IdiomaticSchema<SV>;
18
- export type Function = (...args: never[]) => unknown;
19
- export type SchemaFunction<SV extends AnySchemaValidator> = (args: unknown) => IdiomaticSchema<SV>;
20
- export type ConfigValidator<SV extends AnySchemaValidator> = Record<string, Function | SchemaFunction<SV> | Constructor | SchemaConstructor<SV> | IdiomaticSchema<SV>>;
21
- export type ResolvedConfigValidator<SV extends AnySchemaValidator, CV extends ConfigValidator<SV>> = {
22
- [M in keyof CV]: CV[M] extends SchemaConstructor<SV> ? Schema<InstanceType<CV[M]>, SV> : CV[M] extends SchemaFunction<SV> ? Schema<ReturnType<CV[M]>, SV> : CV[M] extends Function ? ReturnType<CV[M]> : CV[M] extends Constructor ? InstanceType<CV[M]> : Schema<CV[M], SV>;
23
- };
24
- export type ScopedDependencyFactory<SV extends AnySchemaValidator, CV extends ConfigValidator<SV>, M extends keyof CV> = (scope?: ConfigInjector<SV, CV>) => ResolvedConfigValidator<SV, CV>[M];
25
- //# sourceMappingURL=configInjector.types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"configInjector.types.d.ts","sourceRoot":"","sources":["../../../../src/services/types/configInjector.types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,MAAM,EACP,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,oBAAY,QAAQ;IAClB,SAAS,IAAA;IACT,SAAS,IAAA;IACT,MAAM,IAAA;CACP;AAED,MAAM,MAAM,SAAS,CAAC,KAAK,IAAI;IAC7B,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC;IAC7B,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,IAAI,EAAE,MAAM,IAAI;IACtC,QAAQ,EAAE,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/C,OAAO,EAAE,CACP,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,CAAC,CAAC,SAAS,MAAM,IAAI,EAC5B,KAAK,EAAE,CAAC,EACR,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,IAAI,CAAC,CAAC,CAAC,EACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC7B,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAC;AAC5D,MAAM,MAAM,iBAAiB,CAAC,EAAE,SAAS,kBAAkB,IAAI,KAC7D,GAAG,IAAI,EAAE,OAAO,EAAE,KACf,eAAe,CAAC,EAAE,CAAC,CAAC;AACzB,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAC;AACrD,MAAM,MAAM,cAAc,CAAC,EAAE,SAAS,kBAAkB,IAAI,CAC1D,IAAI,EAAE,OAAO,KACV,eAAe,CAAC,EAAE,CAAC,CAAC;AAEzB,MAAM,MAAM,eAAe,CAAC,EAAE,SAAS,kBAAkB,IAAI,MAAM,CACjE,MAAM,EACJ,QAAQ,GACR,cAAc,CAAC,EAAE,CAAC,GAClB,WAAW,GACX,iBAAiB,CAAC,EAAE,CAAC,GACrB,eAAe,CAAC,EAAE,CAAC,CACtB,CAAC;AAEF,MAAM,MAAM,uBAAuB,CACjC,EAAE,SAAS,kBAAkB,EAC7B,EAAE,SAAS,eAAe,CAAC,EAAE,CAAC,IAC5B;KACD,CAAC,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,iBAAiB,CAAC,EAAE,CAAC,GAChD,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAC/B,EAAE,CAAC,CAAC,CAAC,SAAS,cAAc,CAAC,EAAE,CAAC,GAC9B,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAC7B,EAAE,CAAC,CAAC,CAAC,SAAS,QAAQ,GACpB,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GACjB,EAAE,CAAC,CAAC,CAAC,SAAS,WAAW,GACvB,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GACnB,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,uBAAuB,CACjC,EAAE,SAAS,kBAAkB,EAC7B,EAAE,SAAS,eAAe,CAAC,EAAE,CAAC,EAC9B,CAAC,SAAS,MAAM,EAAE,IAChB,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,uBAAuB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -1,6 +0,0 @@
1
- export var Lifetime;
2
- (function (Lifetime) {
3
- Lifetime[Lifetime["Singleton"] = 0] = "Singleton";
4
- Lifetime[Lifetime["Transient"] = 1] = "Transient";
5
- Lifetime[Lifetime["Scoped"] = 2] = "Scoped";
6
- })(Lifetime || (Lifetime = {}));
@@ -1,4 +0,0 @@
1
- export type EntityManager = {
2
- fork: <Options>(options?: Options) => EntityManager;
3
- };
4
- //# sourceMappingURL=entityManager.types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entityManager.types.d.ts","sourceRoot":"","sources":["../../../../src/services/types/entityManager.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,aAAa,CAAC;CACrD,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=configInjector.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"configInjector.test.d.ts","sourceRoot":"","sources":["../../tests/configInjector.test.ts"],"names":[],"mappings":""}
@@ -1,105 +0,0 @@
1
- import { number, SchemaValidator, string } from '@forklaunch/validator/zod';
2
- import { ConfigInjector } from '../src/services/configInjector';
3
- import { Lifetime } from '../src/services/types/configInjector.types';
4
- class X {
5
- a;
6
- b;
7
- constructor(a, b) {
8
- this.a = a;
9
- this.b = b;
10
- }
11
- dummy() {
12
- return `${this.a}${this.b()}`;
13
- }
14
- }
15
- const configValidator = {
16
- a: string,
17
- b: number,
18
- c: X,
19
- d: number,
20
- e: number,
21
- f: number,
22
- g: number
23
- };
24
- describe('serviceFactory', () => {
25
- const configInjector = new ConfigInjector(SchemaValidator(), configValidator, {
26
- a: {
27
- lifetime: Lifetime.Singleton,
28
- value: 'a'
29
- },
30
- b: {
31
- lifetime: Lifetime.Transient,
32
- factory: ({ a }) => 5
33
- },
34
- c: {
35
- lifetime: Lifetime.Scoped,
36
- factory: ({ a }, resolve, context) => {
37
- const b = () => resolve('b') * context.num;
38
- return new X(a, b);
39
- }
40
- },
41
- d: {
42
- lifetime: Lifetime.Transient,
43
- factory: ({ a, e }) => e
44
- },
45
- e: {
46
- lifetime: Lifetime.Transient,
47
- factory: ({ f }) => f
48
- },
49
- f: {
50
- lifetime: Lifetime.Transient,
51
- factory: ({ d }) => d
52
- },
53
- g: {
54
- lifetime: Lifetime.Transient,
55
- factory: (_args) => 6
56
- }
57
- });
58
- test('loadSingletons', () => {
59
- expect(configInjector.instances).toEqual({
60
- a: 'a'
61
- });
62
- });
63
- test('basicResolve', () => {
64
- expect(configInjector.resolve('a')).toBe('a');
65
- expect(configInjector.resolve('b')).toBe(5);
66
- expect(configInjector
67
- .resolve('c', {
68
- num: 4
69
- })
70
- .dummy()).toBe('a20');
71
- expect(Object.keys(configInjector.instances)).toEqual(['a', 'c']);
72
- });
73
- test('circular dependency', () => {
74
- expect(() => configInjector.resolve('d')).toThrowErrorMatchingInlineSnapshot('[Error: Circular dependency detected: d -> e -> f -> d]');
75
- expect(() => configInjector.resolve('e')).toThrowErrorMatchingInlineSnapshot('[Error: Circular dependency detected: e -> f -> d -> e]');
76
- expect(() => {
77
- configInjector.resolve('f');
78
- }).toThrowErrorMatchingInlineSnapshot('[Error: Circular dependency detected: f -> d -> e -> f]');
79
- });
80
- test('validateConfigSingletons', () => {
81
- expect(configInjector.validateConfigSingletons({
82
- a: 'a'
83
- }).ok).toBe(true);
84
- expect(configInjector.validateConfigSingletons({
85
- a: 5
86
- }).ok).toBe(false);
87
- });
88
- test('createScope', () => {
89
- const scope = configInjector.createScope();
90
- expect(scope).toBeInstanceOf(ConfigInjector);
91
- expect(scope.instances).not.toEqual(configInjector.instances);
92
- });
93
- test('scoped resolver', () => {
94
- const scope = configInjector.createScope();
95
- scope.resolve('c', {
96
- num: 5
97
- });
98
- expect(configInjector.resolve('c').dummy()).toEqual('a20');
99
- expect(configInjector.scopedResolver('c')(scope).dummy()).toEqual('a25');
100
- });
101
- test('dispose', () => {
102
- configInjector.dispose();
103
- expect(configInjector.instances).toEqual({ a: 'a' });
104
- });
105
- });
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=dtoMapper.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dtoMapper.test.d.ts","sourceRoot":"","sources":["../../tests/dtoMapper.test.ts"],"names":[],"mappings":""}
@@ -1,170 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { SchemaValidator, number, string } from '@forklaunch/validator/typebox';
8
- import { Property } from '@mikro-orm/core';
9
- import { BaseEntity } from '../src/database/mikro/models/entities/base.entity';
10
- import { RequestDtoMapper } from '../src/dtoMapper/models/requestDtoMapper.model';
11
- import { ResponseDtoMapper } from '../src/dtoMapper/models/responseDtoMapper.model';
12
- const SV = SchemaValidator();
13
- class TestEntity extends BaseEntity {
14
- name;
15
- age;
16
- }
17
- __decorate([
18
- Property()
19
- ], TestEntity.prototype, "name", void 0);
20
- __decorate([
21
- Property()
22
- ], TestEntity.prototype, "age", void 0);
23
- class TestRequestDtoMapper extends RequestDtoMapper {
24
- schema = {
25
- id: string,
26
- name: string,
27
- age: number
28
- };
29
- toEntity(arg1, arg2) {
30
- const entity = new TestEntity();
31
- entity.id = this.dto.id;
32
- entity.name = this.dto.name;
33
- entity.age = this.dto.age;
34
- return entity;
35
- }
36
- }
37
- class TestResponseDtoMapper extends ResponseDtoMapper {
38
- schema = {
39
- id: string,
40
- name: string,
41
- age: number
42
- };
43
- fromEntity(entity, arg1, arg2) {
44
- this.dto = {
45
- id: entity.id,
46
- name: entity.name,
47
- age: entity.age
48
- };
49
- return this;
50
- }
51
- }
52
- function extractNonTimeBasedEntityFields(entity) {
53
- entity.createdAt = new Date(0);
54
- entity.updatedAt = new Date(0);
55
- return entity;
56
- }
57
- function genericDtoWrapperFunction(dto) {
58
- return dto;
59
- }
60
- describe('request dtoMapper tests', () => {
61
- let TestRequestDM;
62
- beforeAll(() => {
63
- TestRequestDM = new TestRequestDtoMapper(SV);
64
- });
65
- test('schema static and constructed equality', async () => {
66
- expect(TestRequestDM.schema).toEqual(TestRequestDtoMapper.schema());
67
- });
68
- test('from JSON', async () => {
69
- const json = {
70
- id: '123',
71
- name: 'test',
72
- age: 1
73
- };
74
- const responseDM = TestRequestDM.fromDto(json);
75
- const staticDM = TestRequestDtoMapper.fromDto(SV, json);
76
- const expectedDto = {
77
- id: '123',
78
- name: 'test',
79
- age: 1
80
- };
81
- expect(staticDM.dto).toEqual(expectedDto);
82
- expect(responseDM.dto).toEqual(expectedDto);
83
- expect(responseDM.dto).toEqual(staticDM.dto);
84
- });
85
- test('deserialize', async () => {
86
- const json = {
87
- id: '123',
88
- name: 'test',
89
- age: 1
90
- };
91
- const entity = extractNonTimeBasedEntityFields(TestRequestDM.deserializeDtoToEntity(json, 'arg1'));
92
- const objectEntity = extractNonTimeBasedEntityFields(TestRequestDM.fromDto(json).toEntity('arg1'));
93
- const staticEntity = extractNonTimeBasedEntityFields(TestRequestDtoMapper.deserializeDtoToEntity(SV, json, 'arg1', 'arg2'));
94
- let expectedEntity = new TestEntity();
95
- expectedEntity.id = '123';
96
- expectedEntity.name = 'test';
97
- expectedEntity.age = 1;
98
- expectedEntity = extractNonTimeBasedEntityFields(expectedEntity);
99
- expect(entity).toEqual(expectedEntity);
100
- expect(objectEntity).toEqual(expectedEntity);
101
- expect(staticEntity).toEqual(expectedEntity);
102
- expect(entity).toEqual(objectEntity);
103
- expect(entity).toEqual(staticEntity);
104
- expect(staticEntity).toEqual(expectedEntity);
105
- expect(staticEntity).toEqual(objectEntity);
106
- });
107
- test('serialize failure', async () => {
108
- const json = {
109
- id: '123',
110
- name: 'test'
111
- };
112
- // @ts-expect-error
113
- expect(() => TestRequestDM.fromDto(json)).toThrow();
114
- // @ts-expect-error
115
- expect(() => TestRequestDtoMapper.fromDto(SV, json)).toThrow();
116
- });
117
- });
118
- describe('response dtoMapper tests', () => {
119
- let TestResponseDM;
120
- beforeAll(() => {
121
- TestResponseDM = new TestResponseDtoMapper(SV);
122
- });
123
- test('schema static and constructed equality', async () => {
124
- expect(TestResponseDM.schema).toEqual(TestResponseDtoMapper.schema());
125
- });
126
- test('from entity', async () => {
127
- const entity = new TestEntity();
128
- entity.id = '123';
129
- entity.name = 'test';
130
- entity.age = 1;
131
- const responseDM = TestResponseDM.fromEntity(entity, 'arg1');
132
- const staticDM = TestResponseDtoMapper.fromEntity(SV, entity, 'arg1');
133
- const expectedDto = {
134
- id: '123',
135
- name: 'test',
136
- age: 1
137
- };
138
- expect(staticDM.dto).toEqual(expectedDto);
139
- expect(responseDM.dto).toEqual(expectedDto);
140
- expect(responseDM.dto).toEqual(staticDM.dto);
141
- });
142
- test('serialize', async () => {
143
- const entity = new TestEntity();
144
- entity.id = '123';
145
- entity.name = 'test';
146
- entity.age = 1;
147
- const json = genericDtoWrapperFunction(TestResponseDM.serializeEntityToDto(entity, 'arg1'));
148
- const objectJson = genericDtoWrapperFunction(TestResponseDM.fromEntity(entity, 'arg1').toDto());
149
- const staticJson = genericDtoWrapperFunction(TestResponseDtoMapper.serializeEntityToDto(SV, entity, 'arg1', 'arg2'));
150
- const expectedJson = {
151
- id: '123',
152
- name: 'test',
153
- age: 1
154
- };
155
- expect(json).toEqual(expectedJson);
156
- expect(objectJson).toEqual(expectedJson);
157
- expect(staticJson).toEqual(expectedJson);
158
- expect(json).toEqual(objectJson);
159
- expect(json).toEqual(staticJson);
160
- expect(staticJson).toEqual(expectedJson);
161
- expect(staticJson).toEqual(objectJson);
162
- });
163
- test('deserialize failure', async () => {
164
- const entity = new TestEntity();
165
- entity.id = '123';
166
- entity.name = 'test';
167
- expect(() => TestResponseDM.fromEntity(entity, 'arg1').toDto()).toThrow();
168
- expect(() => TestResponseDtoMapper.fromEntity(SV, entity, 'arg1', 'arg2').toDto()).toThrow();
169
- });
170
- });
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=expressLikeRouterInstantiation.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"expressLikeRouterInstantiation.test.d.ts","sourceRoot":"","sources":["../../tests/expressLikeRouterInstantiation.test.ts"],"names":[],"mappings":""}
@@ -1,118 +0,0 @@
1
- import { date, number, SchemaValidator, string } from '@forklaunch/validator/typebox';
2
- import { ForklaunchExpressLikeRouter, typedHandler } from '../src/http';
3
- import { typedAuthHandler } from '../src/http/handlers/typedAuthHandler';
4
- // TODO: write tests
5
- const contractDetails = {
6
- name: 'string',
7
- summary: 'string',
8
- params: {
9
- name: string,
10
- id: number
11
- // a: string
12
- },
13
- requestHeaders: {
14
- 'x-test': number
15
- },
16
- responses: {
17
- 200: date,
18
- 400: string
19
- }
20
- };
21
- const kl = typedAuthHandler(SchemaValidator(), contractDetails, (sub, req) => {
22
- const j = req?.params.id;
23
- const x = req?.headers['x-test'];
24
- return new Set(['admin', 'user']);
25
- });
26
- const xasd = typedHandler(SchemaValidator(), '/test/:name/:id', 'trace', {
27
- name: 'string',
28
- summary: 'string',
29
- params: {
30
- name: string,
31
- id: number
32
- },
33
- requestHeaders: {
34
- 'x-test': number
35
- },
36
- responses: {
37
- 200: date,
38
- 400: string
39
- },
40
- auth: {
41
- method: 'jwt',
42
- mapPermissions: kl,
43
- // (sub, req) => {
44
- // const j = req?.params.id;
45
- // return new Set(['admin', 'user']);
46
- // },
47
- allowedPermissions: new Set(['admin', 'user'])
48
- }
49
- }, async (req, res) => {
50
- // const r = req.params.a;
51
- const i = req.headers['x-test'] * 7;
52
- const l = res.getHeaders()['x-correlation-id'];
53
- }, async (req, res) => {
54
- // const r = req.params.a;
55
- const i = req.headers['x-test'] * 7;
56
- const l = res.getHeaders()['x-correlation-id'];
57
- res.status(200).send(new Date());
58
- });
59
- const xa = new ForklaunchExpressLikeRouter('/l', SchemaValidator(), {
60
- use: () => { },
61
- get: () => { },
62
- post: () => { },
63
- put: () => { },
64
- delete: () => { },
65
- all: () => { },
66
- connect: () => { },
67
- patch: () => { },
68
- options: () => { },
69
- head: () => { },
70
- trace: () => { }
71
- });
72
- const bl = xa.trace('/test/:name/:id', {
73
- name: 'string',
74
- summary: 'string',
75
- params: {
76
- name: string,
77
- id: number
78
- // a: string
79
- },
80
- requestHeaders: {
81
- 'x-test': number
82
- },
83
- responses: {
84
- 200: date,
85
- 400: string
86
- },
87
- auth: {
88
- method: 'jwt',
89
- // mapPermissions: (sub, req) => {
90
- // const j = req?.params.id;
91
- // return new Set(['admin', 'user']);
92
- // },
93
- mapPermissions: kl,
94
- mapRoles: kl,
95
- allowedPermissions: new Set(['admin', 'user'])
96
- }
97
- }, async (req, res) => {
98
- const i = req.headers['x-test'] * 7;
99
- const l = res.getHeaders()['x-correlation-id'];
100
- res.status(200).send(new Date());
101
- });
102
- const a = xa.trace('/test/:name/:id', contractDetails, async (req, res) => {
103
- // const r = req.params.a;
104
- const i = req.headers['x-test'] * 7;
105
- const l = res.getHeaders()['x-correlation-id'];
106
- }, async (req, res) => {
107
- // const r = req.params.a;
108
- const i = req.headers['x-test'] * 7;
109
- const l = res.getHeaders()['x-correlation-id'];
110
- res.status(200).send(new Date());
111
- });
112
- const b = xa.trace('/test/:name/:id', async (req, res) => {
113
- const i = req.headers['x-test'] * 7;
114
- const l = res.getHeaders()['x-correlation-id'];
115
- res.status(200).send(new Date());
116
- }, xasd);
117
- const c = xa.trace('/test/:name/:id', xasd);
118
- xa.all(contractDetails, async (req, res) => { });
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=http.middleware.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http.middleware.test.d.ts","sourceRoot":"","sources":["../../tests/http.middleware.test.ts"],"names":[],"mappings":""}