@carno.js/core 0.2.11 → 1.0.0

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 (313) hide show
  1. package/README.md +188 -0
  2. package/dist/Carno.js +272 -333
  3. package/dist/Carno.mjs +268 -0
  4. package/dist/DefaultRoutes.js +51 -0
  5. package/dist/DefaultRoutes.mjs +34 -0
  6. package/dist/bun/index.js +185 -0
  7. package/dist/bun/index.js.map +87 -0
  8. package/dist/cache/CacheDriver.js +13 -0
  9. package/dist/cache/CacheDriver.mjs +0 -0
  10. package/dist/cache/CacheService.js +113 -0
  11. package/dist/cache/CacheService.mjs +93 -0
  12. package/dist/cache/MemoryDriver.js +66 -0
  13. package/dist/cache/MemoryDriver.mjs +46 -0
  14. package/dist/cache/RedisDriver.js +81 -0
  15. package/dist/cache/RedisDriver.mjs +61 -0
  16. package/dist/compiler/JITCompiler.js +111 -0
  17. package/dist/compiler/JITCompiler.mjs +89 -0
  18. package/dist/container/Container.js +99 -0
  19. package/dist/container/Container.mjs +78 -0
  20. package/dist/context/Context.js +97 -0
  21. package/dist/context/Context.mjs +77 -0
  22. package/dist/cors/CorsHandler.js +90 -0
  23. package/dist/cors/CorsHandler.mjs +68 -0
  24. package/dist/decorators/Controller.js +42 -0
  25. package/dist/decorators/Controller.mjs +22 -0
  26. package/dist/decorators/Inject.js +30 -0
  27. package/dist/decorators/Inject.mjs +10 -0
  28. package/dist/decorators/Middleware.js +35 -0
  29. package/dist/decorators/Middleware.mjs +15 -0
  30. package/dist/decorators/Service.js +31 -0
  31. package/dist/decorators/Service.mjs +12 -0
  32. package/dist/decorators/methods.js +60 -0
  33. package/dist/decorators/methods.mjs +34 -0
  34. package/dist/decorators/params.js +63 -0
  35. package/dist/decorators/params.mjs +37 -0
  36. package/dist/events/Lifecycle.js +69 -0
  37. package/dist/events/Lifecycle.mjs +41 -0
  38. package/dist/exceptions/HttpException.js +112 -26
  39. package/dist/exceptions/HttpException.mjs +82 -0
  40. package/dist/index.js +129 -31
  41. package/dist/index.mjs +94 -0
  42. package/dist/metadata.js +34 -0
  43. package/dist/metadata.mjs +9 -0
  44. package/dist/middleware/CarnoMiddleware.js +13 -0
  45. package/dist/middleware/CarnoMiddleware.mjs +0 -0
  46. package/dist/router/RadixRouter.js +121 -0
  47. package/dist/router/RadixRouter.mjs +101 -0
  48. package/dist/testing/TestHarness.js +81 -0
  49. package/dist/testing/TestHarness.mjs +60 -0
  50. package/dist/utils/Metadata.js +53 -0
  51. package/dist/utils/Metadata.mjs +31 -0
  52. package/dist/validation/ValibotAdapter.js +67 -0
  53. package/dist/validation/ValibotAdapter.mjs +48 -0
  54. package/dist/validation/ValidatorAdapter.js +35 -19
  55. package/dist/validation/ValidatorAdapter.mjs +14 -0
  56. package/dist/validation/ZodAdapter.js +80 -0
  57. package/dist/validation/ZodAdapter.mjs +59 -0
  58. package/package.json +20 -63
  59. package/src/Carno.ts +600 -0
  60. package/src/DefaultRoutes.ts +34 -0
  61. package/src/cache/CacheDriver.ts +50 -0
  62. package/src/cache/CacheService.ts +139 -0
  63. package/src/cache/MemoryDriver.ts +104 -0
  64. package/src/cache/RedisDriver.ts +116 -0
  65. package/src/compiler/JITCompiler.ts +167 -0
  66. package/src/container/Container.ts +168 -0
  67. package/src/context/Context.ts +128 -0
  68. package/src/cors/CorsHandler.ts +145 -0
  69. package/src/decorators/Controller.ts +63 -0
  70. package/src/decorators/Inject.ts +16 -0
  71. package/src/decorators/Middleware.ts +22 -0
  72. package/src/decorators/Service.ts +18 -0
  73. package/src/decorators/methods.ts +58 -0
  74. package/src/decorators/params.ts +47 -0
  75. package/src/events/Lifecycle.ts +97 -0
  76. package/src/exceptions/HttpException.ts +99 -0
  77. package/src/index.ts +92 -0
  78. package/src/metadata.ts +46 -0
  79. package/src/middleware/CarnoMiddleware.ts +14 -0
  80. package/src/router/RadixRouter.ts +225 -0
  81. package/src/testing/TestHarness.ts +177 -0
  82. package/src/utils/Metadata.ts +43 -0
  83. package/src/validation/ValibotAdapter.ts +95 -0
  84. package/src/validation/ValidatorAdapter.ts +69 -0
  85. package/src/validation/ZodAdapter.ts +102 -0
  86. package/dist/Carno.d.ts +0 -75
  87. package/dist/cache/bento-cache.driver.d.ts +0 -13
  88. package/dist/cache/bento-cache.driver.js +0 -55
  89. package/dist/cache/cache.service.d.ts +0 -8
  90. package/dist/cache/cache.service.js +0 -6
  91. package/dist/commons/decorators/Injectable.decorator.d.ts +0 -20
  92. package/dist/commons/decorators/Injectable.decorator.js +0 -33
  93. package/dist/commons/decorators/controller.decorator.d.ts +0 -8
  94. package/dist/commons/decorators/controller.decorator.js +0 -22
  95. package/dist/commons/decorators/http.decorators.d.ts +0 -13
  96. package/dist/commons/decorators/http.decorators.js +0 -63
  97. package/dist/commons/decorators/index.d.ts +0 -6
  98. package/dist/commons/decorators/index.js +0 -22
  99. package/dist/commons/decorators/inject.decorator.d.ts +0 -1
  100. package/dist/commons/decorators/inject.decorator.js +0 -5
  101. package/dist/commons/decorators/middleware.decorator.d.ts +0 -2
  102. package/dist/commons/decorators/middleware.decorator.js +0 -30
  103. package/dist/commons/decorators/service.decorator.d.ts +0 -2
  104. package/dist/commons/decorators/service.decorator.js +0 -7
  105. package/dist/commons/decorators/validation.decorator.d.ts +0 -32
  106. package/dist/commons/decorators/validation.decorator.js +0 -40
  107. package/dist/commons/http-code.enum.d.ts +0 -50
  108. package/dist/commons/http-code.enum.js +0 -54
  109. package/dist/commons/index.d.ts +0 -3
  110. package/dist/commons/index.js +0 -19
  111. package/dist/commons/registries/ProviderControl.d.ts +0 -77
  112. package/dist/commons/registries/ProviderControl.js +0 -112
  113. package/dist/commons/registries/ProviderRegistry.d.ts +0 -7
  114. package/dist/commons/registries/ProviderRegistry.js +0 -20
  115. package/dist/constants.d.ts +0 -8
  116. package/dist/constants.js +0 -11
  117. package/dist/container/ContainerConfiguration.d.ts +0 -45
  118. package/dist/container/ContainerConfiguration.js +0 -121
  119. package/dist/container/DependencyResolver.d.ts +0 -20
  120. package/dist/container/DependencyResolver.js +0 -85
  121. package/dist/container/InjectorService.d.ts +0 -58
  122. package/dist/container/InjectorService.js +0 -286
  123. package/dist/container/MethodInvoker.d.ts +0 -21
  124. package/dist/container/MethodInvoker.js +0 -83
  125. package/dist/container/RouteResolver.d.ts +0 -27
  126. package/dist/container/RouteResolver.js +0 -173
  127. package/dist/container/container.d.ts +0 -41
  128. package/dist/container/container.js +0 -71
  129. package/dist/container/createContainer.d.ts +0 -3
  130. package/dist/container/createContainer.js +0 -12
  131. package/dist/container/createInjector.d.ts +0 -2
  132. package/dist/container/createInjector.js +0 -7
  133. package/dist/container/index.d.ts +0 -6
  134. package/dist/container/index.js +0 -22
  135. package/dist/container/middleware.resolver.d.ts +0 -9
  136. package/dist/container/middleware.resolver.js +0 -35
  137. package/dist/default-routes-carno.d.ts +0 -3
  138. package/dist/default-routes-carno.js +0 -29
  139. package/dist/domain/BaseContext.d.ts +0 -15
  140. package/dist/domain/BaseContext.js +0 -2
  141. package/dist/domain/CarnoClosure.d.ts +0 -1
  142. package/dist/domain/CarnoClosure.js +0 -2
  143. package/dist/domain/CarnoMiddleware.d.ts +0 -5
  144. package/dist/domain/CarnoMiddleware.js +0 -2
  145. package/dist/domain/Context.d.ts +0 -58
  146. package/dist/domain/Context.js +0 -188
  147. package/dist/domain/FastContext.d.ts +0 -34
  148. package/dist/domain/FastContext.js +0 -59
  149. package/dist/domain/LocalsContainer.d.ts +0 -4
  150. package/dist/domain/LocalsContainer.js +0 -10
  151. package/dist/domain/Metadata.d.ts +0 -449
  152. package/dist/domain/Metadata.js +0 -511
  153. package/dist/domain/cors-config.d.ts +0 -12
  154. package/dist/domain/cors-config.js +0 -18
  155. package/dist/domain/cors-headers-cache.d.ts +0 -17
  156. package/dist/domain/cors-headers-cache.js +0 -101
  157. package/dist/domain/http-method.d.ts +0 -7
  158. package/dist/domain/http-method.js +0 -11
  159. package/dist/domain/index.d.ts +0 -10
  160. package/dist/domain/index.js +0 -26
  161. package/dist/domain/provider-scope.d.ts +0 -5
  162. package/dist/domain/provider-scope.js +0 -9
  163. package/dist/domain/provider-type.d.ts +0 -6
  164. package/dist/domain/provider-type.js +0 -10
  165. package/dist/domain/provider.d.ts +0 -37
  166. package/dist/domain/provider.js +0 -70
  167. package/dist/events/hooks.decorator.d.ts +0 -3
  168. package/dist/events/hooks.decorator.js +0 -29
  169. package/dist/events/index.d.ts +0 -2
  170. package/dist/events/index.js +0 -18
  171. package/dist/events/on-event.d.ts +0 -13
  172. package/dist/events/on-event.js +0 -11
  173. package/dist/exceptions/HttpException.d.ts +0 -9
  174. package/dist/exceptions/index.d.ts +0 -1
  175. package/dist/exceptions/index.js +0 -17
  176. package/dist/index.d.ts +0 -16
  177. package/dist/route/CompiledRoute.d.ts +0 -23
  178. package/dist/route/CompiledRoute.js +0 -9
  179. package/dist/route/FastPathExecutor.d.ts +0 -12
  180. package/dist/route/FastPathExecutor.js +0 -50
  181. package/dist/route/JITCompiler.d.ts +0 -28
  182. package/dist/route/JITCompiler.js +0 -245
  183. package/dist/route/Matcher.d.ts +0 -11
  184. package/dist/route/Matcher.js +0 -48
  185. package/dist/route/ParamResolverFactory.d.ts +0 -14
  186. package/dist/route/ParamResolverFactory.js +0 -49
  187. package/dist/route/RouteCompiler.d.ts +0 -28
  188. package/dist/route/RouteCompiler.js +0 -157
  189. package/dist/route/RouteExecutor.d.ts +0 -12
  190. package/dist/route/RouteExecutor.js +0 -84
  191. package/dist/route/memoirist.d.ts +0 -31
  192. package/dist/route/memoirist.js +0 -373
  193. package/dist/services/logger.service.d.ts +0 -23
  194. package/dist/services/logger.service.js +0 -47
  195. package/dist/testing/core-testing.d.ts +0 -24
  196. package/dist/testing/core-testing.js +0 -102
  197. package/dist/testing/index.d.ts +0 -1
  198. package/dist/testing/index.js +0 -17
  199. package/dist/utils/ValidationCache.d.ts +0 -5
  200. package/dist/utils/ValidationCache.js +0 -35
  201. package/dist/utils/ancestorOf.d.ts +0 -2
  202. package/dist/utils/ancestorOf.js +0 -10
  203. package/dist/utils/ancestorsOf.d.ts +0 -6
  204. package/dist/utils/ancestorsOf.js +0 -20
  205. package/dist/utils/classOf.d.ts +0 -13
  206. package/dist/utils/classOf.js +0 -21
  207. package/dist/utils/cleanObject.d.ts +0 -6
  208. package/dist/utils/cleanObject.js +0 -22
  209. package/dist/utils/constructorOf.d.ts +0 -11
  210. package/dist/utils/constructorOf.js +0 -18
  211. package/dist/utils/createInstance.d.ts +0 -1
  212. package/dist/utils/createInstance.js +0 -7
  213. package/dist/utils/decoratorTypeOf.d.ts +0 -11
  214. package/dist/utils/decoratorTypeOf.js +0 -32
  215. package/dist/utils/deepClone.d.ts +0 -6
  216. package/dist/utils/deepClone.js +0 -63
  217. package/dist/utils/deepMerge.d.ts +0 -9
  218. package/dist/utils/deepMerge.js +0 -62
  219. package/dist/utils/descriptorOf.d.ts +0 -8
  220. package/dist/utils/descriptorOf.js +0 -16
  221. package/dist/utils/formatValidationErrors.d.ts +0 -5
  222. package/dist/utils/formatValidationErrors.js +0 -80
  223. package/dist/utils/getClassOrSymbol.d.ts +0 -1
  224. package/dist/utils/getClassOrSymbol.js +0 -8
  225. package/dist/utils/getConstructorArgNames.d.ts +0 -1
  226. package/dist/utils/getConstructorArgNames.js +0 -12
  227. package/dist/utils/getMethodArgTypes.d.ts +0 -1
  228. package/dist/utils/getMethodArgTypes.js +0 -9
  229. package/dist/utils/getValue.d.ts +0 -32
  230. package/dist/utils/getValue.js +0 -47
  231. package/dist/utils/hasJsonMethod.d.ts +0 -1
  232. package/dist/utils/hasJsonMethod.js +0 -6
  233. package/dist/utils/index.d.ts +0 -15
  234. package/dist/utils/index.js +0 -31
  235. package/dist/utils/isArray.d.ts +0 -13
  236. package/dist/utils/isArray.js +0 -21
  237. package/dist/utils/isArrowFn.d.ts +0 -1
  238. package/dist/utils/isArrowFn.js +0 -7
  239. package/dist/utils/isBoolean.d.ts +0 -7
  240. package/dist/utils/isBoolean.js +0 -15
  241. package/dist/utils/isBuffer.d.ts +0 -7
  242. package/dist/utils/isBuffer.js +0 -19
  243. package/dist/utils/isClass.d.ts +0 -1
  244. package/dist/utils/isClass.js +0 -26
  245. package/dist/utils/isCollection.d.ts +0 -6
  246. package/dist/utils/isCollection.js +0 -20
  247. package/dist/utils/isDate.d.ts +0 -6
  248. package/dist/utils/isDate.js +0 -11
  249. package/dist/utils/isEmpty.d.ts +0 -6
  250. package/dist/utils/isEmpty.js +0 -12
  251. package/dist/utils/isFunction.d.ts +0 -1
  252. package/dist/utils/isFunction.js +0 -6
  253. package/dist/utils/isInheritedFrom.d.ts +0 -1
  254. package/dist/utils/isInheritedFrom.js +0 -24
  255. package/dist/utils/isMomentObject.d.ts +0 -1
  256. package/dist/utils/isMomentObject.js +0 -6
  257. package/dist/utils/isMongooseObject.d.ts +0 -2
  258. package/dist/utils/isMongooseObject.js +0 -11
  259. package/dist/utils/isNil.d.ts +0 -1
  260. package/dist/utils/isNil.js +0 -6
  261. package/dist/utils/isNumber.d.ts +0 -7
  262. package/dist/utils/isNumber.js +0 -15
  263. package/dist/utils/isObject.d.ts +0 -1
  264. package/dist/utils/isObject.js +0 -6
  265. package/dist/utils/isObservable.d.ts +0 -1
  266. package/dist/utils/isObservable.js +0 -6
  267. package/dist/utils/isPlainObject.d.ts +0 -7
  268. package/dist/utils/isPlainObject.js +0 -16
  269. package/dist/utils/isPrimitive.d.ts +0 -14
  270. package/dist/utils/isPrimitive.js +0 -28
  271. package/dist/utils/isPrimitiveType.d.ts +0 -1
  272. package/dist/utils/isPrimitiveType.js +0 -11
  273. package/dist/utils/isPromise.d.ts +0 -7
  274. package/dist/utils/isPromise.js +0 -14
  275. package/dist/utils/isProtectedKey.d.ts +0 -5
  276. package/dist/utils/isProtectedKey.js +0 -10
  277. package/dist/utils/isRegExp.d.ts +0 -1
  278. package/dist/utils/isRegExp.js +0 -6
  279. package/dist/utils/isRequestScope.d.ts +0 -11
  280. package/dist/utils/isRequestScope.js +0 -23
  281. package/dist/utils/isSerializable.d.ts +0 -1
  282. package/dist/utils/isSerializable.js +0 -11
  283. package/dist/utils/isStream.d.ts +0 -1
  284. package/dist/utils/isStream.js +0 -6
  285. package/dist/utils/isString.d.ts +0 -6
  286. package/dist/utils/isString.js +0 -14
  287. package/dist/utils/isSymbol.d.ts +0 -6
  288. package/dist/utils/isSymbol.js +0 -14
  289. package/dist/utils/methodsOf.d.ts +0 -9
  290. package/dist/utils/methodsOf.js +0 -24
  291. package/dist/utils/nameOf.d.ts +0 -14
  292. package/dist/utils/nameOf.js +0 -31
  293. package/dist/utils/objectKeys.d.ts +0 -1
  294. package/dist/utils/objectKeys.js +0 -7
  295. package/dist/utils/primitiveOf.d.ts +0 -1
  296. package/dist/utils/primitiveOf.js +0 -18
  297. package/dist/utils/prototypeOf.d.ts +0 -6
  298. package/dist/utils/prototypeOf.js +0 -12
  299. package/dist/utils/setValue.d.ts +0 -1
  300. package/dist/utils/setValue.js +0 -32
  301. package/dist/utils/toMap.d.ts +0 -3
  302. package/dist/utils/toMap.js +0 -34
  303. package/dist/utils/toStringConstructor.d.ts +0 -1
  304. package/dist/utils/toStringConstructor.js +0 -10
  305. package/dist/validation/ValidatorAdapter.d.ts +0 -66
  306. package/dist/validation/adapters/ClassValidatorAdapter.d.ts +0 -23
  307. package/dist/validation/adapters/ClassValidatorAdapter.js +0 -47
  308. package/dist/validation/adapters/ZodAdapter.d.ts +0 -14
  309. package/dist/validation/adapters/ZodAdapter.js +0 -56
  310. package/dist/validation/adapters/index.d.ts +0 -4
  311. package/dist/validation/adapters/index.js +0 -7
  312. package/dist/validation/index.d.ts +0 -3
  313. package/dist/validation/index.js +0 -20
package/README.md ADDED
@@ -0,0 +1,188 @@
1
+ # @carno.js/core
2
+
3
+ Ultra-fast, performance-first HTTP framework for Bun.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ bun add @carno.js/core
9
+ ```
10
+
11
+ ## Prerequisites
12
+
13
+ Enable decorators in your `tsconfig.json`:
14
+
15
+ ```json
16
+ {
17
+ "compilerOptions": {
18
+ "experimentalDecorators": true,
19
+ "emitDecoratorMetadata": true
20
+ }
21
+ }
22
+ ```
23
+
24
+ ## Quick Start
25
+
26
+ ```typescript
27
+ import { Carno, Controller, Get, Service, Param } from '@carno.js/core';
28
+
29
+ @Service()
30
+ class GreetService {
31
+ greet(name: string) {
32
+ return `Hello, ${name}!`;
33
+ }
34
+ }
35
+
36
+ @Controller('/greet')
37
+ class GreetController {
38
+ constructor(private greetService: GreetService) {}
39
+
40
+ @Get('/:name')
41
+ greet(@Param('name') name: string) {
42
+ return { message: this.greetService.greet(name) };
43
+ }
44
+ }
45
+
46
+ const app = new Carno();
47
+ app.services([GreetService]);
48
+ app.controllers([GreetController]);
49
+ app.listen(3000);
50
+ ```
51
+
52
+ ## API Overview
53
+
54
+ ### Application
55
+
56
+ ```typescript
57
+ const app = new Carno(config?: CarnoConfig);
58
+
59
+ app.controllers([...]); // Register controllers
60
+ app.services([...]); // Register services
61
+ app.middlewares([...]); // Register global middlewares
62
+ app.use(plugin); // Use a plugin/module
63
+ await app.listen(3000); // Start server
64
+ await app.stop(); // Stop server
65
+ ```
66
+
67
+ ### Decorators
68
+
69
+ #### Controllers & Routes
70
+
71
+ | Decorator | Description |
72
+ | :--- | :--- |
73
+ | `@Controller(path?)` | Define a controller with optional base path |
74
+ | `@Get(path?)` | Handle GET requests |
75
+ | `@Post(path?)` | Handle POST requests |
76
+ | `@Put(path?)` | Handle PUT requests |
77
+ | `@Delete(path?)` | Handle DELETE requests |
78
+ | `@Patch(path?)` | Handle PATCH requests |
79
+
80
+ #### Parameters
81
+
82
+ | Decorator | Description |
83
+ | :--- | :--- |
84
+ | `@Param(key?)` | Route parameters |
85
+ | `@Query(key?)` | Query string parameters |
86
+ | `@Body(key?)` | Request body |
87
+ | `@Header(key?)` | Request headers |
88
+ | `@Req()` | Raw Request object |
89
+ | `@Ctx()` | Full Context object |
90
+
91
+ #### Dependency Injection
92
+
93
+ | Decorator | Description |
94
+ | :--- | :--- |
95
+ | `@Service(options?)` | Mark class as injectable service |
96
+ | `@Inject(token)` | Inject by token (for interfaces) |
97
+
98
+ #### Middleware
99
+
100
+ | Decorator | Description |
101
+ | :--- | :--- |
102
+ | `@Use(middleware)` | Apply middleware to controller/route |
103
+
104
+ #### Lifecycle
105
+
106
+ | Decorator | Description |
107
+ | :--- | :--- |
108
+ | `@OnApplicationInit()` | Called after DI container is ready |
109
+ | `@OnApplicationBoot()` | Called when server starts listening |
110
+ | `@OnApplicationShutdown()` | Called when server is stopping |
111
+
112
+ ### Validation
113
+
114
+ ```typescript
115
+ import { z } from 'zod';
116
+ import { Schema, ZodAdapter } from '@carno.js/core';
117
+
118
+ @Schema(z.object({
119
+ name: z.string().min(2),
120
+ email: z.string().email(),
121
+ }))
122
+ class CreateUserDto {
123
+ name!: string;
124
+ email!: string;
125
+ }
126
+
127
+ const app = new Carno({ validation: new ZodAdapter() });
128
+ ```
129
+
130
+ ### CORS
131
+
132
+ ```typescript
133
+ const app = new Carno({
134
+ cors: {
135
+ origins: '*', // or specific origin(s)
136
+ methods: ['GET', 'POST'],
137
+ headers: ['Content-Type'],
138
+ credentials: true,
139
+ maxAge: 86400,
140
+ }
141
+ });
142
+ ```
143
+
144
+ ### Exceptions
145
+
146
+ ```typescript
147
+ import {
148
+ BadRequestException,
149
+ UnauthorizedException,
150
+ ForbiddenException,
151
+ NotFoundException,
152
+ ConflictException,
153
+ InternalServerErrorException,
154
+ } from '@carno.js/core';
155
+
156
+ throw new NotFoundException('User not found');
157
+ ```
158
+
159
+ ### Testing
160
+
161
+ ```typescript
162
+ import { withTestApp } from '@carno.js/core';
163
+
164
+ await withTestApp(
165
+ async (harness) => {
166
+ const res = await harness.get('/users');
167
+ expect(res.status).toBe(200);
168
+ },
169
+ { controllers: [UserController], listen: true }
170
+ );
171
+ ```
172
+
173
+ ## Configuration
174
+
175
+ ```typescript
176
+ interface CarnoConfig {
177
+ exports?: (Token | ProviderConfig)[];
178
+ globalMiddlewares?: MiddlewareHandler[];
179
+ disableStartupLog?: boolean;
180
+ cors?: CorsConfig;
181
+ validation?: ValidatorAdapter | boolean;
182
+ cache?: CacheConfig | boolean;
183
+ }
184
+ ```
185
+
186
+ ## License
187
+
188
+ MIT