@carno.js/core 0.2.11 → 1.0.2

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 (314) hide show
  1. package/LICENSE +673 -673
  2. package/README.md +188 -0
  3. package/dist/Carno.js +272 -333
  4. package/dist/Carno.mjs +268 -0
  5. package/dist/DefaultRoutes.js +51 -0
  6. package/dist/DefaultRoutes.mjs +34 -0
  7. package/dist/bun/index.js +183 -0
  8. package/dist/bun/index.js.map +86 -0
  9. package/dist/cache/CacheDriver.js +13 -0
  10. package/dist/cache/CacheDriver.mjs +0 -0
  11. package/dist/cache/CacheService.js +113 -0
  12. package/dist/cache/CacheService.mjs +93 -0
  13. package/dist/cache/MemoryDriver.js +66 -0
  14. package/dist/cache/MemoryDriver.mjs +46 -0
  15. package/dist/cache/RedisDriver.js +81 -0
  16. package/dist/cache/RedisDriver.mjs +61 -0
  17. package/dist/compiler/JITCompiler.js +111 -0
  18. package/dist/compiler/JITCompiler.mjs +89 -0
  19. package/dist/container/Container.js +99 -0
  20. package/dist/container/Container.mjs +78 -0
  21. package/dist/context/Context.js +97 -0
  22. package/dist/context/Context.mjs +77 -0
  23. package/dist/cors/CorsHandler.js +90 -0
  24. package/dist/cors/CorsHandler.mjs +68 -0
  25. package/dist/decorators/Controller.js +42 -0
  26. package/dist/decorators/Controller.mjs +22 -0
  27. package/dist/decorators/Inject.js +30 -0
  28. package/dist/decorators/Inject.mjs +10 -0
  29. package/dist/decorators/Middleware.js +35 -0
  30. package/dist/decorators/Middleware.mjs +15 -0
  31. package/dist/decorators/Service.js +31 -0
  32. package/dist/decorators/Service.mjs +12 -0
  33. package/dist/decorators/methods.js +60 -0
  34. package/dist/decorators/methods.mjs +34 -0
  35. package/dist/decorators/params.js +63 -0
  36. package/dist/decorators/params.mjs +37 -0
  37. package/dist/events/Lifecycle.js +69 -0
  38. package/dist/events/Lifecycle.mjs +41 -0
  39. package/dist/exceptions/HttpException.js +112 -26
  40. package/dist/exceptions/HttpException.mjs +82 -0
  41. package/dist/index.js +129 -31
  42. package/dist/index.mjs +94 -0
  43. package/dist/metadata.js +34 -0
  44. package/dist/metadata.mjs +9 -0
  45. package/dist/middleware/CarnoMiddleware.js +13 -0
  46. package/dist/middleware/CarnoMiddleware.mjs +0 -0
  47. package/dist/router/RadixRouter.js +121 -0
  48. package/dist/router/RadixRouter.mjs +101 -0
  49. package/dist/testing/TestHarness.js +81 -0
  50. package/dist/testing/TestHarness.mjs +60 -0
  51. package/dist/utils/Metadata.js +53 -0
  52. package/dist/utils/Metadata.mjs +31 -0
  53. package/dist/validation/ValibotAdapter.js +67 -0
  54. package/dist/validation/ValibotAdapter.mjs +48 -0
  55. package/dist/validation/ValidatorAdapter.js +35 -19
  56. package/dist/validation/ValidatorAdapter.mjs +14 -0
  57. package/dist/validation/ZodAdapter.js +80 -0
  58. package/dist/validation/ZodAdapter.mjs +59 -0
  59. package/package.json +21 -63
  60. package/src/Carno.ts +605 -0
  61. package/src/DefaultRoutes.ts +34 -0
  62. package/src/cache/CacheDriver.ts +50 -0
  63. package/src/cache/CacheService.ts +139 -0
  64. package/src/cache/MemoryDriver.ts +104 -0
  65. package/src/cache/RedisDriver.ts +116 -0
  66. package/src/compiler/JITCompiler.ts +167 -0
  67. package/src/container/Container.ts +168 -0
  68. package/src/context/Context.ts +128 -0
  69. package/src/cors/CorsHandler.ts +145 -0
  70. package/src/decorators/Controller.ts +63 -0
  71. package/src/decorators/Inject.ts +16 -0
  72. package/src/decorators/Middleware.ts +22 -0
  73. package/src/decorators/Service.ts +18 -0
  74. package/src/decorators/methods.ts +58 -0
  75. package/src/decorators/params.ts +47 -0
  76. package/src/events/Lifecycle.ts +97 -0
  77. package/src/exceptions/HttpException.ts +99 -0
  78. package/src/index.ts +92 -0
  79. package/src/metadata.ts +46 -0
  80. package/src/middleware/CarnoMiddleware.ts +14 -0
  81. package/src/router/RadixRouter.ts +225 -0
  82. package/src/testing/TestHarness.ts +177 -0
  83. package/src/utils/Metadata.ts +43 -0
  84. package/src/validation/ValibotAdapter.ts +95 -0
  85. package/src/validation/ValidatorAdapter.ts +69 -0
  86. package/src/validation/ZodAdapter.ts +102 -0
  87. package/dist/Carno.d.ts +0 -75
  88. package/dist/cache/bento-cache.driver.d.ts +0 -13
  89. package/dist/cache/bento-cache.driver.js +0 -55
  90. package/dist/cache/cache.service.d.ts +0 -8
  91. package/dist/cache/cache.service.js +0 -6
  92. package/dist/commons/decorators/Injectable.decorator.d.ts +0 -20
  93. package/dist/commons/decorators/Injectable.decorator.js +0 -33
  94. package/dist/commons/decorators/controller.decorator.d.ts +0 -8
  95. package/dist/commons/decorators/controller.decorator.js +0 -22
  96. package/dist/commons/decorators/http.decorators.d.ts +0 -13
  97. package/dist/commons/decorators/http.decorators.js +0 -63
  98. package/dist/commons/decorators/index.d.ts +0 -6
  99. package/dist/commons/decorators/index.js +0 -22
  100. package/dist/commons/decorators/inject.decorator.d.ts +0 -1
  101. package/dist/commons/decorators/inject.decorator.js +0 -5
  102. package/dist/commons/decorators/middleware.decorator.d.ts +0 -2
  103. package/dist/commons/decorators/middleware.decorator.js +0 -30
  104. package/dist/commons/decorators/service.decorator.d.ts +0 -2
  105. package/dist/commons/decorators/service.decorator.js +0 -7
  106. package/dist/commons/decorators/validation.decorator.d.ts +0 -32
  107. package/dist/commons/decorators/validation.decorator.js +0 -40
  108. package/dist/commons/http-code.enum.d.ts +0 -50
  109. package/dist/commons/http-code.enum.js +0 -54
  110. package/dist/commons/index.d.ts +0 -3
  111. package/dist/commons/index.js +0 -19
  112. package/dist/commons/registries/ProviderControl.d.ts +0 -77
  113. package/dist/commons/registries/ProviderControl.js +0 -112
  114. package/dist/commons/registries/ProviderRegistry.d.ts +0 -7
  115. package/dist/commons/registries/ProviderRegistry.js +0 -20
  116. package/dist/constants.d.ts +0 -8
  117. package/dist/constants.js +0 -11
  118. package/dist/container/ContainerConfiguration.d.ts +0 -45
  119. package/dist/container/ContainerConfiguration.js +0 -121
  120. package/dist/container/DependencyResolver.d.ts +0 -20
  121. package/dist/container/DependencyResolver.js +0 -85
  122. package/dist/container/InjectorService.d.ts +0 -58
  123. package/dist/container/InjectorService.js +0 -286
  124. package/dist/container/MethodInvoker.d.ts +0 -21
  125. package/dist/container/MethodInvoker.js +0 -83
  126. package/dist/container/RouteResolver.d.ts +0 -27
  127. package/dist/container/RouteResolver.js +0 -173
  128. package/dist/container/container.d.ts +0 -41
  129. package/dist/container/container.js +0 -71
  130. package/dist/container/createContainer.d.ts +0 -3
  131. package/dist/container/createContainer.js +0 -12
  132. package/dist/container/createInjector.d.ts +0 -2
  133. package/dist/container/createInjector.js +0 -7
  134. package/dist/container/index.d.ts +0 -6
  135. package/dist/container/index.js +0 -22
  136. package/dist/container/middleware.resolver.d.ts +0 -9
  137. package/dist/container/middleware.resolver.js +0 -35
  138. package/dist/default-routes-carno.d.ts +0 -3
  139. package/dist/default-routes-carno.js +0 -29
  140. package/dist/domain/BaseContext.d.ts +0 -15
  141. package/dist/domain/BaseContext.js +0 -2
  142. package/dist/domain/CarnoClosure.d.ts +0 -1
  143. package/dist/domain/CarnoClosure.js +0 -2
  144. package/dist/domain/CarnoMiddleware.d.ts +0 -5
  145. package/dist/domain/CarnoMiddleware.js +0 -2
  146. package/dist/domain/Context.d.ts +0 -58
  147. package/dist/domain/Context.js +0 -188
  148. package/dist/domain/FastContext.d.ts +0 -34
  149. package/dist/domain/FastContext.js +0 -59
  150. package/dist/domain/LocalsContainer.d.ts +0 -4
  151. package/dist/domain/LocalsContainer.js +0 -10
  152. package/dist/domain/Metadata.d.ts +0 -449
  153. package/dist/domain/Metadata.js +0 -511
  154. package/dist/domain/cors-config.d.ts +0 -12
  155. package/dist/domain/cors-config.js +0 -18
  156. package/dist/domain/cors-headers-cache.d.ts +0 -17
  157. package/dist/domain/cors-headers-cache.js +0 -101
  158. package/dist/domain/http-method.d.ts +0 -7
  159. package/dist/domain/http-method.js +0 -11
  160. package/dist/domain/index.d.ts +0 -10
  161. package/dist/domain/index.js +0 -26
  162. package/dist/domain/provider-scope.d.ts +0 -5
  163. package/dist/domain/provider-scope.js +0 -9
  164. package/dist/domain/provider-type.d.ts +0 -6
  165. package/dist/domain/provider-type.js +0 -10
  166. package/dist/domain/provider.d.ts +0 -37
  167. package/dist/domain/provider.js +0 -70
  168. package/dist/events/hooks.decorator.d.ts +0 -3
  169. package/dist/events/hooks.decorator.js +0 -29
  170. package/dist/events/index.d.ts +0 -2
  171. package/dist/events/index.js +0 -18
  172. package/dist/events/on-event.d.ts +0 -13
  173. package/dist/events/on-event.js +0 -11
  174. package/dist/exceptions/HttpException.d.ts +0 -9
  175. package/dist/exceptions/index.d.ts +0 -1
  176. package/dist/exceptions/index.js +0 -17
  177. package/dist/index.d.ts +0 -16
  178. package/dist/route/CompiledRoute.d.ts +0 -23
  179. package/dist/route/CompiledRoute.js +0 -9
  180. package/dist/route/FastPathExecutor.d.ts +0 -12
  181. package/dist/route/FastPathExecutor.js +0 -50
  182. package/dist/route/JITCompiler.d.ts +0 -28
  183. package/dist/route/JITCompiler.js +0 -245
  184. package/dist/route/Matcher.d.ts +0 -11
  185. package/dist/route/Matcher.js +0 -48
  186. package/dist/route/ParamResolverFactory.d.ts +0 -14
  187. package/dist/route/ParamResolverFactory.js +0 -49
  188. package/dist/route/RouteCompiler.d.ts +0 -28
  189. package/dist/route/RouteCompiler.js +0 -157
  190. package/dist/route/RouteExecutor.d.ts +0 -12
  191. package/dist/route/RouteExecutor.js +0 -84
  192. package/dist/route/memoirist.d.ts +0 -31
  193. package/dist/route/memoirist.js +0 -373
  194. package/dist/services/logger.service.d.ts +0 -23
  195. package/dist/services/logger.service.js +0 -47
  196. package/dist/testing/core-testing.d.ts +0 -24
  197. package/dist/testing/core-testing.js +0 -102
  198. package/dist/testing/index.d.ts +0 -1
  199. package/dist/testing/index.js +0 -17
  200. package/dist/utils/ValidationCache.d.ts +0 -5
  201. package/dist/utils/ValidationCache.js +0 -35
  202. package/dist/utils/ancestorOf.d.ts +0 -2
  203. package/dist/utils/ancestorOf.js +0 -10
  204. package/dist/utils/ancestorsOf.d.ts +0 -6
  205. package/dist/utils/ancestorsOf.js +0 -20
  206. package/dist/utils/classOf.d.ts +0 -13
  207. package/dist/utils/classOf.js +0 -21
  208. package/dist/utils/cleanObject.d.ts +0 -6
  209. package/dist/utils/cleanObject.js +0 -22
  210. package/dist/utils/constructorOf.d.ts +0 -11
  211. package/dist/utils/constructorOf.js +0 -18
  212. package/dist/utils/createInstance.d.ts +0 -1
  213. package/dist/utils/createInstance.js +0 -7
  214. package/dist/utils/decoratorTypeOf.d.ts +0 -11
  215. package/dist/utils/decoratorTypeOf.js +0 -32
  216. package/dist/utils/deepClone.d.ts +0 -6
  217. package/dist/utils/deepClone.js +0 -63
  218. package/dist/utils/deepMerge.d.ts +0 -9
  219. package/dist/utils/deepMerge.js +0 -62
  220. package/dist/utils/descriptorOf.d.ts +0 -8
  221. package/dist/utils/descriptorOf.js +0 -16
  222. package/dist/utils/formatValidationErrors.d.ts +0 -5
  223. package/dist/utils/formatValidationErrors.js +0 -80
  224. package/dist/utils/getClassOrSymbol.d.ts +0 -1
  225. package/dist/utils/getClassOrSymbol.js +0 -8
  226. package/dist/utils/getConstructorArgNames.d.ts +0 -1
  227. package/dist/utils/getConstructorArgNames.js +0 -12
  228. package/dist/utils/getMethodArgTypes.d.ts +0 -1
  229. package/dist/utils/getMethodArgTypes.js +0 -9
  230. package/dist/utils/getValue.d.ts +0 -32
  231. package/dist/utils/getValue.js +0 -47
  232. package/dist/utils/hasJsonMethod.d.ts +0 -1
  233. package/dist/utils/hasJsonMethod.js +0 -6
  234. package/dist/utils/index.d.ts +0 -15
  235. package/dist/utils/index.js +0 -31
  236. package/dist/utils/isArray.d.ts +0 -13
  237. package/dist/utils/isArray.js +0 -21
  238. package/dist/utils/isArrowFn.d.ts +0 -1
  239. package/dist/utils/isArrowFn.js +0 -7
  240. package/dist/utils/isBoolean.d.ts +0 -7
  241. package/dist/utils/isBoolean.js +0 -15
  242. package/dist/utils/isBuffer.d.ts +0 -7
  243. package/dist/utils/isBuffer.js +0 -19
  244. package/dist/utils/isClass.d.ts +0 -1
  245. package/dist/utils/isClass.js +0 -26
  246. package/dist/utils/isCollection.d.ts +0 -6
  247. package/dist/utils/isCollection.js +0 -20
  248. package/dist/utils/isDate.d.ts +0 -6
  249. package/dist/utils/isDate.js +0 -11
  250. package/dist/utils/isEmpty.d.ts +0 -6
  251. package/dist/utils/isEmpty.js +0 -12
  252. package/dist/utils/isFunction.d.ts +0 -1
  253. package/dist/utils/isFunction.js +0 -6
  254. package/dist/utils/isInheritedFrom.d.ts +0 -1
  255. package/dist/utils/isInheritedFrom.js +0 -24
  256. package/dist/utils/isMomentObject.d.ts +0 -1
  257. package/dist/utils/isMomentObject.js +0 -6
  258. package/dist/utils/isMongooseObject.d.ts +0 -2
  259. package/dist/utils/isMongooseObject.js +0 -11
  260. package/dist/utils/isNil.d.ts +0 -1
  261. package/dist/utils/isNil.js +0 -6
  262. package/dist/utils/isNumber.d.ts +0 -7
  263. package/dist/utils/isNumber.js +0 -15
  264. package/dist/utils/isObject.d.ts +0 -1
  265. package/dist/utils/isObject.js +0 -6
  266. package/dist/utils/isObservable.d.ts +0 -1
  267. package/dist/utils/isObservable.js +0 -6
  268. package/dist/utils/isPlainObject.d.ts +0 -7
  269. package/dist/utils/isPlainObject.js +0 -16
  270. package/dist/utils/isPrimitive.d.ts +0 -14
  271. package/dist/utils/isPrimitive.js +0 -28
  272. package/dist/utils/isPrimitiveType.d.ts +0 -1
  273. package/dist/utils/isPrimitiveType.js +0 -11
  274. package/dist/utils/isPromise.d.ts +0 -7
  275. package/dist/utils/isPromise.js +0 -14
  276. package/dist/utils/isProtectedKey.d.ts +0 -5
  277. package/dist/utils/isProtectedKey.js +0 -10
  278. package/dist/utils/isRegExp.d.ts +0 -1
  279. package/dist/utils/isRegExp.js +0 -6
  280. package/dist/utils/isRequestScope.d.ts +0 -11
  281. package/dist/utils/isRequestScope.js +0 -23
  282. package/dist/utils/isSerializable.d.ts +0 -1
  283. package/dist/utils/isSerializable.js +0 -11
  284. package/dist/utils/isStream.d.ts +0 -1
  285. package/dist/utils/isStream.js +0 -6
  286. package/dist/utils/isString.d.ts +0 -6
  287. package/dist/utils/isString.js +0 -14
  288. package/dist/utils/isSymbol.d.ts +0 -6
  289. package/dist/utils/isSymbol.js +0 -14
  290. package/dist/utils/methodsOf.d.ts +0 -9
  291. package/dist/utils/methodsOf.js +0 -24
  292. package/dist/utils/nameOf.d.ts +0 -14
  293. package/dist/utils/nameOf.js +0 -31
  294. package/dist/utils/objectKeys.d.ts +0 -1
  295. package/dist/utils/objectKeys.js +0 -7
  296. package/dist/utils/primitiveOf.d.ts +0 -1
  297. package/dist/utils/primitiveOf.js +0 -18
  298. package/dist/utils/prototypeOf.d.ts +0 -6
  299. package/dist/utils/prototypeOf.js +0 -12
  300. package/dist/utils/setValue.d.ts +0 -1
  301. package/dist/utils/setValue.js +0 -32
  302. package/dist/utils/toMap.d.ts +0 -3
  303. package/dist/utils/toMap.js +0 -34
  304. package/dist/utils/toStringConstructor.d.ts +0 -1
  305. package/dist/utils/toStringConstructor.js +0 -10
  306. package/dist/validation/ValidatorAdapter.d.ts +0 -66
  307. package/dist/validation/adapters/ClassValidatorAdapter.d.ts +0 -23
  308. package/dist/validation/adapters/ClassValidatorAdapter.js +0 -47
  309. package/dist/validation/adapters/ZodAdapter.d.ts +0 -14
  310. package/dist/validation/adapters/ZodAdapter.js +0 -56
  311. package/dist/validation/adapters/index.d.ts +0 -4
  312. package/dist/validation/adapters/index.js +0 -7
  313. package/dist/validation/index.d.ts +0 -3
  314. package/dist/validation/index.js +0 -20
@@ -1,26 +0,0 @@
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("./provider-scope"), exports);
18
- __exportStar(require("./provider-type"), exports);
19
- __exportStar(require("./Context"), exports);
20
- __exportStar(require("./LocalsContainer"), exports);
21
- __exportStar(require("./Metadata"), exports);
22
- __exportStar(require("./provider"), exports);
23
- __exportStar(require("./CarnoMiddleware"), exports);
24
- __exportStar(require("./CarnoClosure"), exports);
25
- __exportStar(require("./http-method"), exports);
26
- __exportStar(require("./cors-config"), exports);
@@ -1,5 +0,0 @@
1
- export declare enum ProviderScope {
2
- REQUEST = "request",
3
- INSTANCE = "instance",
4
- SINGLETON = "singleton"
5
- }
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ProviderScope = void 0;
4
- var ProviderScope;
5
- (function (ProviderScope) {
6
- ProviderScope["REQUEST"] = "request";
7
- ProviderScope["INSTANCE"] = "instance";
8
- ProviderScope["SINGLETON"] = "singleton";
9
- })(ProviderScope || (exports.ProviderScope = ProviderScope = {}));
@@ -1,6 +0,0 @@
1
- export declare enum ProviderType {
2
- ROUTES = "routes",
3
- SERVICE = "service",
4
- PROVIDER = "provider",
5
- CONTROLLER = "controller"
6
- }
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ProviderType = void 0;
4
- var ProviderType;
5
- (function (ProviderType) {
6
- ProviderType["ROUTES"] = "routes";
7
- ProviderType["SERVICE"] = "service";
8
- ProviderType["PROVIDER"] = "provider";
9
- ProviderType["CONTROLLER"] = "controller";
10
- })(ProviderType || (exports.ProviderType = ProviderType = {}));
@@ -1,37 +0,0 @@
1
- import { ProviderType } from "./provider-type";
2
- import { ProviderScope } from "./provider-scope";
3
- import { TokenProvider, Type } from "../commons/registries/ProviderControl";
4
- export type ProviderHookCallback<T = any> = (instance: T, ...args: any[]) => Promise<void> | void;
5
- export declare class Provider {
6
- /**
7
- * Token group provider to retrieve all provider from the same type
8
- */
9
- type: TokenProvider | ProviderType;
10
- deps: TokenProvider[];
11
- instance: any;
12
- private _provide;
13
- private _useClass;
14
- private _useValue?;
15
- hooks?: Record<string, ProviderHookCallback>;
16
- path?: string;
17
- /**
18
- * Scope used by the injector to build the provider.
19
- */
20
- scope?: ProviderScope;
21
- children?: any[];
22
- parent?: Function;
23
- constructor(token: TokenProvider, options?: Partial<Provider>);
24
- get token(): any;
25
- get useClass(): Type;
26
- /**
27
- * Create a new store if the given value is a class. Otherwise the value is ignored.
28
- * @param value
29
- */
30
- set useClass(value: Type);
31
- get useValue(): () => any;
32
- set useValue(value: () => any);
33
- get provide(): TokenProvider;
34
- set provide(value: TokenProvider);
35
- clone(): Provider;
36
- isChild(): boolean;
37
- }
@@ -1,70 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Provider = void 0;
4
- const provider_type_1 = require("./provider-type");
5
- const provider_scope_1 = require("./provider-scope");
6
- const methodsOf_1 = require("../utils/methodsOf");
7
- const utils_1 = require("../utils");
8
- class Provider {
9
- constructor(token, options = {}) {
10
- /**
11
- * Token group provider to retrieve all provider from the same type
12
- */
13
- this.type = provider_type_1.ProviderType.PROVIDER;
14
- this.deps = [];
15
- /**
16
- * Scope used by the injector to build the provider.
17
- */
18
- this.scope = provider_scope_1.ProviderScope.SINGLETON;
19
- this.children = [];
20
- this.provide = token;
21
- this.useClass = token;
22
- Object.assign(this, options);
23
- }
24
- get token() {
25
- return this._provide;
26
- }
27
- get useClass() {
28
- return this._useClass;
29
- }
30
- /**
31
- * Create a new store if the given value is a class. Otherwise the value is ignored.
32
- * @param value
33
- */
34
- set useClass(value) {
35
- if ((0, utils_1.isClass)(value)) {
36
- this._useClass = (0, utils_1.classOf)(value);
37
- this.hooks = (0, methodsOf_1.methodsOf)(this._useClass).reduce((hooks, { propertyKey }) => {
38
- if (String(propertyKey).startsWith("$")) {
39
- return {
40
- ...hooks,
41
- [propertyKey]: (instance, ...args) => instance[propertyKey](...args),
42
- };
43
- }
44
- return hooks;
45
- }, {});
46
- }
47
- }
48
- get useValue() {
49
- return this._useValue;
50
- }
51
- set useValue(value) {
52
- this._useValue = value();
53
- }
54
- get provide() {
55
- return this._provide;
56
- }
57
- set provide(value) {
58
- if (!value) {
59
- return;
60
- }
61
- this._provide = value;
62
- }
63
- clone() {
64
- return new ((0, utils_1.classOf)(this))(this._provide, this);
65
- }
66
- isChild() {
67
- return !!this.parent;
68
- }
69
- }
70
- exports.Provider = Provider;
@@ -1,3 +0,0 @@
1
- export declare function OnApplicationInit(priority?: number): MethodDecorator;
2
- export declare function OnApplicationShutdown(priority?: number): MethodDecorator;
3
- export declare function OnApplicationBoot(priority?: number): (target: Function, propertyKey: any) => void;
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OnApplicationInit = OnApplicationInit;
4
- exports.OnApplicationShutdown = OnApplicationShutdown;
5
- exports.OnApplicationBoot = OnApplicationBoot;
6
- const constants_1 = require("../constants");
7
- const Metadata_1 = require("../domain/Metadata");
8
- const on_event_1 = require("./on-event");
9
- function OnApplicationInit(priority = 0) {
10
- return (target, propertyKey) => {
11
- const anotherEvents = Metadata_1.Metadata.get(constants_1.CONTROLLER_EVENTS, Reflect) || [];
12
- anotherEvents.push({ methodName: propertyKey, eventName: on_event_1.EventType.OnApplicationInit, target: target.constructor, priority });
13
- Metadata_1.Metadata.set(constants_1.CONTROLLER_EVENTS, anotherEvents, Reflect);
14
- };
15
- }
16
- function OnApplicationShutdown(priority = 0) {
17
- return (target, propertyKey) => {
18
- const anotherEvents = Metadata_1.Metadata.get(constants_1.CONTROLLER_EVENTS, Reflect) || [];
19
- anotherEvents.push({ methodName: propertyKey, eventName: on_event_1.EventType.OnApplicationShutdown, target: target.constructor, priority });
20
- Metadata_1.Metadata.set(constants_1.CONTROLLER_EVENTS, anotherEvents, Reflect);
21
- };
22
- }
23
- function OnApplicationBoot(priority = 0) {
24
- return (target, propertyKey) => {
25
- const anotherEvents = Metadata_1.Metadata.get(constants_1.CONTROLLER_EVENTS, Reflect) || [];
26
- anotherEvents.push({ methodName: propertyKey, eventName: on_event_1.EventType.OnApplicationBoot, target: target.constructor, priority });
27
- Metadata_1.Metadata.set(constants_1.CONTROLLER_EVENTS, anotherEvents, Reflect);
28
- };
29
- }
@@ -1,2 +0,0 @@
1
- export * from './on-event';
2
- export * from './hooks.decorator';
@@ -1,18 +0,0 @@
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("./on-event"), exports);
18
- __exportStar(require("./hooks.decorator"), exports);
@@ -1,13 +0,0 @@
1
- export declare enum EventType {
2
- OnApplicationBoot = "OnApplicationBoot",
3
- OnApplicationInit = "OnApplicationInit",
4
- OnApplicationShutdown = "OnApplicationShutdown",
5
- OnRequest = "OnRequest",
6
- OnResponse = "OnResponse"
7
- }
8
- export interface OnEvent {
9
- methodName: string;
10
- eventName: EventType;
11
- target: Object;
12
- priority: number;
13
- }
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EventType = void 0;
4
- var EventType;
5
- (function (EventType) {
6
- EventType["OnApplicationBoot"] = "OnApplicationBoot";
7
- EventType["OnApplicationInit"] = "OnApplicationInit";
8
- EventType["OnApplicationShutdown"] = "OnApplicationShutdown";
9
- EventType["OnRequest"] = "OnRequest";
10
- EventType["OnResponse"] = "OnResponse";
11
- })(EventType || (exports.EventType = EventType = {}));
@@ -1,9 +0,0 @@
1
- export declare class HttpException {
2
- response: any;
3
- statusCode: any;
4
- message: string | object;
5
- constructor(response: any, statusCode: any);
6
- initMessage(): void;
7
- getResponse(): string | object;
8
- getStatus(): number;
9
- }
@@ -1 +0,0 @@
1
- export * from './HttpException';
@@ -1,17 +0,0 @@
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("./HttpException"), exports);
package/dist/index.d.ts DELETED
@@ -1,16 +0,0 @@
1
- export * from "./commons";
2
- export * from "./container";
3
- export * from "./domain";
4
- export * from "./route/Matcher";
5
- export * from "./route/RouteExecutor";
6
- export * from "./exceptions";
7
- export * from "./Carno";
8
- export * from "./events";
9
- export * from "./constants";
10
- export * from "./utils";
11
- export * from "./default-routes-carno";
12
- export * from "./services/logger.service";
13
- export * from "./cache/cache.service";
14
- export * from "./cache/bento-cache.driver";
15
- export * from "./testing";
16
- export * from "./validation";
@@ -1,23 +0,0 @@
1
- import type { Context } from '../domain/Context';
2
- import type { TokenRouteWithProvider } from '../container/ContainerConfiguration';
3
- export declare enum RouteType {
4
- SIMPLE = 0,
5
- STANDARD = 1,
6
- COMPLEX = 2
7
- }
8
- export type ParamResolver = (context: Context) => any;
9
- export type AsyncParamResolver = (context: Context) => Promise<any>;
10
- export type CompiledHandler = (context: Context) => any;
11
- export type AsyncCompiledHandler = (context: Context) => Promise<any>;
12
- export interface CompiledRoute {
13
- routeType: RouteType;
14
- controllerInstance: any | null;
15
- boundHandler: CompiledHandler | AsyncCompiledHandler | null;
16
- paramResolvers: (ParamResolver | AsyncParamResolver | null)[];
17
- needsLocalsContainer: boolean;
18
- hasMiddlewares: boolean;
19
- hasValidation: boolean;
20
- validationIndices: number[];
21
- isAsync: boolean;
22
- original: TokenRouteWithProvider;
23
- }
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RouteType = void 0;
4
- var RouteType;
5
- (function (RouteType) {
6
- RouteType[RouteType["SIMPLE"] = 0] = "SIMPLE";
7
- RouteType[RouteType["STANDARD"] = 1] = "STANDARD";
8
- RouteType[RouteType["COMPLEX"] = 2] = "COMPLEX";
9
- })(RouteType || (exports.RouteType = RouteType = {}));
@@ -1,12 +0,0 @@
1
- import type { Context } from '../domain/Context';
2
- import type { CompiledRoute } from './CompiledRoute';
3
- /**
4
- * Fast path executor completo - executa handler e monta response inline.
5
- * Máximo 2 type checks no fast path.
6
- */
7
- export declare function executeFastPath(compiled: CompiledRoute, context: Context): Promise<Response>;
8
- /**
9
- * Fast path executor síncrono - para handlers que não retornam Promise.
10
- * Elimina overhead de async/await quando handler é síncrono.
11
- */
12
- export declare function executeFastPathSync(compiled: CompiledRoute, context: Context): Response;
@@ -1,50 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.executeFastPath = executeFastPath;
4
- exports.executeFastPathSync = executeFastPathSync;
5
- /**
6
- * Frozen header objects - V8 otimiza acesso a objetos frozen.
7
- * Criados uma vez no startup, reutilizados em todas requests.
8
- */
9
- const JSON_HEADERS = Object.freeze({
10
- 'Content-Type': 'application/json'
11
- });
12
- const TEXT_HEADERS = Object.freeze({
13
- 'Content-Type': 'text/html'
14
- });
15
- /**
16
- * Fast path executor completo - executa handler e monta response inline.
17
- * Máximo 2 type checks no fast path.
18
- */
19
- async function executeFastPath(compiled, context) {
20
- const result = await compiled.boundHandler(context);
21
- const status = context.getResponseStatus() || 200;
22
- if (typeof result === 'string') {
23
- return new Response(result, { status, headers: TEXT_HEADERS });
24
- }
25
- if (result instanceof Response) {
26
- return result;
27
- }
28
- if (result === null || result === undefined) {
29
- return new Response('', { status, headers: TEXT_HEADERS });
30
- }
31
- return new Response(JSON.stringify(result), { status, headers: JSON_HEADERS });
32
- }
33
- /**
34
- * Fast path executor síncrono - para handlers que não retornam Promise.
35
- * Elimina overhead de async/await quando handler é síncrono.
36
- */
37
- function executeFastPathSync(compiled, context) {
38
- const result = compiled.boundHandler(context);
39
- const status = context.getResponseStatus() || 200;
40
- if (typeof result === 'string') {
41
- return new Response(result, { status, headers: TEXT_HEADERS });
42
- }
43
- if (result instanceof Response) {
44
- return result;
45
- }
46
- if (result === null || result === undefined) {
47
- return new Response('', { status, headers: TEXT_HEADERS });
48
- }
49
- return new Response(JSON.stringify(result), { status, headers: JSON_HEADERS });
50
- }
@@ -1,28 +0,0 @@
1
- import type { ParamInfo } from './ParamResolverFactory';
2
- import type { CompiledHandler, AsyncCompiledHandler } from './CompiledRoute';
3
- /**
4
- * Compila route handler em função otimizada.
5
- *
6
- * Estratégias de otimização:
7
- * - Inline de acesso a parâmetros
8
- * - Bind do handler no compile time
9
- * - Código gerado monomórfico
10
- * - Sem overhead de resolvers array
11
- */
12
- /**
13
- * Compila route handler em função otimizada que retorna Response inline.
14
- *
15
- * Estratégias de otimização:
16
- * - Inline de acesso a parâmetros
17
- * - Inline de response building (elimina executeFastPath)
18
- * - Bind do handler no compile time
19
- * - Código gerado monomórfico
20
- * - Headers pré-frozen para otimização V8
21
- */
22
- export declare function compileRouteHandler(instance: any, methodName: string, paramInfos: ParamInfo[]): CompiledHandler | AsyncCompiledHandler;
23
- /**
24
- * Compila handler com validação inline.
25
- */
26
- export declare function compileValidatedHandler(instance: any, methodName: string, paramInfos: ParamInfo[], validatorAdapter: {
27
- validateAndTransform: (token: any, value: any) => any;
28
- }): CompiledHandler | AsyncCompiledHandler;