@hestjs/core 0.1.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 (134) hide show
  1. package/README.md +387 -0
  2. package/dist/application/application-factory.d.ts +15 -0
  3. package/dist/application/application-factory.d.ts.map +1 -0
  4. package/dist/application/application-factory.js +77 -0
  5. package/dist/application/application-factory.js.map +1 -0
  6. package/dist/application/hest-application.d.ts +40 -0
  7. package/dist/application/hest-application.d.ts.map +1 -0
  8. package/dist/application/hest-application.js +50 -0
  9. package/dist/application/hest-application.js.map +1 -0
  10. package/dist/application/index.d.ts +3 -0
  11. package/dist/application/index.d.ts.map +1 -0
  12. package/dist/application/index.js +3 -0
  13. package/dist/application/index.js.map +1 -0
  14. package/dist/container/container.d.ts +48 -0
  15. package/dist/container/container.d.ts.map +1 -0
  16. package/dist/container/container.js +77 -0
  17. package/dist/container/container.js.map +1 -0
  18. package/dist/container/index.d.ts +3 -0
  19. package/dist/container/index.d.ts.map +1 -0
  20. package/dist/container/index.js +3 -0
  21. package/dist/container/index.js.map +1 -0
  22. package/dist/container/injection-token.d.ts +14 -0
  23. package/dist/container/injection-token.d.ts.map +1 -0
  24. package/dist/container/injection-token.js +10 -0
  25. package/dist/container/injection-token.js.map +1 -0
  26. package/dist/decorators/controller.d.ts +14 -0
  27. package/dist/decorators/controller.d.ts.map +1 -0
  28. package/dist/decorators/controller.js +23 -0
  29. package/dist/decorators/controller.js.map +1 -0
  30. package/dist/decorators/index.d.ts +5 -0
  31. package/dist/decorators/index.d.ts.map +1 -0
  32. package/dist/decorators/index.js +5 -0
  33. package/dist/decorators/index.js.map +1 -0
  34. package/dist/decorators/injectable.d.ts +13 -0
  35. package/dist/decorators/injectable.d.ts.map +1 -0
  36. package/dist/decorators/injectable.js +20 -0
  37. package/dist/decorators/injectable.js.map +1 -0
  38. package/dist/decorators/module.d.ts +14 -0
  39. package/dist/decorators/module.d.ts.map +1 -0
  40. package/dist/decorators/module.js +16 -0
  41. package/dist/decorators/module.js.map +1 -0
  42. package/dist/decorators/route.d.ts +56 -0
  43. package/dist/decorators/route.d.ts.map +1 -0
  44. package/dist/decorators/route.js +94 -0
  45. package/dist/decorators/route.js.map +1 -0
  46. package/dist/exceptions/base-exception.d.ts +20 -0
  47. package/dist/exceptions/base-exception.d.ts.map +1 -0
  48. package/dist/exceptions/base-exception.js +38 -0
  49. package/dist/exceptions/base-exception.js.map +1 -0
  50. package/dist/exceptions/exception-filter.d.ts +39 -0
  51. package/dist/exceptions/exception-filter.d.ts.map +1 -0
  52. package/dist/exceptions/exception-filter.js +63 -0
  53. package/dist/exceptions/exception-filter.js.map +1 -0
  54. package/dist/exceptions/http-exception.d.ts +40 -0
  55. package/dist/exceptions/http-exception.d.ts.map +1 -0
  56. package/dist/exceptions/http-exception.js +77 -0
  57. package/dist/exceptions/http-exception.js.map +1 -0
  58. package/dist/exceptions/index.d.ts +4 -0
  59. package/dist/exceptions/index.d.ts.map +1 -0
  60. package/dist/exceptions/index.js +4 -0
  61. package/dist/exceptions/index.js.map +1 -0
  62. package/dist/index.d.ts +15 -0
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +19 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/interceptors/index.d.ts +2 -0
  67. package/dist/interceptors/index.d.ts.map +1 -0
  68. package/dist/interceptors/index.js +2 -0
  69. package/dist/interceptors/index.js.map +1 -0
  70. package/dist/interceptors/interceptor.d.ts +82 -0
  71. package/dist/interceptors/interceptor.d.ts.map +1 -0
  72. package/dist/interceptors/interceptor.js +114 -0
  73. package/dist/interceptors/interceptor.js.map +1 -0
  74. package/dist/interfaces/application.d.ts +24 -0
  75. package/dist/interfaces/application.d.ts.map +1 -0
  76. package/dist/interfaces/application.js +2 -0
  77. package/dist/interfaces/application.js.map +1 -0
  78. package/dist/interfaces/index.d.ts +4 -0
  79. package/dist/interfaces/index.d.ts.map +1 -0
  80. package/dist/interfaces/index.js +4 -0
  81. package/dist/interfaces/index.js.map +1 -0
  82. package/dist/interfaces/metadata.d.ts +49 -0
  83. package/dist/interfaces/metadata.d.ts.map +1 -0
  84. package/dist/interfaces/metadata.js +2 -0
  85. package/dist/interfaces/metadata.js.map +1 -0
  86. package/dist/interfaces/router.d.ts +48 -0
  87. package/dist/interfaces/router.d.ts.map +1 -0
  88. package/dist/interfaces/router.js +2 -0
  89. package/dist/interfaces/router.js.map +1 -0
  90. package/dist/metadata/index.d.ts +3 -0
  91. package/dist/metadata/index.d.ts.map +1 -0
  92. package/dist/metadata/index.js +3 -0
  93. package/dist/metadata/index.js.map +1 -0
  94. package/dist/metadata/metadata-scanner.d.ts +59 -0
  95. package/dist/metadata/metadata-scanner.d.ts.map +1 -0
  96. package/dist/metadata/metadata-scanner.js +75 -0
  97. package/dist/metadata/metadata-scanner.js.map +1 -0
  98. package/dist/metadata/reflector.d.ts +50 -0
  99. package/dist/metadata/reflector.d.ts.map +1 -0
  100. package/dist/metadata/reflector.js +57 -0
  101. package/dist/metadata/reflector.js.map +1 -0
  102. package/dist/middlewares/index.d.ts +2 -0
  103. package/dist/middlewares/index.d.ts.map +1 -0
  104. package/dist/middlewares/index.js +2 -0
  105. package/dist/middlewares/index.js.map +1 -0
  106. package/dist/middlewares/middleware.d.ts +39 -0
  107. package/dist/middlewares/middleware.d.ts.map +1 -0
  108. package/dist/middlewares/middleware.js +71 -0
  109. package/dist/middlewares/middleware.js.map +1 -0
  110. package/dist/router/index.d.ts +3 -0
  111. package/dist/router/index.d.ts.map +1 -0
  112. package/dist/router/index.js +3 -0
  113. package/dist/router/index.js.map +1 -0
  114. package/dist/router/route-metadata.d.ts +41 -0
  115. package/dist/router/route-metadata.d.ts.map +1 -0
  116. package/dist/router/route-metadata.js +43 -0
  117. package/dist/router/route-metadata.js.map +1 -0
  118. package/dist/router/router-explorer.d.ts +52 -0
  119. package/dist/router/router-explorer.d.ts.map +1 -0
  120. package/dist/router/router-explorer.js +259 -0
  121. package/dist/router/router-explorer.js.map +1 -0
  122. package/dist/utils/constants.d.ts +33 -0
  123. package/dist/utils/constants.d.ts.map +1 -0
  124. package/dist/utils/constants.js +40 -0
  125. package/dist/utils/constants.js.map +1 -0
  126. package/dist/utils/helpers.d.ts +27 -0
  127. package/dist/utils/helpers.d.ts.map +1 -0
  128. package/dist/utils/helpers.js +54 -0
  129. package/dist/utils/helpers.js.map +1 -0
  130. package/dist/utils/index.d.ts +3 -0
  131. package/dist/utils/index.d.ts.map +1 -0
  132. package/dist/utils/index.js +3 -0
  133. package/dist/utils/index.js.map +1 -0
  134. package/package.json +64 -0
@@ -0,0 +1,40 @@
1
+ import { BaseException } from './base-exception';
2
+ import type { ContentfulStatusCode } from 'hono/utils/http-status';
3
+ /**
4
+ * HTTP 异常类
5
+ */
6
+ export declare class HttpException extends BaseException {
7
+ constructor(response: string | Record<string, any>, status: ContentfulStatusCode, options?: {
8
+ cause?: Error;
9
+ description?: string;
10
+ });
11
+ /**
12
+ * 获取状态码对应的默认错误消息
13
+ */
14
+ private static getDefaultMessage;
15
+ }
16
+ /**
17
+ * 常用 HTTP 异常类
18
+ */
19
+ export declare class BadRequestException extends HttpException {
20
+ constructor(message?: string | Record<string, any>, description?: string);
21
+ }
22
+ export declare class UnauthorizedException extends HttpException {
23
+ constructor(message?: string | Record<string, any>, description?: string);
24
+ }
25
+ export declare class ForbiddenException extends HttpException {
26
+ constructor(message?: string | Record<string, any>, description?: string);
27
+ }
28
+ export declare class NotFoundException extends HttpException {
29
+ constructor(message?: string | Record<string, any>, description?: string);
30
+ }
31
+ export declare class ConflictException extends HttpException {
32
+ constructor(message?: string | Record<string, any>, description?: string);
33
+ }
34
+ export declare class UnprocessableEntityException extends HttpException {
35
+ constructor(message?: string | Record<string, any>, description?: string);
36
+ }
37
+ export declare class InternalServerErrorException extends HttpException {
38
+ constructor(message?: string | Record<string, any>, description?: string);
39
+ }
40
+ //# sourceMappingURL=http-exception.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-exception.d.ts","sourceRoot":"","sources":["../../src/exceptions/http-exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE;;GAEG;AACH,qBAAa,aAAc,SAAQ,aAAa;gBAE5C,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACtC,MAAM,EAAE,oBAAoB,EAC5B,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE;IAYnD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAqBjC;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;gBACxC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM;CAGzE;AAED,qBAAa,qBAAsB,SAAQ,aAAa;gBAC1C,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM;CAGzE;AAED,qBAAa,kBAAmB,SAAQ,aAAa;gBACvC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM;CAGzE;AAED,qBAAa,iBAAkB,SAAQ,aAAa;gBACtC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM;CAGzE;AAED,qBAAa,iBAAkB,SAAQ,aAAa;gBACtC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM;CAGzE;AAED,qBAAa,4BAA6B,SAAQ,aAAa;gBACjD,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM;CAGzE;AAED,qBAAa,4BAA6B,SAAQ,aAAa;gBACjD,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM;CAGzE"}
@@ -0,0 +1,77 @@
1
+ import { BaseException } from './base-exception';
2
+ /**
3
+ * HTTP 异常类
4
+ */
5
+ export class HttpException extends BaseException {
6
+ constructor(response, status, options) {
7
+ const message = typeof response === 'string' ? response : response.message || 'Http Exception';
8
+ const error = typeof response === 'string' ? HttpException.getDefaultMessage(status) : response.error;
9
+ super(message, status, error);
10
+ if (options?.cause) {
11
+ this.cause = options.cause;
12
+ }
13
+ }
14
+ /**
15
+ * 获取状态码对应的默认错误消息
16
+ */
17
+ static getDefaultMessage(status) {
18
+ switch (status) {
19
+ case 400: return 'Bad Request';
20
+ case 401: return 'Unauthorized';
21
+ case 403: return 'Forbidden';
22
+ case 404: return 'Not Found';
23
+ case 405: return 'Method Not Allowed';
24
+ case 406: return 'Not Acceptable';
25
+ case 408: return 'Request Timeout';
26
+ case 409: return 'Conflict';
27
+ case 410: return 'Gone';
28
+ case 422: return 'Unprocessable Entity';
29
+ case 429: return 'Too Many Requests';
30
+ case 500: return 'Internal Server Error';
31
+ case 501: return 'Not Implemented';
32
+ case 502: return 'Bad Gateway';
33
+ case 503: return 'Service Unavailable';
34
+ case 504: return 'Gateway Timeout';
35
+ default: return 'Error';
36
+ }
37
+ }
38
+ }
39
+ /**
40
+ * 常用 HTTP 异常类
41
+ */
42
+ export class BadRequestException extends HttpException {
43
+ constructor(message, description) {
44
+ super(message || 'Bad Request', 400, { description });
45
+ }
46
+ }
47
+ export class UnauthorizedException extends HttpException {
48
+ constructor(message, description) {
49
+ super(message || 'Unauthorized', 401, { description });
50
+ }
51
+ }
52
+ export class ForbiddenException extends HttpException {
53
+ constructor(message, description) {
54
+ super(message || 'Forbidden', 403, { description });
55
+ }
56
+ }
57
+ export class NotFoundException extends HttpException {
58
+ constructor(message, description) {
59
+ super(message || 'Not Found', 404, { description });
60
+ }
61
+ }
62
+ export class ConflictException extends HttpException {
63
+ constructor(message, description) {
64
+ super(message || 'Conflict', 409, { description });
65
+ }
66
+ }
67
+ export class UnprocessableEntityException extends HttpException {
68
+ constructor(message, description) {
69
+ super(message || 'Unprocessable Entity', 422, { description });
70
+ }
71
+ }
72
+ export class InternalServerErrorException extends HttpException {
73
+ constructor(message, description) {
74
+ super(message || 'Internal Server Error', 500, { description });
75
+ }
76
+ }
77
+ //# sourceMappingURL=http-exception.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-exception.js","sourceRoot":"","sources":["../../src/exceptions/http-exception.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from './base-exception';
2
+ export * from './http-exception';
3
+ export * from './exception-filter';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/exceptions/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './base-exception';
2
+ export * from './http-exception';
3
+ export * from './exception-filter';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/exceptions/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import "reflect-metadata";
2
+ export * from "./application";
3
+ export * from "./container";
4
+ export * from "./decorators";
5
+ export * from "./exceptions";
6
+ export * from "./interceptors";
7
+ export * from "./interfaces";
8
+ export * from "./metadata";
9
+ export * from "./middlewares";
10
+ export * from "./utils";
11
+ export { RouteMetadata as RouteMetadataCollector } from "./router/route-metadata";
12
+ export { RouterExplorer } from "./router/router-explorer";
13
+ export { HestFactory } from "./application/application-factory";
14
+ export { configureGlobalLogger, createLogger, getGlobalLogger, logger, LogLevel, setGlobalLogger, type Logger, type LoggerConfig, } from "@hestjs/logger";
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAG1B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,aAAa,IAAI,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAGhE,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,eAAe,EACf,MAAM,EACN,QAAQ,EACR,eAAe,EACf,KAAK,MAAM,EACX,KAAK,YAAY,GAClB,MAAM,gBAAgB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,19 @@
1
+ import "reflect-metadata";
2
+ // 导出所有公共 API
3
+ export * from "./application";
4
+ export * from "./container";
5
+ export * from "./decorators";
6
+ export * from "./exceptions";
7
+ export * from "./interceptors";
8
+ export * from "./interfaces";
9
+ export * from "./metadata";
10
+ export * from "./middlewares";
11
+ export * from "./utils";
12
+ // 显式导出路由相关,避免命名冲突
13
+ export { RouteMetadata as RouteMetadataCollector } from "./router/route-metadata";
14
+ export { RouterExplorer } from "./router/router-explorer";
15
+ // 导出主要的工厂类
16
+ export { HestFactory } from "./application/application-factory";
17
+ // 导出 Logger
18
+ export { configureGlobalLogger, createLogger, getGlobalLogger, logger, LogLevel, setGlobalLogger, } from "@hestjs/logger";
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,aAAa;AACb,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AAExB,kBAAkB;AAClB,OAAO,EAAE,aAAa,IAAI,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,WAAW;AACX,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAEhE,YAAY;AACZ,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,eAAe,EACf,MAAM,EACN,QAAQ,EACR,eAAe,GAGhB,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './interceptor';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interceptors/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './interceptor';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interceptors/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
@@ -0,0 +1,82 @@
1
+ import type { Context } from "hono";
2
+ /**
3
+ * 可观察对象接口(简化版)
4
+ */
5
+ export interface Observable<T> {
6
+ subscribe(observer: (value: T) => void): void;
7
+ }
8
+ /**
9
+ * 执行上下文接口
10
+ */
11
+ export interface ExecutionContext {
12
+ getClass(): any;
13
+ getHandler(): any;
14
+ getArgs(): any[];
15
+ getArgByIndex<T = any>(index: number): T;
16
+ switchToHttp(): HttpArgumentsHost;
17
+ }
18
+ /**
19
+ * HTTP 参数宿主接口
20
+ */
21
+ export interface HttpArgumentsHost {
22
+ getRequest(): any;
23
+ getResponse(): any;
24
+ getNext?(): any;
25
+ }
26
+ /**
27
+ * 调用处理器接口
28
+ */
29
+ export interface CallHandler<T = any> {
30
+ handle(): Observable<T> | Promise<T>;
31
+ }
32
+ /**
33
+ * 拦截器接口
34
+ */
35
+ export interface Interceptor<T = any, R = any> {
36
+ intercept(context: ExecutionContext, next: CallHandler<T>): Observable<R> | Promise<Observable<R>> | Promise<R>;
37
+ }
38
+ /**
39
+ * 默认执行上下文实现
40
+ */
41
+ export declare class DefaultExecutionContext implements ExecutionContext {
42
+ private readonly classRef;
43
+ private readonly handler;
44
+ private readonly args;
45
+ private readonly httpContext;
46
+ constructor(classRef: any, handler: any, args: any[], httpContext: Context);
47
+ getClass(): any;
48
+ getHandler(): any;
49
+ getArgs(): any[];
50
+ getArgByIndex<T = any>(index: number): T;
51
+ switchToHttp(): HttpArgumentsHost;
52
+ }
53
+ /**
54
+ * 默认调用处理器实现
55
+ */
56
+ export declare class DefaultCallHandler<T = any> implements CallHandler<T> {
57
+ private readonly handler;
58
+ constructor(handler: () => Promise<T> | T);
59
+ handle(): Promise<T>;
60
+ }
61
+ /**
62
+ * 简单的 Observable 实现
63
+ */
64
+ export declare class SimpleObservable<T> implements Observable<T> {
65
+ private readonly promise;
66
+ constructor(promise: Promise<T>);
67
+ subscribe(observer: (value: T) => void): void;
68
+ static from<T>(promise: Promise<T>): SimpleObservable<T>;
69
+ }
70
+ /**
71
+ * 响应拦截器示例
72
+ */
73
+ export declare class ResponseInterceptor implements Interceptor {
74
+ intercept(context: ExecutionContext, next: CallHandler): Promise<any>;
75
+ }
76
+ /**
77
+ * 日志拦截器示例
78
+ */
79
+ export declare class LoggingInterceptor implements Interceptor {
80
+ intercept(context: ExecutionContext, next: CallHandler): Promise<any>;
81
+ }
82
+ //# sourceMappingURL=interceptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interceptor.d.ts","sourceRoot":"","sources":["../../src/interceptors/interceptor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { createLogger } from "@hestjs/logger";
8
+ import { Injectable } from "../decorators/injectable";
9
+ const log = createLogger("HestInterceptor");
10
+ /**
11
+ * 默认执行上下文实现
12
+ */
13
+ export class DefaultExecutionContext {
14
+ classRef;
15
+ handler;
16
+ args;
17
+ httpContext;
18
+ constructor(classRef, handler, args, httpContext) {
19
+ this.classRef = classRef;
20
+ this.handler = handler;
21
+ this.args = args;
22
+ this.httpContext = httpContext;
23
+ }
24
+ getClass() {
25
+ return this.classRef;
26
+ }
27
+ getHandler() {
28
+ return this.handler;
29
+ }
30
+ getArgs() {
31
+ return this.args;
32
+ }
33
+ getArgByIndex(index) {
34
+ return this.args[index];
35
+ }
36
+ switchToHttp() {
37
+ return {
38
+ getRequest: () => this.httpContext.req,
39
+ getResponse: () => this.httpContext,
40
+ };
41
+ }
42
+ }
43
+ /**
44
+ * 默认调用处理器实现
45
+ */
46
+ export class DefaultCallHandler {
47
+ handler;
48
+ constructor(handler) {
49
+ this.handler = handler;
50
+ }
51
+ async handle() {
52
+ return await this.handler();
53
+ }
54
+ }
55
+ /**
56
+ * 简单的 Observable 实现
57
+ */
58
+ export class SimpleObservable {
59
+ promise;
60
+ constructor(promise) {
61
+ this.promise = promise;
62
+ }
63
+ subscribe(observer) {
64
+ this.promise.then(observer).catch(console.error);
65
+ }
66
+ static from(promise) {
67
+ return new SimpleObservable(promise);
68
+ }
69
+ }
70
+ /**
71
+ * 响应拦截器示例
72
+ */
73
+ let ResponseInterceptor = class ResponseInterceptor {
74
+ async intercept(context, next) {
75
+ const start = Date.now();
76
+ const result = await next.handle();
77
+ const duration = Date.now() - start;
78
+ // 包装响应
79
+ return {
80
+ success: true,
81
+ data: result,
82
+ timestamp: new Date().toISOString(),
83
+ duration: `${duration}ms`,
84
+ };
85
+ }
86
+ };
87
+ ResponseInterceptor = __decorate([
88
+ Injectable()
89
+ ], ResponseInterceptor);
90
+ export { ResponseInterceptor };
91
+ /**
92
+ * 日志拦截器示例
93
+ */
94
+ let LoggingInterceptor = class LoggingInterceptor {
95
+ async intercept(context, next) {
96
+ const request = context.switchToHttp().getRequest();
97
+ const startTime = Date.now();
98
+ try {
99
+ const result = await next.handle();
100
+ const duration = Date.now() - startTime;
101
+ return result;
102
+ }
103
+ catch (error) {
104
+ const duration = Date.now() - startTime;
105
+ log.error(`📝 [${new Date().toISOString()}] ${request.method} ${request.url} - ${duration}ms - ERROR:`, error);
106
+ throw error;
107
+ }
108
+ }
109
+ };
110
+ LoggingInterceptor = __decorate([
111
+ Injectable()
112
+ ], LoggingInterceptor);
113
+ export { LoggingInterceptor };
114
+ //# sourceMappingURL=interceptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interceptor.js","sourceRoot":"","sources":["../../src/interceptors/interceptor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { Context, Env } from "hono";
2
+ /**
3
+ * 应用上下文 - 兼容 Hono Context,提供类型安全
4
+ */
5
+ export type HestContext<E extends Env = Env> = Context<E>;
6
+ /**
7
+ * 应用实例接口
8
+ */
9
+ export interface HestApplication {
10
+ /**
11
+ * 获取底层 Hono 实例
12
+ */
13
+ hono(): any;
14
+ }
15
+ /**
16
+ * HTTP 适配器接口
17
+ */
18
+ export interface HttpAdapter {
19
+ listen(port: number, callback?: () => void): void;
20
+ close(): void;
21
+ getType(): string;
22
+ getInstance(): any;
23
+ }
24
+ //# sourceMappingURL=application.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/interfaces/application.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEzC;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,IAAI,IAAI,GAAG,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAClD,KAAK,IAAI,IAAI,CAAC;IACd,OAAO,IAAI,MAAM,CAAC;IAClB,WAAW,IAAI,GAAG,CAAC;CACpB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=application.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application.js","sourceRoot":"","sources":["../../src/interfaces/application.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export * from './application';
2
+ export * from './metadata';
3
+ export * from './router';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './application';
2
+ export * from './metadata';
3
+ export * from './router';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { HttpMethod } from "../utils/constants";
2
+ /**
3
+ * 控制器元数据
4
+ */
5
+ export interface ControllerMetadata {
6
+ path: string;
7
+ version?: string;
8
+ }
9
+ /**
10
+ * 路由元数据
11
+ */
12
+ export interface RouteMetadata {
13
+ method: HttpMethod;
14
+ path: string;
15
+ methodName: string;
16
+ parameterMetadata?: ParameterMetadata[];
17
+ }
18
+ /**
19
+ * 参数元数据
20
+ */
21
+ export interface ParameterMetadata {
22
+ index: number;
23
+ type: string;
24
+ key?: string;
25
+ pipes?: any[];
26
+ }
27
+ /**
28
+ * 模块元数据
29
+ */
30
+ export interface ModuleMetadata {
31
+ controllers?: any[];
32
+ providers?: any[];
33
+ imports?: any[];
34
+ exports?: any[];
35
+ }
36
+ /**
37
+ * 中间件元数据
38
+ */
39
+ export interface MiddlewareMetadata {
40
+ path?: string;
41
+ method?: HttpMethod;
42
+ }
43
+ /**
44
+ * 可注入元数据
45
+ */
46
+ export interface InjectableMetadata {
47
+ scope?: "singleton" | "transient" | "request";
48
+ }
49
+ //# sourceMappingURL=metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/interfaces/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,GAAG,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;CAC/C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/interfaces/metadata.ts"],"names":[],"mappings":""}
@@ -0,0 +1,48 @@
1
+ import type { HestContext } from './application';
2
+ import type { RouteMetadata, ParameterMetadata } from './metadata';
3
+ /**
4
+ * 控制器构造器类型
5
+ */
6
+ export interface ControllerConstructor {
7
+ new (...args: any[]): any;
8
+ name: string;
9
+ }
10
+ /**
11
+ * 控制器实例类型
12
+ */
13
+ export interface ControllerInstance {
14
+ [methodName: string]: (...args: any[]) => any;
15
+ }
16
+ /**
17
+ * 路由处理器类型
18
+ */
19
+ export type RouteHandler = (c: HestContext) => Promise<any>;
20
+ /**
21
+ * HTTP 方法类型
22
+ */
23
+ export type HttpMethodLowercase = 'get' | 'post' | 'put' | 'delete' | 'patch' | 'options' | 'head';
24
+ /**
25
+ * 增强的路由元数据,包含控制器信息
26
+ */
27
+ export interface EnhancedRouteMetadata extends RouteMetadata {
28
+ controllerPath: string;
29
+ fullPath: string;
30
+ controllerInstance: ControllerInstance;
31
+ parameterMetadata: ParameterMetadata[];
32
+ }
33
+ /**
34
+ * 参数解析结果
35
+ */
36
+ export interface ParameterResolutionResult {
37
+ args: any[];
38
+ errors?: ParameterError[];
39
+ }
40
+ /**
41
+ * 参数错误
42
+ */
43
+ export interface ParameterError {
44
+ parameterIndex: number;
45
+ parameterType: string;
46
+ error: string;
47
+ }
48
+ //# sourceMappingURL=router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/interfaces/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAsB,MAAM,YAAY,CAAC;AAEvF;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAE5D;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEnG;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IAC1D,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/interfaces/router.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export * from './metadata-scanner';
2
+ export * from './reflector';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/metadata/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './metadata-scanner';
2
+ export * from './reflector';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/metadata/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC"}