@dangao/bun-server 0.2.0 → 0.4.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.
- package/dist/auth/controller.d.ts +1 -1
- package/dist/auth/controller.d.ts.map +1 -1
- package/dist/controller/controller.d.ts.map +1 -1
- package/dist/core/application.d.ts +10 -2
- package/dist/core/application.d.ts.map +1 -1
- package/dist/core/context.d.ts +6 -0
- package/dist/core/context.d.ts.map +1 -1
- package/dist/database/connection-manager.d.ts +72 -0
- package/dist/database/connection-manager.d.ts.map +1 -0
- package/dist/database/connection-pool.d.ts +79 -0
- package/dist/database/connection-pool.d.ts.map +1 -0
- package/dist/database/database-extension.d.ts +20 -0
- package/dist/database/database-extension.d.ts.map +1 -0
- package/dist/database/database-module.d.ts +18 -0
- package/dist/database/database-module.d.ts.map +1 -0
- package/dist/database/health-indicator.d.ts +15 -0
- package/dist/database/health-indicator.d.ts.map +1 -0
- package/dist/database/index.d.ts +9 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/orm/decorators.d.ts +70 -0
- package/dist/database/orm/decorators.d.ts.map +1 -0
- package/dist/database/orm/drizzle-repository.d.ts +34 -0
- package/dist/database/orm/drizzle-repository.d.ts.map +1 -0
- package/dist/database/orm/index.d.ts +11 -0
- package/dist/database/orm/index.d.ts.map +1 -0
- package/dist/database/orm/repository-decorator.d.ts +21 -0
- package/dist/database/orm/repository-decorator.d.ts.map +1 -0
- package/dist/database/orm/repository.d.ts +36 -0
- package/dist/database/orm/repository.d.ts.map +1 -0
- package/dist/database/orm/service.d.ts +26 -0
- package/dist/database/orm/service.d.ts.map +1 -0
- package/dist/database/orm/transaction-decorator.d.ts +17 -0
- package/dist/database/orm/transaction-decorator.d.ts.map +1 -0
- package/dist/database/orm/transaction-interceptor.d.ts +28 -0
- package/dist/database/orm/transaction-interceptor.d.ts.map +1 -0
- package/dist/database/orm/transaction-manager.d.ts +77 -0
- package/dist/database/orm/transaction-manager.d.ts.map +1 -0
- package/dist/database/orm/transaction-types.d.ts +136 -0
- package/dist/database/orm/transaction-types.d.ts.map +1 -0
- package/dist/database/orm/types.d.ts +95 -0
- package/dist/database/orm/types.d.ts.map +1 -0
- package/dist/database/service.d.ts +71 -0
- package/dist/database/service.d.ts.map +1 -0
- package/dist/database/types.d.ts +168 -0
- package/dist/database/types.d.ts.map +1 -0
- package/dist/error/error-codes.d.ts +49 -3
- package/dist/error/error-codes.d.ts.map +1 -1
- package/dist/error/handler.d.ts.map +1 -1
- package/dist/error/http-exception.d.ts +26 -7
- package/dist/error/http-exception.d.ts.map +1 -1
- package/dist/error/i18n.d.ts +46 -2
- package/dist/error/i18n.d.ts.map +1 -1
- package/dist/error/index.d.ts +1 -1
- package/dist/error/index.d.ts.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1705 -36
- package/dist/metrics/collector.d.ts +47 -0
- package/dist/metrics/collector.d.ts.map +1 -0
- package/dist/metrics/controller.d.ts +17 -0
- package/dist/metrics/controller.d.ts.map +1 -0
- package/dist/metrics/index.d.ts +7 -0
- package/dist/metrics/index.d.ts.map +1 -0
- package/dist/metrics/metrics-module.d.ts +9 -0
- package/dist/metrics/metrics-module.d.ts.map +1 -0
- package/dist/metrics/middleware.d.ts +7 -0
- package/dist/metrics/middleware.d.ts.map +1 -0
- package/dist/metrics/prometheus.d.ts +23 -0
- package/dist/metrics/prometheus.d.ts.map +1 -0
- package/dist/metrics/types.d.ts +88 -0
- package/dist/metrics/types.d.ts.map +1 -0
- package/dist/middleware/builtin/index.d.ts +1 -0
- package/dist/middleware/builtin/index.d.ts.map +1 -1
- package/dist/middleware/builtin/rate-limit.d.ts +104 -0
- package/dist/middleware/builtin/rate-limit.d.ts.map +1 -0
- package/dist/middleware/decorators.d.ts +7 -0
- package/dist/middleware/decorators.d.ts.map +1 -1
- package/dist/middleware/index.d.ts +1 -1
- package/dist/middleware/index.d.ts.map +1 -1
- package/package.json +3 -3
- package/readme.md +1 -1
|
@@ -15,7 +15,7 @@ export declare class OAuth2Controller {
|
|
|
15
15
|
* 授权端点
|
|
16
16
|
* GET /oauth2/authorize?client_id=...&redirect_uri=...&response_type=code&state=...
|
|
17
17
|
*/
|
|
18
|
-
authorize(clientId: string, redirectUri: string, state?: string, scope?: string): Response;
|
|
18
|
+
authorize(clientId: string | null, redirectUri: string | null, responseType: string | null, state?: string | null, scope?: string | null): Response;
|
|
19
19
|
/**
|
|
20
20
|
* 令牌端点
|
|
21
21
|
* POST /oauth2/token
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/auth/controller.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,KAAK,EAGV,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,eAAO,MAAM,oBAAoB,eAA2B,CAAC;AAC7D,eAAO,MAAM,cAAc,eAAqB,CAAC;AAEjD;;GAEG;AACH,qBAEa,gBAAgB;IAEK,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAG7E;;;OAGG;IAEI,SAAS,
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/auth/controller.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,KAAK,EAGV,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,eAAO,MAAM,oBAAoB,eAA2B,CAAC;AAC7D,eAAO,MAAM,cAAc,eAAqB,CAAC;AAEjD;;GAEG;AACH,qBAEa,gBAAgB;IAEK,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAG7E;;;OAGG;IAEI,SAAS,CACM,QAAQ,EAAE,MAAM,GAAG,IAAI,EACpB,WAAW,EAAE,MAAM,GAAG,IAAI,EACzB,YAAY,EAAE,MAAM,GAAG,IAAI,EACnC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAiDvC;;;OAGG;IAEU,KAAK,CAAS,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,mBAAmB,GAAG,GAAG,CAAC;IAsC5F;;;;OAIG;IAGI,QAAQ;;;;;CAShB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/controller/controller.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAS5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C;;GAEG;AACH,eAAO,MAAM,uBAAuB,eAAuB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;CAC7C;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,GAAE,MAAW,IACzB,QAAQ,WAAW,CAAC,OAAO,CAAC,UAI9C;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2D;IACvF,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA8C;IAEnF,OAAO;IAIP;;OAEG;WACW,WAAW,IAAI,kBAAkB;IAO/C;;;OAGG;IACI,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/controller/controller.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAS5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C;;GAEG;AACH,eAAO,MAAM,uBAAuB,eAAuB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;CAC7C;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,GAAE,MAAW,IACzB,QAAQ,WAAW,CAAC,OAAO,CAAC,UAI9C;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2D;IACvF,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA8C;IAEnF,OAAO;IAIP;;OAEG;WACW,WAAW,IAAI,kBAAkB;IAO/C;;;OAGG;IACI,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI;IAoInF;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAepB;;;OAGG;IACI,YAAY,IAAI,SAAS;IAIhC;;;OAGG;IACI,wBAAwB,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE;IAIzD;;OAEG;IACI,KAAK,IAAI,IAAI;CAKrB"}
|
|
@@ -35,11 +35,19 @@ export declare class Application {
|
|
|
35
35
|
/**
|
|
36
36
|
* 启动应用
|
|
37
37
|
*/
|
|
38
|
-
listen(port?: number, hostname?: string): void
|
|
38
|
+
listen(port?: number, hostname?: string): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* 初始化所有扩展
|
|
41
|
+
*/
|
|
42
|
+
private initializeExtensions;
|
|
39
43
|
/**
|
|
40
44
|
* 停止应用
|
|
41
45
|
*/
|
|
42
|
-
stop(): void
|
|
46
|
+
stop(): Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* 关闭所有扩展
|
|
49
|
+
*/
|
|
50
|
+
private closeExtensions;
|
|
43
51
|
/**
|
|
44
52
|
* 处理请求
|
|
45
53
|
* @param context - 请求上下文
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/core/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAsB,MAAM,UAAU,CAAC;AAKzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,CAAY;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA2B;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;gBAEtC,OAAO,GAAE,kBAAuB;IAcnD;;;OAGG;IACI,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAIxC;;OAEG;
|
|
1
|
+
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/core/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAsB,MAAM,UAAU,CAAC;AAKzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,CAAY;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA2B;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;gBAEtC,OAAO,GAAE,kBAAuB;IAcnD;;;OAGG;IACI,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAIxC;;OAEG;IACU,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBpE;;OAEG;YACW,oBAAoB;IAqBlC;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAMlC;;OAEG;YACW,eAAe;IAkB7B;;;;OAIG;YACW,aAAa;IA2B3B;;;OAGG;IACI,kBAAkB,CAAC,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IAKtE;;;OAGG;IACI,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAgBrD;;;OAGG;IACI,wBAAwB,CAAC,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IAIzE;;;OAGG;IACI,iBAAiB,CAAC,SAAS,EAAE,oBAAoB,GAAG,IAAI;IAK/D;;;OAGG;IACI,SAAS,IAAI,SAAS,GAAG,SAAS;IAIzC;;;OAGG;IACI,YAAY;CAGpB"}
|
package/dist/core/context.d.ts
CHANGED
|
@@ -95,6 +95,12 @@ export declare class Context {
|
|
|
95
95
|
* @returns 头值
|
|
96
96
|
*/
|
|
97
97
|
getHeader(key: string): string | null;
|
|
98
|
+
/**
|
|
99
|
+
* 获取客户端 IP 地址
|
|
100
|
+
* 优先从 X-Forwarded-For 头获取(代理场景),否则从连接信息获取
|
|
101
|
+
* @returns 客户端 IP 地址
|
|
102
|
+
*/
|
|
103
|
+
getClientIp(): string;
|
|
98
104
|
/**
|
|
99
105
|
* 设置响应头
|
|
100
106
|
* @param key - 头名称
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/core/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGjD;;;GAGG;AACH,qBAAa,OAAO;IAClB;;OAEG;IACH,SAAgB,OAAO,EAAE,OAAO,CAAC;IAEjC;;OAEG;IACI,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAE3B;;OAEG;IACH,SAAgB,GAAG,EAAE,GAAG,CAAC;IAEzB;;OAEG;IACH,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,SAAgB,KAAK,EAAE,eAAe,CAAC;IAEvC;;OAEG;IACI,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAE3C;;OAEG;IACH,SAAgB,OAAO,EAAE,OAAO,CAAC;IAEjC;;OAEG;IACI,eAAe,EAAE,OAAO,CAAC;IAEhC;;OAEG;IACI,UAAU,EAAE,MAAM,CAAO;IAEhC;;OAEG;IACI,KAAK,EAAE,gBAAgB,EAAE,CAAM;IAEtC;;OAEG;IACH,OAAO,CAAC,KAAK,CAAC,CAAU;IAExB;;OAEG;IACH,OAAO,CAAC,WAAW,CAAkB;gBAElB,OAAO,EAAE,OAAO;IAUnC;;;OAGG;IACU,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAQxC;;;OAGG;IACH,IAAW,IAAI,IAAI,OAAO,CAEzB;IAED;;;OAGG;IACH,IAAW,IAAI,CAAC,IAAI,EAAE,OAAO,EAG5B;IAED;;;;OAIG;IACI,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAI3C;;;OAGG;IACI,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQ5C;;;;OAIG;IACI,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIhD;;;;OAIG;IACI,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAI5C;;;;OAIG;IACI,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIlD;;;OAGG;IACI,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIpC;;;;;OAKG;IACI,cAAc,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,QAAQ;CA2BrE"}
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/core/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGjD;;;GAGG;AACH,qBAAa,OAAO;IAClB;;OAEG;IACH,SAAgB,OAAO,EAAE,OAAO,CAAC;IAEjC;;OAEG;IACI,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAE3B;;OAEG;IACH,SAAgB,GAAG,EAAE,GAAG,CAAC;IAEzB;;OAEG;IACH,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,SAAgB,KAAK,EAAE,eAAe,CAAC;IAEvC;;OAEG;IACI,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAE3C;;OAEG;IACH,SAAgB,OAAO,EAAE,OAAO,CAAC;IAEjC;;OAEG;IACI,eAAe,EAAE,OAAO,CAAC;IAEhC;;OAEG;IACI,UAAU,EAAE,MAAM,CAAO;IAEhC;;OAEG;IACI,KAAK,EAAE,gBAAgB,EAAE,CAAM;IAEtC;;OAEG;IACH,OAAO,CAAC,KAAK,CAAC,CAAU;IAExB;;OAEG;IACH,OAAO,CAAC,WAAW,CAAkB;gBAElB,OAAO,EAAE,OAAO;IAUnC;;;OAGG;IACU,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAQxC;;;OAGG;IACH,IAAW,IAAI,IAAI,OAAO,CAEzB;IAED;;;OAGG;IACH,IAAW,IAAI,CAAC,IAAI,EAAE,OAAO,EAG5B;IAED;;;;OAIG;IACI,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAI3C;;;OAGG;IACI,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQ5C;;;;OAIG;IACI,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIhD;;;;OAIG;IACI,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAI5C;;;;OAIG;IACI,WAAW,IAAI,MAAM;IAmB5B;;;;OAIG;IACI,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIlD;;;OAGG;IACI,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIpC;;;;;OAKG;IACI,cAAc,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,QAAQ;CA2BrE"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { ConnectionInfo, ConnectionPoolOptions, DatabaseConfig, DatabaseType } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* 数据库连接管理器
|
|
4
|
+
* 负责管理数据库连接池和连接健康检查
|
|
5
|
+
*/
|
|
6
|
+
export declare class DatabaseConnectionManager {
|
|
7
|
+
private config;
|
|
8
|
+
private poolOptions;
|
|
9
|
+
private pool;
|
|
10
|
+
private currentConnection;
|
|
11
|
+
private status;
|
|
12
|
+
private error;
|
|
13
|
+
constructor(config: DatabaseConfig, poolOptions?: ConnectionPoolOptions);
|
|
14
|
+
/**
|
|
15
|
+
* 连接数据库(从连接池获取连接)
|
|
16
|
+
*/
|
|
17
|
+
connect(): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* 断开数据库连接(释放连接回池中)
|
|
20
|
+
*/
|
|
21
|
+
disconnect(): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* 关闭连接池(关闭所有连接)
|
|
24
|
+
*/
|
|
25
|
+
closePool(): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* 检查数据库连接健康状态
|
|
28
|
+
*/
|
|
29
|
+
healthCheck(): Promise<boolean>;
|
|
30
|
+
/**
|
|
31
|
+
* 获取连接池统计信息
|
|
32
|
+
*/
|
|
33
|
+
getPoolStats(): {
|
|
34
|
+
total: number;
|
|
35
|
+
inUse: number;
|
|
36
|
+
idle: number;
|
|
37
|
+
maxConnections: number;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* 获取连接信息
|
|
41
|
+
*/
|
|
42
|
+
getConnectionInfo(): ConnectionInfo;
|
|
43
|
+
/**
|
|
44
|
+
* 获取原始连接对象
|
|
45
|
+
*/
|
|
46
|
+
getConnection(): unknown;
|
|
47
|
+
/**
|
|
48
|
+
* 从连接池获取新连接(用于需要独立连接的场景)
|
|
49
|
+
*/
|
|
50
|
+
acquireConnection(): Promise<unknown>;
|
|
51
|
+
/**
|
|
52
|
+
* 释放连接回池中
|
|
53
|
+
*/
|
|
54
|
+
releaseConnection(connection: unknown): void;
|
|
55
|
+
/**
|
|
56
|
+
* 获取数据库类型
|
|
57
|
+
*/
|
|
58
|
+
getDatabaseType(): DatabaseType;
|
|
59
|
+
/**
|
|
60
|
+
* SQLite 健康检查
|
|
61
|
+
*/
|
|
62
|
+
private healthCheckSqlite;
|
|
63
|
+
/**
|
|
64
|
+
* PostgreSQL 健康检查(使用 Bun.SQL)
|
|
65
|
+
*/
|
|
66
|
+
private healthCheckPostgres;
|
|
67
|
+
/**
|
|
68
|
+
* MySQL 健康检查(使用 Bun.SQL)
|
|
69
|
+
*/
|
|
70
|
+
private healthCheckMysql;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=connection-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection-manager.d.ts","sourceRoot":"","sources":["../../src/database/connection-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EAErB,cAAc,EACd,YAAY,EACb,MAAM,SAAS,CAAC;AAIjB;;;GAGG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,iBAAiB,CAAwB;IACjD,OAAO,CAAC,MAAM,CAAoC;IAClD,OAAO,CAAC,KAAK,CAAqB;gBAGhC,MAAM,EAAE,cAAc,EACtB,WAAW,GAAE,qBAA0B;IAYzC;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBrC;;OAEG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBxC;;OAEG;IACU,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAOvC;;OAEG;IACU,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAmB5C;;OAEG;IACI,YAAY;;;;;;IAInB;;OAEG;IACI,iBAAiB,IAAI,cAAc;IAQ1C;;OAEG;IACI,aAAa,IAAI,OAAO;IAI/B;;OAEG;IACU,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAIlD;;OAEG;IACI,iBAAiB,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IAInD;;OAEG;IACI,eAAe,IAAI,YAAY;IAItC;;OAEG;YACW,iBAAiB;IAuB/B;;OAEG;YACW,mBAAmB;IAyBjC;;OAEG;YACW,gBAAgB;CAwB/B"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { ConnectionPoolOptions, DatabaseConfig } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* 数据库连接池
|
|
4
|
+
* 管理数据库连接的创建、复用和销毁
|
|
5
|
+
*/
|
|
6
|
+
export declare class ConnectionPool {
|
|
7
|
+
private config;
|
|
8
|
+
private options;
|
|
9
|
+
private connections;
|
|
10
|
+
private pendingConnections;
|
|
11
|
+
private isClosing;
|
|
12
|
+
constructor(config: DatabaseConfig, options?: ConnectionPoolOptions);
|
|
13
|
+
/**
|
|
14
|
+
* 获取连接(从池中获取或创建新连接)
|
|
15
|
+
*/
|
|
16
|
+
acquire(): Promise<unknown>;
|
|
17
|
+
/**
|
|
18
|
+
* 释放连接回池中
|
|
19
|
+
*/
|
|
20
|
+
release(connection: unknown): void;
|
|
21
|
+
/**
|
|
22
|
+
* 关闭连接池
|
|
23
|
+
*/
|
|
24
|
+
close(): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* 获取池状态信息
|
|
27
|
+
*/
|
|
28
|
+
getPoolStats(): {
|
|
29
|
+
total: number;
|
|
30
|
+
inUse: number;
|
|
31
|
+
idle: number;
|
|
32
|
+
maxConnections: number;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* 创建新连接
|
|
36
|
+
*/
|
|
37
|
+
private createConnection;
|
|
38
|
+
/**
|
|
39
|
+
* 带重试的连接创建
|
|
40
|
+
*/
|
|
41
|
+
private createConnectionWithRetry;
|
|
42
|
+
/**
|
|
43
|
+
* 创建 SQLite 连接
|
|
44
|
+
*/
|
|
45
|
+
private createSqliteConnection;
|
|
46
|
+
/**
|
|
47
|
+
* 创建 PostgreSQL 连接(使用 Bun.SQL)
|
|
48
|
+
*/
|
|
49
|
+
private createPostgresConnection;
|
|
50
|
+
/**
|
|
51
|
+
* 创建 MySQL 连接(使用 Bun.SQL)
|
|
52
|
+
*/
|
|
53
|
+
private createMysqlConnection;
|
|
54
|
+
/**
|
|
55
|
+
* 关闭连接
|
|
56
|
+
*/
|
|
57
|
+
private closeConnection;
|
|
58
|
+
/**
|
|
59
|
+
* 关闭 SQLite 连接
|
|
60
|
+
*/
|
|
61
|
+
private closeSqliteConnection;
|
|
62
|
+
/**
|
|
63
|
+
* 关闭 PostgreSQL 连接(Bun.SQL 会自动管理连接)
|
|
64
|
+
*/
|
|
65
|
+
private closePostgresConnection;
|
|
66
|
+
/**
|
|
67
|
+
* 关闭 MySQL 连接(Bun.SQL 会自动管理连接)
|
|
68
|
+
*/
|
|
69
|
+
private closeMysqlConnection;
|
|
70
|
+
/**
|
|
71
|
+
* 等待连接可用
|
|
72
|
+
*/
|
|
73
|
+
private waitForConnection;
|
|
74
|
+
/**
|
|
75
|
+
* 睡眠函数
|
|
76
|
+
*/
|
|
77
|
+
private sleep;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=connection-pool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection-pool.d.ts","sourceRoot":"","sources":["../../src/database/connection-pool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EAEf,MAAM,SAAS,CAAC;AAwBjB;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,kBAAkB,CAAoC;IAC9D,OAAO,CAAC,SAAS,CAAS;gBAGxB,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,qBAA0B;IAWrC;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IA8BxC;;OAEG;IACI,OAAO,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IAUzC;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBnC;;OAEG;IACI,YAAY,IAAI;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,MAAM,CAAC;KACxB;IAUD;;OAEG;YACW,gBAAgB;IAY9B;;OAEG;YACW,yBAAyB;IAuBvC;;OAEG;YACW,sBAAsB;IASpC;;OAEG;YACW,wBAAwB;IAoBtC;;OAEG;YACW,qBAAqB;IAkBnC;;OAEG;YACW,eAAe;IAW7B;;OAEG;YACW,qBAAqB;IAWnC;;OAEG;YACW,uBAAuB;IAarC;;OAEG;YACW,oBAAoB;IAalC;;OAEG;YACW,iBAAiB;IAoB/B;;OAEG;IACH,OAAO,CAAC,KAAK;CAGd"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Container } from '../di/container';
|
|
2
|
+
import type { ApplicationExtension } from '../extensions/types';
|
|
3
|
+
/**
|
|
4
|
+
* 数据库扩展
|
|
5
|
+
* 在应用启动时自动初始化数据库连接
|
|
6
|
+
*/
|
|
7
|
+
export declare class DatabaseExtension implements ApplicationExtension {
|
|
8
|
+
register(container: Container): void;
|
|
9
|
+
/**
|
|
10
|
+
* 初始化数据库连接
|
|
11
|
+
* 应该在应用启动时调用
|
|
12
|
+
*/
|
|
13
|
+
initialize(container: Container): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* 关闭数据库连接
|
|
16
|
+
* 应该在应用停止时调用
|
|
17
|
+
*/
|
|
18
|
+
close(container: Container): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=database-extension.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-extension.d.ts","sourceRoot":"","sources":["../../src/database/database-extension.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAKhE;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,oBAAoB;IACrD,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAK3C;;;OAGG;IACU,UAAU,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB5D;;;OAGG;IACU,KAAK,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;CAkBxD"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { DatabaseHealthIndicator } from './health-indicator';
|
|
2
|
+
import { DatabaseService } from './service';
|
|
3
|
+
import { type DatabaseModuleOptions } from './types';
|
|
4
|
+
export declare class DatabaseModule {
|
|
5
|
+
/**
|
|
6
|
+
* 创建数据库模块
|
|
7
|
+
* @param options - 模块配置
|
|
8
|
+
*/
|
|
9
|
+
static forRoot(options: DatabaseModuleOptions): typeof DatabaseModule;
|
|
10
|
+
/**
|
|
11
|
+
* 创建数据库健康检查指示器
|
|
12
|
+
* 用于在 HealthModule 中注册数据库健康检查
|
|
13
|
+
* @param databaseService - 数据库服务实例
|
|
14
|
+
* @returns 数据库健康检查指示器
|
|
15
|
+
*/
|
|
16
|
+
static createHealthIndicator(databaseService: DatabaseService): DatabaseHealthIndicator;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=database-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-module.d.ts","sourceRoot":"","sources":["../../src/database/database-module.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,SAAS,CAAC;AAIjB,qBAGa,cAAc;IACzB;;;OAGG;WACW,OAAO,CACnB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,cAAc;IA6ExB;;;;;OAKG;WACW,qBAAqB,CACjC,eAAe,EAAE,eAAe,GAC/B,uBAAuB;CAG3B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { HealthIndicator, HealthIndicatorResult } from '../health/types';
|
|
2
|
+
import type { DatabaseService } from './service';
|
|
3
|
+
/**
|
|
4
|
+
* 数据库健康检查指示器
|
|
5
|
+
*/
|
|
6
|
+
export declare class DatabaseHealthIndicator implements HealthIndicator {
|
|
7
|
+
private readonly databaseService;
|
|
8
|
+
readonly name = "database";
|
|
9
|
+
constructor(databaseService: DatabaseService);
|
|
10
|
+
/**
|
|
11
|
+
* 执行数据库健康检查
|
|
12
|
+
*/
|
|
13
|
+
check(): Promise<HealthIndicatorResult>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=health-indicator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health-indicator.d.ts","sourceRoot":"","sources":["../../src/database/health-indicator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD;;GAEG;AACH,qBAAa,uBAAwB,YAAW,eAAe;IAG1C,OAAO,CAAC,QAAQ,CAAC,eAAe;IAFnD,SAAgB,IAAI,cAAc;gBAEE,eAAe,EAAE,eAAe;IAEpE;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,qBAAqB,CAAC;CAgCrD"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { DatabaseModule } from './database-module';
|
|
2
|
+
export { DatabaseService } from './service';
|
|
3
|
+
export { DatabaseConnectionManager } from './connection-manager';
|
|
4
|
+
export { ConnectionPool } from './connection-pool';
|
|
5
|
+
export { DatabaseHealthIndicator } from './health-indicator';
|
|
6
|
+
export { DatabaseExtension } from './database-extension';
|
|
7
|
+
export { DATABASE_OPTIONS_TOKEN, DATABASE_SERVICE_TOKEN, type ConnectionInfo, type ConnectionPoolOptions, type DatabaseConfig, type DatabaseModuleOptions, type DatabaseType, type MysqlConfig, type PostgresConfig, type SqliteConfig, } from './types';
|
|
8
|
+
export { Entity, Column, PrimaryKey, Repository, BaseRepository, DrizzleBaseRepository, OrmService, ORM_SERVICE_TOKEN, getEntityMetadata, getColumnMetadata, getRepositoryMetadata, type OrmModuleOptions, type BaseRepository as BaseRepositoryInterface, type EntityMetadata, type ColumnMetadata, Transactional, TransactionManager, TransactionInterceptor, Propagation, IsolationLevel, TransactionStatus, TRANSACTION_SERVICE_TOKEN, getTransactionMetadata, type TransactionOptions, type TransactionContext, } from './orm';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,YAAY,GAClB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,MAAM,EACN,MAAM,EACN,UAAU,EACV,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,KAAK,gBAAgB,EACrB,KAAK,cAAc,IAAI,uBAAuB,EAC9C,KAAK,cAAc,EACnB,KAAK,cAAc,EAEnB,aAAa,EACb,kBAAkB,EAClB,sBAAsB,EACtB,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,yBAAyB,EACzB,sBAAsB,EACtB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,OAAO,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
/**
|
|
3
|
+
* Entity 元数据键
|
|
4
|
+
*/
|
|
5
|
+
export declare const ENTITY_METADATA_KEY: unique symbol;
|
|
6
|
+
/**
|
|
7
|
+
* Column 元数据键
|
|
8
|
+
*/
|
|
9
|
+
export declare const COLUMN_METADATA_KEY: unique symbol;
|
|
10
|
+
/**
|
|
11
|
+
* Entity 装饰器
|
|
12
|
+
* 标记一个类为数据库实体
|
|
13
|
+
* @param tableName - 表名
|
|
14
|
+
*/
|
|
15
|
+
export declare function Entity(tableName: string): ClassDecorator;
|
|
16
|
+
/**
|
|
17
|
+
* Column 装饰器
|
|
18
|
+
* 标记一个属性为数据库列
|
|
19
|
+
* @param options - 列选项
|
|
20
|
+
*/
|
|
21
|
+
export declare function Column(options?: {
|
|
22
|
+
/**
|
|
23
|
+
* 列名(默认为属性名)
|
|
24
|
+
*/
|
|
25
|
+
name?: string;
|
|
26
|
+
/**
|
|
27
|
+
* 列类型
|
|
28
|
+
*/
|
|
29
|
+
type?: string;
|
|
30
|
+
/**
|
|
31
|
+
* 是否为主键
|
|
32
|
+
*/
|
|
33
|
+
primaryKey?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* 是否自动递增
|
|
36
|
+
*/
|
|
37
|
+
autoIncrement?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* 是否可为空
|
|
40
|
+
*/
|
|
41
|
+
nullable?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* 默认值
|
|
44
|
+
*/
|
|
45
|
+
defaultValue?: unknown;
|
|
46
|
+
}): PropertyDecorator;
|
|
47
|
+
/**
|
|
48
|
+
* PrimaryKey 装饰器
|
|
49
|
+
* 标记一个属性为主键
|
|
50
|
+
*/
|
|
51
|
+
export declare function PrimaryKey(): PropertyDecorator;
|
|
52
|
+
/**
|
|
53
|
+
* 获取 Entity 元数据
|
|
54
|
+
*/
|
|
55
|
+
export declare function getEntityMetadata(target: unknown): {
|
|
56
|
+
tableName: string;
|
|
57
|
+
} | undefined;
|
|
58
|
+
/**
|
|
59
|
+
* 获取 Column 元数据
|
|
60
|
+
*/
|
|
61
|
+
export declare function getColumnMetadata(target: unknown): Array<{
|
|
62
|
+
name: string;
|
|
63
|
+
type: string;
|
|
64
|
+
primaryKey: boolean;
|
|
65
|
+
autoIncrement: boolean;
|
|
66
|
+
nullable: boolean;
|
|
67
|
+
defaultValue?: unknown;
|
|
68
|
+
propertyKey: string;
|
|
69
|
+
}>;
|
|
70
|
+
//# sourceMappingURL=decorators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../../src/database/orm/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B;;GAEG;AACH,eAAO,MAAM,mBAAmB,eAA0C,CAAC;AAE3E;;GAEG;AACH,eAAO,MAAM,mBAAmB,eAA0C,CAAC;AAE3E;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAIxD;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,OAAO,CAAC,EAAE;IAC/B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,GAAG,iBAAiB,CA6DpB;AAED;;;GAGG;AACH,wBAAgB,UAAU,IAAI,iBAAiB,CAE9C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,OAAO,GACd;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAKnC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,OAAO,GACd,KAAK,CAAC;IACP,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC,CAKD"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { DatabaseService } from '../service';
|
|
2
|
+
/**
|
|
3
|
+
* Drizzle Repository 基类
|
|
4
|
+
* 使用 Drizzle ORM 提供类型安全的查询
|
|
5
|
+
* 注意:这是一个抽象基类,供使用 Drizzle ORM 的 Repository 继承
|
|
6
|
+
* 继承此类的 Repository 需要自己添加 @Injectable() 装饰器
|
|
7
|
+
*/
|
|
8
|
+
export declare abstract class DrizzleBaseRepository<TTable, TSelect, TInsert, TUpdate> {
|
|
9
|
+
protected readonly databaseService: DatabaseService;
|
|
10
|
+
protected abstract table: TTable;
|
|
11
|
+
protected abstract drizzle: unknown;
|
|
12
|
+
constructor(databaseService: DatabaseService);
|
|
13
|
+
/**
|
|
14
|
+
* 查找所有记录
|
|
15
|
+
*/
|
|
16
|
+
abstract findAll(): Promise<TSelect[]>;
|
|
17
|
+
/**
|
|
18
|
+
* 根据 ID 查找记录
|
|
19
|
+
*/
|
|
20
|
+
abstract findById(id: string | number): Promise<TSelect | null>;
|
|
21
|
+
/**
|
|
22
|
+
* 创建记录
|
|
23
|
+
*/
|
|
24
|
+
abstract create(data: TInsert): Promise<TSelect>;
|
|
25
|
+
/**
|
|
26
|
+
* 更新记录
|
|
27
|
+
*/
|
|
28
|
+
abstract update(id: string | number, data: TUpdate): Promise<TSelect>;
|
|
29
|
+
/**
|
|
30
|
+
* 删除记录
|
|
31
|
+
*/
|
|
32
|
+
abstract delete(id: string | number): Promise<boolean>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=drizzle-repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drizzle-repository.d.ts","sourceRoot":"","sources":["../../../src/database/orm/drizzle-repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD;;;;;GAKG;AACH,8BAAsB,qBAAqB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IAIxD,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe;IAHtE,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACjC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;gBAEE,eAAe,EAAE,eAAe;IAEtE;;OAEG;aACa,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAE7C;;OAEG;aACa,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAEtE;;OAEG;aACa,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAEvD;;OAEG;aACa,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAE5E;;OAEG;aACa,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAC9D"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { Entity, Column, PrimaryKey, getEntityMetadata, getColumnMetadata } from './decorators';
|
|
2
|
+
export { Repository, getRepositoryMetadata } from './repository-decorator';
|
|
3
|
+
export { Transactional, getTransactionMetadata } from './transaction-decorator';
|
|
4
|
+
export { BaseRepository } from './repository';
|
|
5
|
+
export { DrizzleBaseRepository } from './drizzle-repository';
|
|
6
|
+
export { OrmService } from './service';
|
|
7
|
+
export { TransactionManager } from './transaction-manager';
|
|
8
|
+
export { TransactionInterceptor } from './transaction-interceptor';
|
|
9
|
+
export { ORM_SERVICE_TOKEN, type OrmModuleOptions, type BaseRepository as BaseRepositoryInterface, type EntityMetadata, type ColumnMetadata, } from './types';
|
|
10
|
+
export { Propagation, IsolationLevel, TransactionStatus, TRANSACTION_SERVICE_TOKEN, type TransactionOptions, type TransactionContext, } from './transaction-types';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/database/orm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAChG,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EACL,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,cAAc,IAAI,uBAAuB,EAC9C,KAAK,cAAc,EACnB,KAAK,cAAc,GACpB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,yBAAyB,EACzB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import type { Constructor } from '../../core/types';
|
|
3
|
+
/**
|
|
4
|
+
* Repository 元数据键
|
|
5
|
+
*/
|
|
6
|
+
export declare const REPOSITORY_METADATA_KEY: unique symbol;
|
|
7
|
+
/**
|
|
8
|
+
* Repository 装饰器
|
|
9
|
+
* 标记一个类为 Repository
|
|
10
|
+
* @param tableName - 表名
|
|
11
|
+
* @param primaryKey - 主键字段名(默认为 'id')
|
|
12
|
+
*/
|
|
13
|
+
export declare function Repository(tableName: string, primaryKey?: string): <T extends Constructor<unknown>>(target: T) => T;
|
|
14
|
+
/**
|
|
15
|
+
* 获取 Repository 元数据
|
|
16
|
+
*/
|
|
17
|
+
export declare function getRepositoryMetadata(target: unknown): {
|
|
18
|
+
tableName: string;
|
|
19
|
+
primaryKey: string;
|
|
20
|
+
} | undefined;
|
|
21
|
+
//# sourceMappingURL=repository-decorator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository-decorator.d.ts","sourceRoot":"","sources":["../../../src/database/orm/repository-decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,uBAAuB,eAA8C,CAAC;AAEnF;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,GAAE,MAAa,IACpD,CAAC,SAAS,WAAW,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,KAAG,CAAC,CAS/D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,SAAS,CAKZ"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { DatabaseService } from '../service';
|
|
2
|
+
/**
|
|
3
|
+
* Repository 基类
|
|
4
|
+
* 提供基础的 CRUD 操作
|
|
5
|
+
*/
|
|
6
|
+
export declare abstract class BaseRepository<T = unknown> {
|
|
7
|
+
protected readonly databaseService: DatabaseService;
|
|
8
|
+
protected abstract tableName: string;
|
|
9
|
+
protected abstract primaryKey: string;
|
|
10
|
+
constructor(databaseService: DatabaseService);
|
|
11
|
+
/**
|
|
12
|
+
* 查找所有记录
|
|
13
|
+
*/
|
|
14
|
+
findAll(): Promise<T[]>;
|
|
15
|
+
/**
|
|
16
|
+
* 根据 ID 查找记录
|
|
17
|
+
*/
|
|
18
|
+
findById(id: string | number): Promise<T | null>;
|
|
19
|
+
/**
|
|
20
|
+
* 创建记录
|
|
21
|
+
*/
|
|
22
|
+
create(data: Partial<T>): Promise<T>;
|
|
23
|
+
/**
|
|
24
|
+
* 更新记录
|
|
25
|
+
*/
|
|
26
|
+
update(id: string | number, data: Partial<T>): Promise<T>;
|
|
27
|
+
/**
|
|
28
|
+
* 删除记录
|
|
29
|
+
*/
|
|
30
|
+
delete(id: string | number): Promise<boolean>;
|
|
31
|
+
/**
|
|
32
|
+
* 执行查询
|
|
33
|
+
*/
|
|
34
|
+
protected executeQuery<T = unknown>(sql: string, params?: unknown[]): Promise<T[]>;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../src/database/orm/repository.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD;;;GAGG;AACH,8BAAsB,cAAc,CAAC,CAAC,GAAG,OAAO;IAM5C,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe;IALrD,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IACrC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAIjB,eAAe,EAAE,eAAe;IAGrD;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC;IAMpC;;OAEG;IACU,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAS7D;;OAEG;IACU,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAuBjD;;OAEG;IACU,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAWtE;;OAEG;IACU,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM1D;;OAEG;cACa,YAAY,CAAC,CAAC,GAAG,OAAO,EACtC,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,CAAC,EAAE,CAAC;CAShB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { DatabaseService } from '../service';
|
|
2
|
+
import type { OrmModuleOptions } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* ORM 服务
|
|
5
|
+
* 提供 ORM 相关的功能,如 Drizzle 实例管理
|
|
6
|
+
*/
|
|
7
|
+
export declare class OrmService {
|
|
8
|
+
private readonly databaseService;
|
|
9
|
+
private readonly options;
|
|
10
|
+
private drizzleInstance;
|
|
11
|
+
constructor(databaseService: DatabaseService, options?: OrmModuleOptions);
|
|
12
|
+
/**
|
|
13
|
+
* 获取 Drizzle 实例
|
|
14
|
+
* 如果未提供,则根据数据库类型创建
|
|
15
|
+
*/
|
|
16
|
+
getDrizzle(): unknown;
|
|
17
|
+
/**
|
|
18
|
+
* 设置 Drizzle 实例
|
|
19
|
+
*/
|
|
20
|
+
setDrizzle(drizzle: unknown): void;
|
|
21
|
+
/**
|
|
22
|
+
* 获取数据库服务
|
|
23
|
+
*/
|
|
24
|
+
getDatabaseService(): DatabaseService;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/database/orm/service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD;;;GAGG;AACH,qBACa,UAAU;IAInB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJ1B,OAAO,CAAC,eAAe,CAAwB;gBAG5B,eAAe,EAAE,eAAe,EAChC,OAAO,GAAE,gBAAqB;IAGjD;;;OAGG;IACI,UAAU,IAAI,OAAO;IAc5B;;OAEG;IACI,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIzC;;OAEG;IACI,kBAAkB,IAAI,eAAe;CAG7C"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import type { TransactionOptions } from './transaction-types';
|
|
3
|
+
/**
|
|
4
|
+
* Transaction 元数据键
|
|
5
|
+
*/
|
|
6
|
+
export declare const TRANSACTION_METADATA_KEY: unique symbol;
|
|
7
|
+
/**
|
|
8
|
+
* Transactional 装饰器
|
|
9
|
+
* 标记方法需要在事务中执行
|
|
10
|
+
* @param options - 事务配置选项
|
|
11
|
+
*/
|
|
12
|
+
export declare function Transactional(options?: TransactionOptions): MethodDecorator;
|
|
13
|
+
/**
|
|
14
|
+
* 获取 Transaction 元数据
|
|
15
|
+
*/
|
|
16
|
+
export declare function getTransactionMetadata(target: unknown, propertyKey: string | symbol): TransactionOptions | undefined;
|
|
17
|
+
//# sourceMappingURL=transaction-decorator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction-decorator.d.ts","sourceRoot":"","sources":["../../../src/database/orm/transaction-decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,wBAAwB,eAA+C,CAAC;AAErF;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,eAAe,CAiB3E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,MAAM,GAAG,MAAM,GAC3B,kBAAkB,GAAG,SAAS,CAKhC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Container } from '../../di/container';
|
|
2
|
+
/**
|
|
3
|
+
* 事务拦截器
|
|
4
|
+
* 在方法调用时检查 @Transactional() 装饰器并执行事务逻辑
|
|
5
|
+
*/
|
|
6
|
+
export declare class TransactionInterceptor {
|
|
7
|
+
/**
|
|
8
|
+
* 执行带事务的方法
|
|
9
|
+
*/
|
|
10
|
+
static executeWithTransaction<T>(target: unknown, propertyKey: string | symbol, originalMethod: (...args: unknown[]) => T | Promise<T>, args: unknown[], container: Container): Promise<T>;
|
|
11
|
+
/**
|
|
12
|
+
* 在新事务中执行方法
|
|
13
|
+
*/
|
|
14
|
+
private static executeInNewTransaction;
|
|
15
|
+
/**
|
|
16
|
+
* 在现有事务中执行方法
|
|
17
|
+
*/
|
|
18
|
+
private static executeInExistingTransaction;
|
|
19
|
+
/**
|
|
20
|
+
* 在嵌套事务中执行方法
|
|
21
|
+
*/
|
|
22
|
+
private static executeInNestedTransaction;
|
|
23
|
+
/**
|
|
24
|
+
* 判断是否应该回滚
|
|
25
|
+
*/
|
|
26
|
+
private static shouldRollback;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=transaction-interceptor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction-interceptor.d.ts","sourceRoot":"","sources":["../../../src/database/orm/transaction-interceptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAM/C;;;GAGG;AACH,qBAAa,sBAAsB;IACjC;;OAEG;WACiB,sBAAsB,CAAC,CAAC,EAC1C,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,MAAM,GAAG,MAAM,EAC5B,cAAc,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACtD,IAAI,EAAE,OAAO,EAAE,EACf,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,CAAC,CAAC;IA8Gb;;OAEG;mBACkB,uBAAuB;IA8B5C;;OAEG;mBACkB,4BAA4B;IAWjD;;OAEG;mBACkB,0BAA0B;IA2B/C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;CAgC9B"}
|