@asenajs/asena 0.1.18 → 0.2.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 (260) hide show
  1. package/README.md +90 -147
  2. package/dist/index.d.ts +0 -9
  3. package/dist/index.js +0 -9
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/adapter/AsenaAdapter.d.ts +46 -54
  6. package/dist/lib/adapter/AsenaAdapter.js +22 -11
  7. package/dist/lib/adapter/AsenaAdapter.js.map +1 -1
  8. package/dist/lib/adapter/AsenaContext.d.ts +67 -57
  9. package/dist/lib/adapter/AsenaWebsocketAdapter.d.ts +57 -34
  10. package/dist/lib/adapter/AsenaWebsocketAdapter.js +43 -12
  11. package/dist/lib/adapter/AsenaWebsocketAdapter.js.map +1 -1
  12. package/dist/lib/adapter/index.d.ts +1 -0
  13. package/dist/lib/adapter/index.js +1 -0
  14. package/dist/lib/adapter/index.js.map +1 -1
  15. package/dist/lib/adapter/types/ApiParams.d.ts +73 -0
  16. package/dist/lib/adapter/types/ApiParams.js +2 -0
  17. package/dist/lib/adapter/types/ApiParams.js.map +1 -0
  18. package/dist/lib/adapter/types/AsenaHandler.d.ts +2 -0
  19. package/dist/lib/adapter/types/AsenaHandler.js +2 -0
  20. package/dist/lib/adapter/types/AsenaHandler.js.map +1 -0
  21. package/dist/lib/adapter/types/AsenaMiddlewareHandler.d.ts +2 -0
  22. package/dist/lib/adapter/types/AsenaMiddlewareHandler.js +2 -0
  23. package/dist/lib/adapter/types/AsenaMiddlewareHandler.js.map +1 -0
  24. package/dist/lib/adapter/types/BaseMiddleware.d.ts +57 -0
  25. package/dist/lib/adapter/types/BaseMiddleware.js +2 -0
  26. package/dist/lib/adapter/types/BaseMiddleware.js.map +1 -0
  27. package/dist/lib/adapter/types/ErrorHandler.d.ts +2 -0
  28. package/dist/lib/adapter/types/ErrorHandler.js +2 -0
  29. package/dist/lib/adapter/types/ErrorHandler.js.map +1 -0
  30. package/dist/lib/adapter/types/RouteParams.d.ts +8 -5
  31. package/dist/lib/adapter/types/ServeOptions.d.ts +7 -0
  32. package/dist/lib/adapter/types/ServeOptions.js +2 -0
  33. package/dist/lib/adapter/types/ServeOptions.js.map +1 -0
  34. package/dist/lib/adapter/types/WebSocketRegistry.d.ts +5 -4
  35. package/dist/lib/adapter/types/WebsocketAdapterParams.d.ts +1 -1
  36. package/dist/lib/adapter/types/index.d.ts +6 -0
  37. package/dist/lib/adapter/types/index.js +6 -0
  38. package/dist/lib/adapter/types/index.js.map +1 -1
  39. package/dist/lib/ioc/Container.d.ts +8 -3
  40. package/dist/lib/ioc/Container.js +100 -76
  41. package/dist/lib/ioc/Container.js.map +1 -1
  42. package/dist/lib/ioc/IocEngine.d.ts +2 -2
  43. package/dist/lib/ioc/IocEngine.js +28 -16
  44. package/dist/lib/ioc/IocEngine.js.map +1 -1
  45. package/dist/lib/ioc/component/componentUtils.d.ts +1 -1
  46. package/dist/lib/ioc/component/componentUtils.js +16 -12
  47. package/dist/lib/ioc/component/componentUtils.js.map +1 -1
  48. package/dist/lib/{server/decorators/components → ioc/component/decorators}/Component.d.ts +1 -1
  49. package/dist/lib/{server/decorators/components → ioc/component/decorators}/Component.js +2 -2
  50. package/dist/lib/ioc/component/decorators/Component.js.map +1 -0
  51. package/dist/lib/ioc/component/decorators/Implements.js +2 -2
  52. package/dist/lib/ioc/component/decorators/Implements.js.map +1 -1
  53. package/dist/lib/ioc/component/decorators/Inject.d.ts +1 -1
  54. package/dist/lib/ioc/component/decorators/Inject.js +6 -7
  55. package/dist/lib/ioc/component/decorators/Inject.js.map +1 -1
  56. package/dist/lib/ioc/component/decorators/PostConstruct.d.ts +6 -0
  57. package/dist/lib/ioc/component/decorators/PostConstruct.js +17 -0
  58. package/dist/lib/ioc/component/decorators/PostConstruct.js.map +1 -0
  59. package/dist/lib/ioc/component/decorators/Strategy.js +6 -6
  60. package/dist/lib/ioc/component/decorators/Strategy.js.map +1 -1
  61. package/dist/lib/ioc/component/decorators/index.d.ts +1 -0
  62. package/dist/lib/ioc/component/decorators/index.js +1 -0
  63. package/dist/lib/ioc/component/decorators/index.js.map +1 -1
  64. package/dist/lib/ioc/component/index.d.ts +1 -0
  65. package/dist/lib/ioc/component/index.js +2 -0
  66. package/dist/lib/ioc/component/index.js.map +1 -0
  67. package/dist/lib/ioc/constants/ComponentConstants.d.ts +4 -2
  68. package/dist/lib/ioc/constants/ComponentConstants.js +3 -1
  69. package/dist/lib/ioc/constants/ComponentConstants.js.map +1 -1
  70. package/dist/lib/ioc/helper/fileHelper.d.ts +1 -1
  71. package/dist/lib/ioc/helper/fileHelper.js +9 -3
  72. package/dist/lib/ioc/helper/fileHelper.js.map +1 -1
  73. package/dist/lib/ioc/helper/iocHelper.d.ts +2 -3
  74. package/dist/lib/ioc/helper/iocHelper.js +4 -2
  75. package/dist/lib/ioc/helper/iocHelper.js.map +1 -1
  76. package/dist/lib/ioc/types/{Component.d.ts → InjectableComponent.d.ts} +4 -4
  77. package/dist/lib/ioc/types/InjectableComponent.js +2 -0
  78. package/dist/lib/ioc/types/InjectableComponent.js.map +1 -0
  79. package/dist/lib/ioc/types/IocConfig.d.ts +1 -0
  80. package/dist/lib/ioc/types/decorators/ComponentParams.d.ts +1 -1
  81. package/dist/lib/ioc/types/decorators/ComponentType.d.ts +2 -2
  82. package/dist/lib/ioc/types/decorators/ComponentType.js +1 -1
  83. package/dist/lib/ioc/types/decorators/ComponentType.js.map +1 -1
  84. package/dist/lib/ioc/types/decorators/ControllerParams.d.ts +4 -3
  85. package/dist/lib/ioc/types/decorators/MiddlewareParams.d.ts +1 -1
  86. package/dist/lib/ioc/types/index.d.ts +1 -1
  87. package/dist/lib/ioc/types/index.js +1 -1
  88. package/dist/lib/ioc/types/index.js.map +1 -1
  89. package/dist/lib/{services/logger → logger}/DefaultLogger.d.ts +1 -1
  90. package/dist/lib/logger/DefaultLogger.js.map +1 -0
  91. package/dist/lib/{services/types → logger}/Logger.js.map +1 -1
  92. package/dist/lib/logger/index.d.ts +2 -0
  93. package/dist/lib/logger/index.js +3 -0
  94. package/dist/lib/logger/index.js.map +1 -0
  95. package/dist/lib/server/AsenaServer.d.ts +15 -14
  96. package/dist/lib/server/AsenaServer.js +125 -113
  97. package/dist/lib/server/AsenaServer.js.map +1 -1
  98. package/dist/lib/server/config/AsenaConfig.d.ts +43 -0
  99. package/dist/lib/server/config/AsenaConfig.js +2 -0
  100. package/dist/lib/server/config/AsenaConfig.js.map +1 -0
  101. package/dist/lib/server/config/index.d.ts +1 -0
  102. package/dist/lib/server/config/index.js +2 -0
  103. package/dist/lib/server/config/index.js.map +1 -0
  104. package/dist/lib/server/decorators/Override.d.ts +4 -4
  105. package/dist/lib/server/decorators/Override.js +11 -7
  106. package/dist/lib/server/decorators/Override.js.map +1 -1
  107. package/dist/lib/server/decorators/components/Config.d.ts +10 -0
  108. package/dist/lib/server/decorators/components/Config.js +14 -0
  109. package/dist/lib/server/decorators/components/Config.js.map +1 -0
  110. package/dist/lib/server/decorators/components/Controller.js +4 -4
  111. package/dist/lib/server/decorators/components/Controller.js.map +1 -1
  112. package/dist/lib/server/decorators/components/Middleware.d.ts +1 -1
  113. package/dist/lib/server/decorators/components/Middleware.js +19 -9
  114. package/dist/lib/server/decorators/components/Middleware.js.map +1 -1
  115. package/dist/lib/server/decorators/components/Schedule.d.ts +2 -2
  116. package/dist/lib/server/decorators/components/Schedule.js +7 -7
  117. package/dist/lib/server/decorators/components/Schedule.js.map +1 -1
  118. package/dist/lib/server/decorators/components/Service.d.ts +1 -1
  119. package/dist/lib/server/decorators/components/Service.js +2 -2
  120. package/dist/lib/server/decorators/components/Service.js.map +1 -1
  121. package/dist/lib/server/decorators/components/WebSocket.js +4 -4
  122. package/dist/lib/server/decorators/components/WebSocket.js.map +1 -1
  123. package/dist/lib/server/decorators/components/index.d.ts +1 -2
  124. package/dist/lib/server/decorators/components/index.js +1 -2
  125. package/dist/lib/server/decorators/components/index.js.map +1 -1
  126. package/dist/lib/server/decorators/index.d.ts +2 -1
  127. package/dist/lib/server/decorators/index.js +2 -1
  128. package/dist/lib/server/decorators/index.js.map +1 -1
  129. package/dist/lib/server/types/Class.d.ts +0 -3
  130. package/dist/lib/server/types/index.d.ts +2 -2
  131. package/dist/lib/server/types/index.js +2 -2
  132. package/dist/lib/server/types/index.js.map +1 -1
  133. package/dist/lib/server/web/decorators/http.base.d.ts +4 -0
  134. package/dist/lib/server/web/decorators/http.base.js +35 -0
  135. package/dist/lib/server/web/decorators/http.base.js.map +1 -0
  136. package/dist/lib/server/web/decorators/index.d.ts +4 -0
  137. package/dist/lib/server/web/decorators/index.js +5 -0
  138. package/dist/lib/server/web/decorators/index.js.map +1 -0
  139. package/dist/lib/server/web/decorators/methods/Connect.d.ts +7 -0
  140. package/dist/lib/server/web/decorators/methods/Connect.js +12 -0
  141. package/dist/lib/server/web/decorators/methods/Connect.js.map +1 -0
  142. package/dist/lib/server/web/decorators/methods/Delete.d.ts +7 -0
  143. package/dist/lib/server/web/decorators/methods/Delete.js +12 -0
  144. package/dist/lib/server/web/decorators/methods/Delete.js.map +1 -0
  145. package/dist/lib/server/web/decorators/methods/Get.d.ts +7 -0
  146. package/dist/lib/server/web/decorators/methods/Get.js +12 -0
  147. package/dist/lib/server/web/decorators/methods/Get.js.map +1 -0
  148. package/dist/lib/server/web/decorators/methods/Head.d.ts +7 -0
  149. package/dist/lib/server/web/decorators/methods/Head.js +12 -0
  150. package/dist/lib/server/web/decorators/methods/Head.js.map +1 -0
  151. package/dist/lib/server/web/decorators/methods/Options.d.ts +7 -0
  152. package/dist/lib/server/web/decorators/methods/Options.js +12 -0
  153. package/dist/lib/server/web/decorators/methods/Options.js.map +1 -0
  154. package/dist/lib/server/web/decorators/methods/Patch.d.ts +7 -0
  155. package/dist/lib/server/web/decorators/methods/Patch.js +12 -0
  156. package/dist/lib/server/web/decorators/methods/Patch.js.map +1 -0
  157. package/dist/lib/server/web/decorators/methods/Post.d.ts +7 -0
  158. package/dist/lib/server/web/decorators/methods/Post.js +12 -0
  159. package/dist/lib/server/web/decorators/methods/Post.js.map +1 -0
  160. package/dist/lib/server/web/decorators/methods/Put.d.ts +7 -0
  161. package/dist/lib/server/web/decorators/methods/Put.js +12 -0
  162. package/dist/lib/server/web/decorators/methods/Put.js.map +1 -0
  163. package/dist/lib/server/web/decorators/methods/Trace.d.ts +7 -0
  164. package/dist/lib/server/web/decorators/methods/Trace.js +12 -0
  165. package/dist/lib/server/web/decorators/methods/Trace.js.map +1 -0
  166. package/dist/lib/server/web/decorators/methods/index.d.ts +9 -0
  167. package/dist/lib/server/web/decorators/methods/index.js +10 -0
  168. package/dist/lib/server/web/decorators/methods/index.js.map +1 -0
  169. package/dist/lib/server/web/helper/middlewareHelper.d.ts +8 -2
  170. package/dist/lib/server/web/helper/middlewareHelper.js +11 -5
  171. package/dist/lib/server/web/helper/middlewareHelper.js.map +1 -1
  172. package/dist/lib/server/web/middleware/AsenaMiddlewareService.d.ts +8 -10
  173. package/dist/lib/server/web/middleware/AsenaMiddlewareService.js +1 -4
  174. package/dist/lib/server/web/middleware/AsenaMiddlewareService.js.map +1 -1
  175. package/dist/lib/server/web/middleware/AsenaValidationService.d.ts +15 -16
  176. package/dist/lib/server/web/middleware/AsenaValidationService.js +1 -8
  177. package/dist/lib/server/web/middleware/AsenaValidationService.js.map +1 -1
  178. package/dist/lib/server/web/types/HttpMethod.js.map +1 -0
  179. package/dist/lib/server/web/types/HttpStatus.d.ts +79 -0
  180. package/dist/lib/server/web/types/HttpStatus.js +85 -0
  181. package/dist/lib/server/web/types/HttpStatus.js.map +1 -0
  182. package/dist/lib/server/web/types/index.d.ts +2 -2
  183. package/dist/lib/server/web/types/index.js +2 -2
  184. package/dist/lib/server/web/types/index.js.map +1 -1
  185. package/dist/lib/server/web/websocket/AsenaSocket.d.ts +1 -0
  186. package/dist/lib/server/web/websocket/AsenaSocket.js +4 -0
  187. package/dist/lib/server/web/websocket/AsenaSocket.js.map +1 -1
  188. package/dist/lib/server/web/websocket/AsenaWebSocketServer.d.ts +39 -0
  189. package/dist/lib/server/web/websocket/AsenaWebSocketServer.js +41 -1
  190. package/dist/lib/server/web/websocket/AsenaWebSocketServer.js.map +1 -1
  191. package/dist/lib/server/web/websocket/AsenaWebSocketService.js +4 -4
  192. package/dist/lib/server/web/websocket/AsenaWebSocketService.js.map +1 -1
  193. package/dist/lib/server/web/websocket/index.d.ts +1 -0
  194. package/dist/lib/server/web/websocket/index.js +1 -0
  195. package/dist/lib/server/web/websocket/index.js.map +1 -1
  196. package/dist/lib/utils/typedMetadata.d.ts +3 -0
  197. package/dist/lib/utils/typedMetadata.js +16 -0
  198. package/dist/lib/utils/typedMetadata.js.map +1 -0
  199. package/package.json +55 -6
  200. package/dist/lib/adapter/defaultAdapter/DefaultAdapter.d.ts +0 -26
  201. package/dist/lib/adapter/defaultAdapter/DefaultAdapter.js +0 -92
  202. package/dist/lib/adapter/defaultAdapter/DefaultAdapter.js.map +0 -1
  203. package/dist/lib/adapter/defaultAdapter/DefaultContextWrapper.d.ts +0 -32
  204. package/dist/lib/adapter/defaultAdapter/DefaultContextWrapper.js +0 -97
  205. package/dist/lib/adapter/defaultAdapter/DefaultContextWrapper.js.map +0 -1
  206. package/dist/lib/adapter/defaultAdapter/DefaultWebsocketAdapter.d.ts +0 -15
  207. package/dist/lib/adapter/defaultAdapter/DefaultWebsocketAdapter.js +0 -77
  208. package/dist/lib/adapter/defaultAdapter/DefaultWebsocketAdapter.js.map +0 -1
  209. package/dist/lib/adapter/defaultAdapter/index.d.ts +0 -3
  210. package/dist/lib/adapter/defaultAdapter/index.js +0 -4
  211. package/dist/lib/adapter/defaultAdapter/index.js.map +0 -1
  212. package/dist/lib/adapter/defaultAdapter/types/Defaultcontext.d.ts +0 -3
  213. package/dist/lib/adapter/defaultAdapter/types/Defaultcontext.js +0 -2
  214. package/dist/lib/adapter/defaultAdapter/types/Defaultcontext.js.map +0 -1
  215. package/dist/lib/adapter/defaultAdapter/types/Handler.d.ts +0 -4
  216. package/dist/lib/adapter/defaultAdapter/types/Handler.js +0 -2
  217. package/dist/lib/adapter/defaultAdapter/types/Handler.js.map +0 -1
  218. package/dist/lib/adapter/defaultAdapter/types/index.d.ts +0 -2
  219. package/dist/lib/adapter/defaultAdapter/types/index.js +0 -3
  220. package/dist/lib/adapter/defaultAdapter/types/index.js.map +0 -1
  221. package/dist/lib/ioc/types/Component.js +0 -2
  222. package/dist/lib/ioc/types/Component.js.map +0 -1
  223. package/dist/lib/server/decorators/components/Component.js.map +0 -1
  224. package/dist/lib/server/decorators/components/ServerService.d.ts +0 -9
  225. package/dist/lib/server/decorators/components/ServerService.js +0 -13
  226. package/dist/lib/server/decorators/components/ServerService.js.map +0 -1
  227. package/dist/lib/server/web/api/apiHandler.d.ts +0 -55
  228. package/dist/lib/server/web/api/apiHandler.js +0 -107
  229. package/dist/lib/server/web/api/apiHandler.js.map +0 -1
  230. package/dist/lib/server/web/api/index.d.ts +0 -1
  231. package/dist/lib/server/web/api/index.js +0 -2
  232. package/dist/lib/server/web/api/index.js.map +0 -1
  233. package/dist/lib/server/web/http/HttpMethod.js.map +0 -1
  234. package/dist/lib/server/web/http/HttpStatus.d.ts +0 -77
  235. package/dist/lib/server/web/http/HttpStatus.js +0 -84
  236. package/dist/lib/server/web/http/HttpStatus.js.map +0 -1
  237. package/dist/lib/server/web/http/index.d.ts +0 -2
  238. package/dist/lib/server/web/http/index.js +0 -3
  239. package/dist/lib/server/web/http/index.js.map +0 -1
  240. package/dist/lib/server/web/types/ApiHandler.d.ts +0 -22
  241. package/dist/lib/server/web/types/ApiHandler.js +0 -2
  242. package/dist/lib/server/web/types/ApiHandler.js.map +0 -1
  243. package/dist/lib/server/web/types/BaseMiddleware.d.ts +0 -12
  244. package/dist/lib/server/web/types/BaseMiddleware.js +0 -2
  245. package/dist/lib/server/web/types/BaseMiddleware.js.map +0 -1
  246. package/dist/lib/services/index.d.ts +0 -3
  247. package/dist/lib/services/index.js +0 -4
  248. package/dist/lib/services/index.js.map +0 -1
  249. package/dist/lib/services/logger/DefaultLogger.js.map +0 -1
  250. package/dist/lib/services/serverService/AsenaService.d.ts +0 -7
  251. package/dist/lib/services/serverService/AsenaService.js +0 -7
  252. package/dist/lib/services/serverService/AsenaService.js.map +0 -1
  253. package/dist/lib/services/types/index.d.ts +0 -2
  254. package/dist/lib/services/types/index.js +0 -3
  255. package/dist/lib/services/types/index.js.map +0 -1
  256. /package/dist/lib/{services/logger → logger}/DefaultLogger.js +0 -0
  257. /package/dist/lib/{services/types → logger}/Logger.d.ts +0 -0
  258. /package/dist/lib/{services/types → logger}/Logger.js +0 -0
  259. /package/dist/lib/server/web/{http → types}/HttpMethod.d.ts +0 -0
  260. /package/dist/lib/server/web/{http → types}/HttpMethod.js +0 -0
@@ -1,26 +0,0 @@
1
- import { AsenaAdapter } from '../AsenaAdapter';
2
- import { type Context, Hono, type HonoRequest, type MiddlewareHandler } from 'hono';
3
- import type { Server } from 'bun';
4
- import type { RouteParams } from '../types';
5
- import type { H } from 'hono/types';
6
- import type { BaseMiddleware } from '../../server/web/types';
7
- import type { ErrorHandler, Handler } from './types';
8
- import type { ValidatorClass } from '../../server/types';
9
- import { type ServerLogger } from '../../services';
10
- import type { AsenaWebsocketAdapter } from '../AsenaWebsocketAdapter';
11
- export declare class DefaultAdapter extends AsenaAdapter<Hono, Handler, MiddlewareHandler, H> {
12
- private static readonly VALIDATOR_METHODS;
13
- app: Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
14
- private server;
15
- private readonly methodMap;
16
- constructor(websocketAdapter: AsenaWebsocketAdapter<any, any>, logger?: ServerLogger);
17
- use(middleware: BaseMiddleware<HonoRequest, Response>, path?: string): void;
18
- registerRoute({ method, path, middleware, handler, staticServe, validator, }: RouteParams<MiddlewareHandler, H>): void;
19
- start(): Promise<Server>;
20
- prepareMiddlewares(middlewares: BaseMiddleware<HonoRequest, Response> | BaseMiddleware<HonoRequest, Response>[]): ((c: any, next: any) => any)[];
21
- prepareHandler(handler: () => Handler): (c: Context) => any;
22
- onError(errorHandler: ErrorHandler): void;
23
- setPort(port: number): void;
24
- prepareValidator(Validator: ValidatorClass<MiddlewareHandler>): MiddlewareHandler[];
25
- private normalizePath;
26
- }
@@ -1,92 +0,0 @@
1
- import { AsenaAdapter } from '../AsenaAdapter';
2
- import { Hono } from 'hono';
3
- import * as bun from 'bun';
4
- import { createFactory } from 'hono/factory';
5
- import { DefaultContextWrapper } from './DefaultContextWrapper';
6
- import { HttpMethod } from '../../server/web/http';
7
- import { green, yellow } from '../../services';
8
- export class DefaultAdapter extends AsenaAdapter {
9
- static VALIDATOR_METHODS = ['json', 'query', 'form', 'param', 'header'];
10
- app = new Hono();
11
- server;
12
- methodMap = {
13
- [HttpMethod.GET]: (path, ...handlers) => this.app.get(path, ...handlers),
14
- [HttpMethod.POST]: (path, ...handlers) => this.app.post(path, ...handlers),
15
- [HttpMethod.PUT]: (path, ...handlers) => this.app.put(path, ...handlers),
16
- [HttpMethod.DELETE]: (path, ...handlers) => this.app.delete(path, ...handlers),
17
- [HttpMethod.PATCH]: (path, ...handlers) => this.app.patch(path, ...handlers),
18
- [HttpMethod.OPTIONS]: (path, ...handlers) => this.app.options(path, ...handlers),
19
- [HttpMethod.CONNECT]: (path, ...handlers) => this.app.on(HttpMethod.CONNECT.toUpperCase(), path, ...handlers),
20
- [HttpMethod.HEAD]: (path, ...handlers) => this.app.on(HttpMethod.HEAD.toUpperCase(), path, ...handlers),
21
- [HttpMethod.TRACE]: (path, ...handlers) => this.app.on(HttpMethod.TRACE.toUpperCase(), path, ...handlers),
22
- };
23
- constructor(websocketAdapter, logger) {
24
- super(websocketAdapter, logger);
25
- this.websocketAdapter.app = this.app;
26
- // to ensure that the logger is set
27
- if (!this.websocketAdapter.logger && logger) {
28
- this.websocketAdapter.logger = this.logger;
29
- }
30
- }
31
- use(middleware, path) {
32
- const normalizedPath = path ? this.normalizePath(path) : undefined;
33
- const preparedMiddlewares = this.prepareMiddlewares(middleware);
34
- if (normalizedPath) {
35
- this.app.use(normalizedPath, ...preparedMiddlewares);
36
- return;
37
- }
38
- this.app.use(...preparedMiddlewares);
39
- }
40
- registerRoute({ method, path, middleware, handler, staticServe, validator, }) {
41
- const middlewares = validator ? [...validator, ...middleware] : middleware;
42
- const routeHandler = staticServe ? middleware : [...middlewares, handler];
43
- const methodHandler = this.methodMap[method];
44
- if (!methodHandler) {
45
- throw new Error('Invalid method');
46
- }
47
- methodHandler(path, ...routeHandler);
48
- this.logger.info(`${green('Successfully')} registered ${yellow(method.toUpperCase())} route for PATH: ${green(`/${path}`)}`);
49
- }
50
- async start() {
51
- this.websocketAdapter.buildWebsocket();
52
- this.server = bun.serve({ port: this.port, fetch: this.app.fetch, websocket: this.websocketAdapter.websocket });
53
- this.websocketAdapter.startWebsocket(this.server);
54
- return this.server;
55
- }
56
- prepareMiddlewares(middlewares) {
57
- const _middlewares = Array.isArray(middlewares) ? middlewares : [middlewares];
58
- const factory = createFactory();
59
- return _middlewares.map((middleware) => {
60
- if (middleware.override) {
61
- return (c, next) => middleware.middlewareService.handle(c, next);
62
- }
63
- return factory.createMiddleware(async (context, next) => {
64
- await middleware.middlewareService.handle(new DefaultContextWrapper(context), next);
65
- });
66
- });
67
- }
68
- prepareHandler(handler) {
69
- return (c) => handler()(new DefaultContextWrapper(c));
70
- }
71
- onError(errorHandler) {
72
- this.app.onError((error, context) => {
73
- return errorHandler(error, new DefaultContextWrapper(context));
74
- });
75
- }
76
- setPort(port) {
77
- this.port = port;
78
- }
79
- prepareValidator(Validator) {
80
- if (!Validator) {
81
- return [];
82
- }
83
- const validatorInstance = new Validator();
84
- return DefaultAdapter.VALIDATOR_METHODS.filter((key) => validatorInstance[key]).map((key) => {
85
- return validatorInstance[key]();
86
- });
87
- }
88
- normalizePath(path) {
89
- return `${path.endsWith('/') ? path : `${path}/`}*`;
90
- }
91
- }
92
- //# sourceMappingURL=DefaultAdapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DefaultAdapter.js","sourceRoot":"","sources":["../../../../lib/adapter/defaultAdapter/DefaultAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAgB,IAAI,EAAuD,MAAM,MAAM,CAAC;AAE/F,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAE3B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAInD,OAAO,EAAE,KAAK,EAAqB,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAGlE,MAAM,OAAO,cAAe,SAAQ,YAAiD;IAE3E,MAAM,CAAU,iBAAiB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC;IAE3F,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IAEhB,MAAM,CAAS;IAEN,SAAS,GAAG;QAC3B,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,IAAY,EAAE,GAAG,QAAe,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC;QACvF,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,IAAY,EAAE,GAAG,QAAe,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC;QACzF,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,IAAY,EAAE,GAAG,QAAe,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC;QACvF,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,IAAY,EAAE,GAAG,QAAe,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC;QAC7F,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,IAAY,EAAE,GAAG,QAAe,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC;QAC3F,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,IAAY,EAAE,GAAG,QAAe,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC;QAC/F,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,IAAY,EAAE,GAAG,QAAe,EAAE,EAAE,CACzD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;QAClE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,IAAY,EAAE,GAAG,QAAe,EAAE,EAAE,CACtD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;QAC/D,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,IAAY,EAAE,GAAG,QAAe,EAAE,EAAE,CACvD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;KACjE,CAAC;IAEF,YAAmB,gBAAiD,EAAE,MAAqB;QACzF,KAAK,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,gBAAgB,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QAErC,mCAAmC;QACnC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;YAC5C,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC7C,CAAC;IACH,CAAC;IAEM,GAAG,CAAC,UAAiD,EAAE,IAAa;QACzE,MAAM,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACnE,MAAM,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAEhE,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,mBAAmB,CAAC,CAAC;YACrD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAAC,CAAC;IACvC,CAAC;IAEM,aAAa,CAAC,EACnB,MAAM,EACN,IAAI,EACJ,UAAU,EACV,OAAO,EACP,WAAW,EACX,SAAS,GACyB;QAClC,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QAC3E,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,EAAE,OAAO,CAAC,CAAC;QAE1E,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAE7C,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACpC,CAAC;QAED,aAAa,CAAC,IAAI,EAAE,GAAG,YAAY,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,GAAG,KAAK,CAAC,cAAc,CAAC,eAAe,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,oBAAoB,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAC3G,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC;QAEvC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC;QAEhH,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAElD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEM,kBAAkB,CACvB,WAA4F;QAE5F,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAE9E,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;QAEhC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;YACrC,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACxB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACnE,CAAC;YAED,OAAO,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAgB,EAAE,IAAU,EAAE,EAAE;gBACrE,MAAM,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;YACtF,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,cAAc,CAAC,OAAsB;QAC1C,OAAO,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IAEM,OAAO,CAAC,YAA0B;QACvC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAClC,OAAO,YAAY,CAAC,KAAK,EAAE,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,OAAO,CAAC,IAAY;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEM,gBAAgB,CAAC,SAA4C;QAClE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,iBAAiB,GAAG,IAAI,SAAS,EAAE,CAAC;QAE1C,OAAO,cAAc,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAC1F,OAAO,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,aAAa,CAAC,IAAY;QAChC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC;IACtD,CAAC"}
@@ -1,32 +0,0 @@
1
- import type { Context, HonoRequest } from 'hono';
2
- import type { AsenaContext } from '../AsenaContext';
3
- import type { SendOptions } from '../types';
4
- import type { CookieExtra } from '../types';
5
- import type { CookieOptions } from 'hono/utils/cookie';
6
- export declare class DefaultContextWrapper implements AsenaContext<HonoRequest<any, any>, Response> {
7
- private _context;
8
- constructor(context: Context);
9
- get req(): HonoRequest<any, unknown>;
10
- get res(): Response;
11
- get headers(): Record<string, string>;
12
- getArrayBuffer(): Promise<ArrayBuffer>;
13
- getParseBody(): Promise<any>;
14
- getBlob(): Promise<Blob>;
15
- getFormData(): Promise<FormData>;
16
- getParam(s: string): string;
17
- getBody<T>(): Promise<T>;
18
- getQuery(query: string): Promise<string>;
19
- getQueryAll(query: string): Promise<string[]>;
20
- send(data: string | any, statusOrOptions?: SendOptions | number): (Response & import("hono").TypedResponse<string, import("hono/utils/http-status").StatusCode, "text">) | (Response & import("hono").TypedResponse<any, import("hono/utils/http-status").StatusCode, "json">);
21
- getCookie(name: string, secret?: string | BufferSource): Promise<string | false>;
22
- setCookie(name: string, value: string, options?: CookieExtra<CookieOptions>): Promise<void>;
23
- deleteCookie(name: string, options?: CookieExtra<CookieOptions>): Promise<void>;
24
- redirect(url: string): Response & import("hono").TypedResponse<undefined, 302, "redirect">;
25
- getValue<T>(key: string): T;
26
- setValue(key: string, value: any): void;
27
- setWebSocketValue(value: any): void;
28
- getWebSocketValue<T>(): T;
29
- html(data: string, statusOrOptions?: SendOptions | number): Response;
30
- get context(): Context;
31
- set context(value: Context);
32
- }
@@ -1,97 +0,0 @@
1
- import { getCookie, getSignedCookie, setCookie, setSignedCookie, deleteCookie } from 'hono/cookie'; // add delete cookie
2
- export class DefaultContextWrapper {
3
- _context;
4
- constructor(context) {
5
- this._context = context;
6
- }
7
- get req() {
8
- return this._context.req;
9
- }
10
- get res() {
11
- return this._context.res;
12
- }
13
- get headers() {
14
- return this._context.req.header();
15
- }
16
- getArrayBuffer() {
17
- return this._context.req.arrayBuffer();
18
- }
19
- getParseBody() {
20
- return this._context.req.parseBody();
21
- }
22
- getBlob() {
23
- return this._context.req.blob();
24
- }
25
- getFormData() {
26
- return this._context.req.formData();
27
- }
28
- getParam(s) {
29
- return this._context.req.param(s);
30
- }
31
- async getBody() {
32
- return await this._context.req.json();
33
- }
34
- async getQuery(query) {
35
- return this._context.req.query(query);
36
- }
37
- async getQueryAll(query) {
38
- return this._context.req.queries(query);
39
- }
40
- send(data, statusOrOptions) {
41
- const { headers = {}, status = 200 } = typeof statusOrOptions === 'number' ? { status: statusOrOptions } : statusOrOptions || {};
42
- if (headers !== undefined) {
43
- Object.entries(headers).forEach(([key, value]) => {
44
- this._context.res.headers.append(key, value);
45
- });
46
- }
47
- if (typeof data === 'string') {
48
- return this._context.text(data);
49
- }
50
- return this._context.json(data, { status });
51
- }
52
- async getCookie(name, secret) {
53
- return secret ? await getSignedCookie(this._context, secret, name) : getCookie(this._context, name);
54
- }
55
- async setCookie(name, value, options) {
56
- const { secret, extraOptions } = options ?? { secret: undefined, extraOptions: undefined };
57
- return secret
58
- ? setSignedCookie(this._context, name, value, secret, extraOptions)
59
- : setCookie(this._context, name, value, extraOptions);
60
- }
61
- async deleteCookie(name, options) {
62
- const { extraOptions } = options ?? { secret: undefined, extraOptions: undefined };
63
- deleteCookie(this._context, name, extraOptions);
64
- }
65
- redirect(url) {
66
- return this._context.redirect(url);
67
- }
68
- getValue(key) {
69
- return this._context.get(key);
70
- }
71
- setValue(key, value) {
72
- this._context.set(key, value);
73
- }
74
- setWebSocketValue(value) {
75
- this._context.set('_websocketData', value);
76
- }
77
- getWebSocketValue() {
78
- return this._context.get('_websocketData');
79
- }
80
- html(data, statusOrOptions) {
81
- const { headers = {}, status = 200 } = typeof statusOrOptions === 'number' ? { status: statusOrOptions } : statusOrOptions || {};
82
- if (typeof data === 'string') {
83
- return this._context.html(data, { headers, status });
84
- }
85
- Object.entries(headers).forEach(([key, value]) => {
86
- this._context.res.headers.append(key, value);
87
- });
88
- return this._context.html(data, { status });
89
- }
90
- get context() {
91
- return this._context;
92
- }
93
- set context(value) {
94
- this._context = value;
95
- }
96
- }
97
- //# sourceMappingURL=DefaultContextWrapper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DefaultContextWrapper.js","sourceRoot":"","sources":["../../../../lib/adapter/defaultAdapter/DefaultContextWrapper.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import { type AsenaWebSocketService, type WSOptions } from '../../server/web/websocket';
2
- import { AsenaWebsocketAdapter } from '../AsenaWebsocketAdapter';
3
- import type { Hono, MiddlewareHandler } from 'hono';
4
- import type { Server } from 'bun';
5
- import type { WebsocketAdapterParams } from '../types';
6
- export declare class DefaultWebsocketAdapter extends AsenaWebsocketAdapter<Hono, MiddlewareHandler> {
7
- private _server;
8
- constructor(params?: WebsocketAdapterParams<Hono>);
9
- registerWebSocket(webSocketService: AsenaWebSocketService<any>, middlewares: MiddlewareHandler[]): void;
10
- prepareWebSocket(options?: WSOptions): void;
11
- buildWebsocket(): void;
12
- startWebsocket(server: Server): void;
13
- private upgradeWebSocket;
14
- private createHandler;
15
- }
@@ -1,77 +0,0 @@
1
- import { AsenaSocket, } from '../../server/web/websocket';
2
- import { AsenaWebsocketAdapter } from '../AsenaWebsocketAdapter';
3
- import * as bun from 'bun';
4
- import { getMetadata } from 'reflect-metadata/no-conflict';
5
- import { ComponentConstants } from '../../ioc/constants';
6
- import { AsenaWebSocketServer } from '../../server/web/websocket/AsenaWebSocketServer';
7
- import { green, yellow } from '../../services';
8
- export class DefaultWebsocketAdapter extends AsenaWebsocketAdapter {
9
- _server;
10
- constructor(params) {
11
- super(params);
12
- }
13
- registerWebSocket(webSocketService, middlewares) {
14
- if (!webSocketService) {
15
- throw new Error('Websocket service is not provided');
16
- }
17
- if (this.websockets === undefined) {
18
- this.websockets = new Map();
19
- }
20
- const namespace = getMetadata(ComponentConstants.PathKey, webSocketService.constructor);
21
- if (!namespace) {
22
- throw new Error('Namespace is not provided');
23
- }
24
- webSocketService.namespace = namespace;
25
- this.logger.info(`${green('Successfully')} registered ${yellow('WEBSOCKET')} route for PATH: ${green(`/${webSocketService.namespace}`)} (${webSocketService.constructor.name})`);
26
- this.websockets.set(namespace, { socket: webSocketService, middlewares });
27
- }
28
- prepareWebSocket(options) {
29
- this.websocket = {
30
- open: this.createHandler('onOpenInternal'),
31
- message: this.createHandler('onMessage'),
32
- drain: this.createHandler('onDrain'),
33
- close: this.createHandler('onCloseInternal'),
34
- ping: this.createHandler('onPing'),
35
- pong: this.createHandler('onPong'),
36
- ...options,
37
- };
38
- }
39
- buildWebsocket() {
40
- if (!this.websocket || !this.websockets?.size)
41
- return;
42
- for (const [, websocket] of this.websockets) {
43
- this.upgradeWebSocket(websocket.socket, websocket.middlewares);
44
- }
45
- }
46
- startWebsocket(server) {
47
- this._server = server;
48
- if (!this.websockets) {
49
- return;
50
- }
51
- for (const [namespace, websocket] of this.websockets) {
52
- websocket.socket.server = new AsenaWebSocketServer(server, namespace);
53
- }
54
- }
55
- upgradeWebSocket(websocket, middlewares) {
56
- const path = websocket.namespace;
57
- this.app.get(`/${path}`, ...middlewares, async (c, next) => {
58
- const websocketData = c.get('_websocketData') || {};
59
- const id = bun.randomUUIDv7();
60
- const data = { values: websocketData, id, path: path };
61
- const upgradeResult = this._server.upgrade(c.req.raw, { data });
62
- if (upgradeResult) {
63
- return new Response(null);
64
- }
65
- await next(); // Failed
66
- });
67
- }
68
- createHandler(type) {
69
- return (ws, ...args) => {
70
- const websocket = this.websockets.get(ws.data.path);
71
- if (websocket?.socket[type]) {
72
- (websocket?.socket[type])(new AsenaSocket(ws, websocket.socket), ...args);
73
- }
74
- };
75
- }
76
- }
77
- //# sourceMappingURL=DefaultWebsocketAdapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DefaultWebsocketAdapter.js","sourceRoot":"","sources":["../../../../lib/adapter/defaultAdapter/DefaultWebsocketAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export * from './DefaultAdapter';
2
- export * from './DefaultContextWrapper';
3
- export * from './types';
@@ -1,4 +0,0 @@
1
- export * from './DefaultAdapter';
2
- export * from './DefaultContextWrapper';
3
- export * from './types';
4
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/adapter/defaultAdapter/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,SAAS,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { AsenaContext } from '../../AsenaContext';
2
- import type { HonoRequest } from 'hono';
3
- export type Context<P extends string = any, I = any, R = Response> = AsenaContext<HonoRequest<P, I>, R>;
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Defaultcontext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Defaultcontext.js","sourceRoot":"","sources":["../../../../../lib/adapter/defaultAdapter/types/Defaultcontext.ts"],"names":[],"mappings":""}
@@ -1,4 +0,0 @@
1
- import type { HonoRequest } from 'hono';
2
- import type { AsenaContext } from '../../AsenaContext';
3
- export type Handler = (context: AsenaContext<HonoRequest, Response>) => any | Promise<any>;
4
- export type ErrorHandler = (error: Error, context: AsenaContext<HonoRequest, Response>) => Response | Promise<Response>;
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Handler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Handler.js","sourceRoot":"","sources":["../../../../../lib/adapter/defaultAdapter/types/Handler.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export * from './Handler';
2
- export * from './Defaultcontext';
@@ -1,3 +0,0 @@
1
- export * from './Handler';
2
- export * from './Defaultcontext';
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../lib/adapter/defaultAdapter/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Component.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Component.js","sourceRoot":"","sources":["../../../../lib/ioc/types/Component.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Component.js","sourceRoot":"","sources":["../../../../../lib/server/decorators/components/Component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAC,eAAe,EAAC,MAAM,uCAAuC,CAAC;AAEtE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAiC,EAAkB,EAAE;IAC3E,OAAO,eAAe,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAC5D,CAAC,CAAC"}
@@ -1,9 +0,0 @@
1
- import { type ComponentParams } from "../../../ioc/types";
2
- /**
3
- * Decorator for defining a Server Service component.
4
- * This is a special type of service starts with the server.(e.g. DatabaseService, RedisService)
5
- *
6
- * @param {ComponentParams} [params] - Optional parameters for the server service.
7
- * @returns {ClassDecorator} - The class decorator for the server service.
8
- */
9
- export declare const ServerService: (params?: ComponentParams) => ClassDecorator;
@@ -1,13 +0,0 @@
1
- import { ComponentType } from "../../../ioc/types";
2
- import { defineComponent } from "../../../ioc/component/componentUtils";
3
- /**
4
- * Decorator for defining a Server Service component.
5
- * This is a special type of service starts with the server.(e.g. DatabaseService, RedisService)
6
- *
7
- * @param {ComponentParams} [params] - Optional parameters for the server service.
8
- * @returns {ClassDecorator} - The class decorator for the server service.
9
- */
10
- export const ServerService = (params) => {
11
- return defineComponent(ComponentType.SERVER_SERVICE, params);
12
- };
13
- //# sourceMappingURL=ServerService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ServerService.js","sourceRoot":"","sources":["../../../../../lib/server/decorators/components/ServerService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAC,eAAe,EAAC,MAAM,uCAAuC,CAAC;AAEtE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAwB,EAAkB,EAAE;IACtE,OAAO,eAAe,CAAC,aAAa,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AACjE,CAAC,CAAC"}
@@ -1,55 +0,0 @@
1
- import type { apiMethod, ControllerDecoratorParams } from '../types';
2
- /**
3
- * Decorator for handling HTTP GET requests.
4
- * @param {ControllerDecoratorParams | string} params - The parameters for the GET request.
5
- * @returns {Function} The generic handler for the GET request.
6
- */
7
- export declare function Get(params: ControllerDecoratorParams | string): (route: any, propertyKey: string, _descriptor: TypedPropertyDescriptor<apiMethod>) => void;
8
- /**
9
- * Decorator for handling HTTP POST requests.
10
- * @param {ControllerDecoratorParams | string} params - The parameters for the POST request.
11
- * @returns {Function} The generic handler for the POST request.
12
- */
13
- export declare function Post(params: ControllerDecoratorParams | string): (route: any, propertyKey: string, _descriptor: TypedPropertyDescriptor<apiMethod>) => void;
14
- /**
15
- * Decorator for handling HTTP PUT requests.
16
- * @param {ControllerDecoratorParams | string} params - The parameters for the PUT request.
17
- * @returns {Function} The generic handler for the PUT request.
18
- */
19
- export declare function Put(params: ControllerDecoratorParams | string): (route: any, propertyKey: string, _descriptor: TypedPropertyDescriptor<apiMethod>) => void;
20
- /**
21
- * Decorator for handling HTTP DELETE requests.
22
- * @param {ControllerDecoratorParams | string} params - The parameters for the DELETE request.
23
- * @returns {Function} The generic handler for the DELETE request.
24
- */
25
- export declare function Delete(params: ControllerDecoratorParams | string): (route: any, propertyKey: string, _descriptor: TypedPropertyDescriptor<apiMethod>) => void;
26
- /**
27
- * Decorator for handling HTTP PATCH requests.
28
- * @param {ControllerDecoratorParams | string} params - The parameters for the PATCH request.
29
- * @returns {Function} The generic handler for the PATCH request.
30
- */
31
- export declare function Patch(params: ControllerDecoratorParams | string): (route: any, propertyKey: string, _descriptor: TypedPropertyDescriptor<apiMethod>) => void;
32
- /**
33
- * Decorator for handling HTTP OPTIONS requests.
34
- * @param {ControllerDecoratorParams | string} params - The parameters for the OPTIONS request.
35
- * @returns {Function} The generic handler for the OPTIONS request.
36
- */
37
- export declare function Options(params: ControllerDecoratorParams | string): (route: any, propertyKey: string, _descriptor: TypedPropertyDescriptor<apiMethod>) => void;
38
- /**
39
- * Decorator for handling HTTP HEAD requests.
40
- * @param {ControllerDecoratorParams | string} params - The parameters for the HEAD request.
41
- * @returns {Function} The generic handler for the HEAD request.
42
- */
43
- export declare function Head(params: ControllerDecoratorParams | string): (route: any, propertyKey: string, _descriptor: TypedPropertyDescriptor<apiMethod>) => void;
44
- /**
45
- * Decorator for handling HTTP CONNECT requests.
46
- * @param {ControllerDecoratorParams | string} params - The parameters for the CONNECT request.
47
- * @returns {Function} The generic handler for the CONNECT request.
48
- */
49
- export declare function Connect(params: ControllerDecoratorParams | string): (route: any, propertyKey: string, _descriptor: TypedPropertyDescriptor<apiMethod>) => void;
50
- /**
51
- * Decorator for handling HTTP TRACE requests.
52
- * @param {ControllerDecoratorParams | string} params - The parameters for the TRACE request.
53
- * @returns {Function} The generic handler for the TRACE request.
54
- */
55
- export declare function Trace(params: ControllerDecoratorParams | string): (route: any, propertyKey: string, _descriptor: TypedPropertyDescriptor<apiMethod>) => void;
@@ -1,107 +0,0 @@
1
- import { HttpMethod } from '../http';
2
- import { defineMetadata, getMetadata } from 'reflect-metadata/no-conflict';
3
- import { defineMiddleware } from '../helper';
4
- import { ComponentConstants } from '../../../ioc/constants';
5
- function genericHandler({ method, path, description, middlewares, staticServe, validator }) {
6
- return function (route, propertyKey, _descriptor) {
7
- const routes = getMetadata(ComponentConstants.RouteKey, route) || {};
8
- if (!routes[propertyKey]) {
9
- routes[propertyKey] = { path, method, description, middlewares, staticServe, validator };
10
- }
11
- defineMetadata(ComponentConstants.RouteKey, routes, route);
12
- defineMiddleware(route.constructor, middlewares);
13
- };
14
- }
15
- /**
16
- * Decorator for handling HTTP GET requests.
17
- * @param {ControllerDecoratorParams | string} params - The parameters for the GET request.
18
- * @returns {Function} The generic handler for the GET request.
19
- */
20
- export function Get(params) {
21
- const { path, middlewares, description, staticServe, validator } = generateHandlerParams(params);
22
- return genericHandler({ method: HttpMethod.GET, path, middlewares, description, staticServe, validator });
23
- }
24
- /**
25
- * Decorator for handling HTTP POST requests.
26
- * @param {ControllerDecoratorParams | string} params - The parameters for the POST request.
27
- * @returns {Function} The generic handler for the POST request.
28
- */
29
- export function Post(params) {
30
- const { path, middlewares, description, staticServe, validator } = generateHandlerParams(params);
31
- return genericHandler({ method: HttpMethod.POST, path, middlewares, description, staticServe, validator });
32
- }
33
- /**
34
- * Decorator for handling HTTP PUT requests.
35
- * @param {ControllerDecoratorParams | string} params - The parameters for the PUT request.
36
- * @returns {Function} The generic handler for the PUT request.
37
- */
38
- export function Put(params) {
39
- const { path, middlewares, description, staticServe, validator } = generateHandlerParams(params);
40
- return genericHandler({ method: HttpMethod.PUT, path, middlewares, description, staticServe, validator });
41
- }
42
- /**
43
- * Decorator for handling HTTP DELETE requests.
44
- * @param {ControllerDecoratorParams | string} params - The parameters for the DELETE request.
45
- * @returns {Function} The generic handler for the DELETE request.
46
- */
47
- export function Delete(params) {
48
- const { path, middlewares, description, staticServe, validator } = generateHandlerParams(params);
49
- return genericHandler({ method: HttpMethod.DELETE, path, middlewares, description, staticServe, validator });
50
- }
51
- /**
52
- * Decorator for handling HTTP PATCH requests.
53
- * @param {ControllerDecoratorParams | string} params - The parameters for the PATCH request.
54
- * @returns {Function} The generic handler for the PATCH request.
55
- */
56
- export function Patch(params) {
57
- const { path, middlewares, description, staticServe, validator } = generateHandlerParams(params);
58
- return genericHandler({ method: HttpMethod.PATCH, path, middlewares, description, staticServe, validator });
59
- }
60
- /**
61
- * Decorator for handling HTTP OPTIONS requests.
62
- * @param {ControllerDecoratorParams | string} params - The parameters for the OPTIONS request.
63
- * @returns {Function} The generic handler for the OPTIONS request.
64
- */
65
- export function Options(params) {
66
- const { path, middlewares, description, staticServe, validator } = generateHandlerParams(params);
67
- return genericHandler({ method: HttpMethod.OPTIONS, path, middlewares, description, staticServe, validator });
68
- }
69
- /**
70
- * Decorator for handling HTTP HEAD requests.
71
- * @param {ControllerDecoratorParams | string} params - The parameters for the HEAD request.
72
- * @returns {Function} The generic handler for the HEAD request.
73
- */
74
- export function Head(params) {
75
- const { path, middlewares, description, staticServe, validator } = generateHandlerParams(params);
76
- return genericHandler({ method: HttpMethod.HEAD, path, middlewares, description, staticServe, validator });
77
- }
78
- /**
79
- * Decorator for handling HTTP CONNECT requests.
80
- * @param {ControllerDecoratorParams | string} params - The parameters for the CONNECT request.
81
- * @returns {Function} The generic handler for the CONNECT request.
82
- */
83
- export function Connect(params) {
84
- const { path, middlewares, description, staticServe, validator } = generateHandlerParams(params);
85
- return genericHandler({ method: HttpMethod.CONNECT, path, middlewares, description, staticServe, validator });
86
- }
87
- /**
88
- * Decorator for handling HTTP TRACE requests.
89
- * @param {ControllerDecoratorParams | string} params - The parameters for the TRACE request.
90
- * @returns {Function} The generic handler for the TRACE request.
91
- */
92
- export function Trace(params) {
93
- const { path, middlewares, description, staticServe, validator } = generateHandlerParams(params);
94
- return genericHandler({ method: HttpMethod.TRACE, path, middlewares, description, staticServe, validator });
95
- }
96
- const generateHandlerParams = (params) => {
97
- return typeof params === 'string'
98
- ? { path: params.replace(/^\/+/, ''), middlewares: [], description: '', staticServe: false, validator: undefined }
99
- : {
100
- path: params.path.replace(/^\/+/, ''),
101
- middlewares: params.middlewares || [],
102
- description: params.description || '',
103
- staticServe: params.staticServe || false,
104
- validator: params.validator || undefined,
105
- };
106
- };
107
- //# sourceMappingURL=apiHandler.js.map