@dangao/bun-server 0.3.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth/controller.d.ts +1 -1
- package/dist/auth/controller.d.ts.map +1 -1
- package/dist/cache/cache-module.d.ts +9 -0
- package/dist/cache/cache-module.d.ts.map +1 -0
- package/dist/cache/decorators.d.ts +110 -0
- package/dist/cache/decorators.d.ts.map +1 -0
- package/dist/cache/index.d.ts +6 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/service.d.ts +76 -0
- package/dist/cache/service.d.ts.map +1 -0
- package/dist/cache/types.d.ts +160 -0
- package/dist/cache/types.d.ts.map +1 -0
- package/dist/controller/controller.d.ts.map +1 -1
- package/dist/controller/decorators.d.ts +9 -1
- package/dist/controller/decorators.d.ts.map +1 -1
- package/dist/controller/param-binder.d.ts +4 -1
- package/dist/controller/param-binder.d.ts.map +1 -1
- package/dist/core/application.d.ts +10 -2
- package/dist/core/application.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 +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2454 -111
- package/dist/middleware/pipeline.d.ts.map +1 -1
- package/dist/queue/decorators.d.ts +63 -0
- package/dist/queue/decorators.d.ts.map +1 -0
- package/dist/queue/index.d.ts +6 -0
- package/dist/queue/index.d.ts.map +1 -0
- package/dist/queue/queue-module.d.ts +9 -0
- package/dist/queue/queue-module.d.ts.map +1 -0
- package/dist/queue/service.d.ts +93 -0
- package/dist/queue/service.d.ts.map +1 -0
- package/dist/queue/types.d.ts +204 -0
- package/dist/queue/types.d.ts.map +1 -0
- package/dist/router/router.d.ts +16 -1
- package/dist/router/router.d.ts.map +1 -1
- package/dist/session/decorators.d.ts +16 -0
- package/dist/session/decorators.d.ts.map +1 -0
- package/dist/session/index.d.ts +8 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/middleware.d.ts +8 -0
- package/dist/session/middleware.d.ts.map +1 -0
- package/dist/session/service.d.ts +86 -0
- package/dist/session/service.d.ts.map +1 -0
- package/dist/session/session-module.d.ts +9 -0
- package/dist/session/session-module.d.ts.map +1 -0
- package/dist/session/types.d.ts +193 -0
- package/dist/session/types.d.ts.map +1 -0
- package/package.json +1 -1
- package/readme.md +98 -117
|
@@ -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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-module.d.ts","sourceRoot":"","sources":["../../src/cache/cache-module.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,kBAAkB,EAExB,MAAM,SAAS,CAAC;AAEjB,qBAGa,WAAW;IACtB;;;OAGG;WACW,OAAO,CACnB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,WAAW;CA6CtB"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
/**
|
|
3
|
+
* 缓存配置
|
|
4
|
+
*/
|
|
5
|
+
export interface CacheableOptions {
|
|
6
|
+
/**
|
|
7
|
+
* 缓存键(支持 SpEL 表达式,如 'user:{id}')
|
|
8
|
+
*/
|
|
9
|
+
key?: string;
|
|
10
|
+
/**
|
|
11
|
+
* 缓存键前缀
|
|
12
|
+
*/
|
|
13
|
+
keyPrefix?: string;
|
|
14
|
+
/**
|
|
15
|
+
* TTL(毫秒),0 表示永不过期
|
|
16
|
+
*/
|
|
17
|
+
ttl?: number;
|
|
18
|
+
/**
|
|
19
|
+
* 条件表达式(如果返回 false,则不缓存)
|
|
20
|
+
* 支持 SpEL 表达式,如 'result.status === "success"'
|
|
21
|
+
*/
|
|
22
|
+
condition?: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* 缓存清除配置
|
|
26
|
+
*/
|
|
27
|
+
export interface CacheEvictOptions {
|
|
28
|
+
/**
|
|
29
|
+
* 缓存键(支持 SpEL 表达式)
|
|
30
|
+
*/
|
|
31
|
+
key?: string;
|
|
32
|
+
/**
|
|
33
|
+
* 缓存键前缀
|
|
34
|
+
*/
|
|
35
|
+
keyPrefix?: string;
|
|
36
|
+
/**
|
|
37
|
+
* 是否在方法执行前清除
|
|
38
|
+
* @default false
|
|
39
|
+
*/
|
|
40
|
+
beforeInvocation?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* 是否清除所有匹配的键(支持通配符)
|
|
43
|
+
* @default false
|
|
44
|
+
*/
|
|
45
|
+
allEntries?: boolean;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* 缓存更新配置
|
|
49
|
+
*/
|
|
50
|
+
export interface CachePutOptions {
|
|
51
|
+
/**
|
|
52
|
+
* 缓存键(支持 SpEL 表达式)
|
|
53
|
+
*/
|
|
54
|
+
key?: string;
|
|
55
|
+
/**
|
|
56
|
+
* 缓存键前缀
|
|
57
|
+
*/
|
|
58
|
+
keyPrefix?: string;
|
|
59
|
+
/**
|
|
60
|
+
* TTL(毫秒),0 表示永不过期
|
|
61
|
+
*/
|
|
62
|
+
ttl?: number;
|
|
63
|
+
/**
|
|
64
|
+
* 条件表达式(如果返回 false,则不更新缓存)
|
|
65
|
+
*/
|
|
66
|
+
condition?: string;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* 缓存装饰器元数据
|
|
70
|
+
*/
|
|
71
|
+
export interface CacheableMetadata {
|
|
72
|
+
key?: string;
|
|
73
|
+
keyPrefix?: string;
|
|
74
|
+
ttl?: number;
|
|
75
|
+
condition?: string;
|
|
76
|
+
}
|
|
77
|
+
export interface CacheEvictMetadata {
|
|
78
|
+
key?: string;
|
|
79
|
+
keyPrefix?: string;
|
|
80
|
+
beforeInvocation?: boolean;
|
|
81
|
+
allEntries?: boolean;
|
|
82
|
+
}
|
|
83
|
+
export interface CachePutMetadata {
|
|
84
|
+
key?: string;
|
|
85
|
+
keyPrefix?: string;
|
|
86
|
+
ttl?: number;
|
|
87
|
+
condition?: string;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* 缓存方法结果
|
|
91
|
+
* @param options - 缓存配置
|
|
92
|
+
*/
|
|
93
|
+
export declare function Cacheable(options?: CacheableOptions): MethodDecorator;
|
|
94
|
+
/**
|
|
95
|
+
* 清除缓存
|
|
96
|
+
* @param options - 清除配置
|
|
97
|
+
*/
|
|
98
|
+
export declare function CacheEvict(options?: CacheEvictOptions): MethodDecorator;
|
|
99
|
+
/**
|
|
100
|
+
* 更新缓存
|
|
101
|
+
* @param options - 更新配置
|
|
102
|
+
*/
|
|
103
|
+
export declare function CachePut(options?: CachePutOptions): MethodDecorator;
|
|
104
|
+
/**
|
|
105
|
+
* 获取缓存装饰器元数据
|
|
106
|
+
*/
|
|
107
|
+
export declare function getCacheableMetadata(target: unknown): CacheableMetadata | undefined;
|
|
108
|
+
export declare function getCacheEvictMetadata(target: unknown): CacheEvictMetadata | undefined;
|
|
109
|
+
export declare function getCachePutMetadata(target: unknown): CachePutMetadata | undefined;
|
|
110
|
+
//# sourceMappingURL=decorators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/cache/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAS1B;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,eAAe,CAmBzE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,eAAe,CAmB3E;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,OAAO,GAAE,eAAoB,GAAG,eAAe,CAevE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,OAAO,GACd,iBAAiB,GAAG,SAAS,CAE/B;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,OAAO,GACd,kBAAkB,GAAG,SAAS,CAEhC;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,OAAO,GACd,gBAAgB,GAAG,SAAS,CAE9B"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { CacheModule } from './cache-module';
|
|
2
|
+
export { CacheService } from './service';
|
|
3
|
+
export { Cacheable, CacheEvict, CachePut, getCacheableMetadata, getCacheEvictMetadata, getCachePutMetadata, type CacheableOptions, type CacheEvictOptions, type CachePutOptions, type CacheableMetadata, type CacheEvictMetadata, type CachePutMetadata, } from './decorators';
|
|
4
|
+
export { MemoryCacheStore, RedisCacheStore, CACHE_SERVICE_TOKEN, CACHE_OPTIONS_TOKEN, } from './types';
|
|
5
|
+
export type { CacheStore, CacheModuleOptions, RedisCacheStoreOptions, } from './types';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EACL,SAAS,EACT,UAAU,EACV,QAAQ,EACR,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,GACtB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,UAAU,EACV,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import type { CacheModuleOptions } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* 缓存服务
|
|
4
|
+
*/
|
|
5
|
+
export declare class CacheService {
|
|
6
|
+
private store;
|
|
7
|
+
private defaultTtl;
|
|
8
|
+
private keyPrefix;
|
|
9
|
+
constructor(options: CacheModuleOptions);
|
|
10
|
+
/**
|
|
11
|
+
* 获取缓存值
|
|
12
|
+
* @param key - 缓存键
|
|
13
|
+
* @returns 缓存值,如果不存在则返回 undefined
|
|
14
|
+
*/
|
|
15
|
+
get<T = unknown>(key: string): Promise<T | undefined>;
|
|
16
|
+
/**
|
|
17
|
+
* 设置缓存值
|
|
18
|
+
* @param key - 缓存键
|
|
19
|
+
* @param value - 缓存值
|
|
20
|
+
* @param ttl - 过期时间(毫秒),0 表示永不过期,undefined 使用默认 TTL
|
|
21
|
+
* @returns 是否设置成功
|
|
22
|
+
*/
|
|
23
|
+
set<T = unknown>(key: string, value: T, ttl?: number): Promise<boolean>;
|
|
24
|
+
/**
|
|
25
|
+
* 删除缓存
|
|
26
|
+
* @param key - 缓存键
|
|
27
|
+
* @returns 是否删除成功
|
|
28
|
+
*/
|
|
29
|
+
delete(key: string): Promise<boolean>;
|
|
30
|
+
/**
|
|
31
|
+
* 检查缓存是否存在
|
|
32
|
+
* @param key - 缓存键
|
|
33
|
+
* @returns 是否存在
|
|
34
|
+
*/
|
|
35
|
+
has(key: string): Promise<boolean>;
|
|
36
|
+
/**
|
|
37
|
+
* 清空所有缓存
|
|
38
|
+
* @returns 是否清空成功
|
|
39
|
+
*/
|
|
40
|
+
clear(): Promise<boolean>;
|
|
41
|
+
/**
|
|
42
|
+
* 获取多个缓存值
|
|
43
|
+
* @param keys - 缓存键数组
|
|
44
|
+
* @returns 缓存值映射
|
|
45
|
+
*/
|
|
46
|
+
getMany<T = unknown>(keys: string[]): Promise<Map<string, T>>;
|
|
47
|
+
/**
|
|
48
|
+
* 设置多个缓存值
|
|
49
|
+
* @param entries - 缓存条目数组
|
|
50
|
+
* @param ttl - 过期时间(毫秒),0 表示永不过期,undefined 使用默认 TTL
|
|
51
|
+
* @returns 是否设置成功
|
|
52
|
+
*/
|
|
53
|
+
setMany<T = unknown>(entries: Array<{
|
|
54
|
+
key: string;
|
|
55
|
+
value: T;
|
|
56
|
+
}>, ttl?: number): Promise<boolean>;
|
|
57
|
+
/**
|
|
58
|
+
* 删除多个缓存
|
|
59
|
+
* @param keys - 缓存键数组
|
|
60
|
+
* @returns 删除成功的键数组
|
|
61
|
+
*/
|
|
62
|
+
deleteMany(keys: string[]): Promise<string[]>;
|
|
63
|
+
/**
|
|
64
|
+
* 获取或设置缓存(如果不存在则执行函数并缓存结果)
|
|
65
|
+
* @param key - 缓存键
|
|
66
|
+
* @param factory - 值工厂函数
|
|
67
|
+
* @param ttl - 过期时间(毫秒),0 表示永不过期,undefined 使用默认 TTL
|
|
68
|
+
* @returns 缓存值
|
|
69
|
+
*/
|
|
70
|
+
getOrSet<T = unknown>(key: string, factory: () => Promise<T> | T, ttl?: number): Promise<T>;
|
|
71
|
+
/**
|
|
72
|
+
* 获取带前缀的键
|
|
73
|
+
*/
|
|
74
|
+
private getKey;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/cache/service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAI9D;;GAEG;AACH,qBACa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAS;gBAGK,OAAO,EAAE,kBAAkB;IAO1D;;;;OAIG;IACU,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAIlE;;;;;;OAMG;IACU,GAAG,CAAC,CAAC,GAAG,OAAO,EAC1B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,CAAC,EACR,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC;IAKnB;;;;OAIG;IACU,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlD;;;;OAIG;IACU,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/C;;;OAGG;IACU,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAItC;;;;OAIG;IACU,OAAO,CAAC,CAAC,GAAG,OAAO,EAC9B,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAa1B;;;;;OAKG;IACU,OAAO,CAAC,CAAC,GAAG,OAAO,EAC9B,OAAO,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,CAAC,CAAA;KAAE,CAAC,EACzC,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC;IASnB;;;;OAIG;IACU,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAM1D;;;;;;OAMG;IACU,QAAQ,CAAC,CAAC,GAAG,OAAO,EAC/B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAC7B,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,CAAC,CAAC;IAWb;;OAEG;IACH,OAAO,CAAC,MAAM;CAGf"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 缓存存储接口
|
|
3
|
+
*/
|
|
4
|
+
export interface CacheStore {
|
|
5
|
+
/**
|
|
6
|
+
* 获取缓存值
|
|
7
|
+
* @param key - 缓存键
|
|
8
|
+
* @returns 缓存值,如果不存在则返回 undefined
|
|
9
|
+
*/
|
|
10
|
+
get<T = unknown>(key: string): Promise<T | undefined>;
|
|
11
|
+
/**
|
|
12
|
+
* 设置缓存值
|
|
13
|
+
* @param key - 缓存键
|
|
14
|
+
* @param value - 缓存值
|
|
15
|
+
* @param ttl - 过期时间(毫秒),0 表示永不过期
|
|
16
|
+
* @returns 是否设置成功
|
|
17
|
+
*/
|
|
18
|
+
set<T = unknown>(key: string, value: T, ttl?: number): Promise<boolean>;
|
|
19
|
+
/**
|
|
20
|
+
* 删除缓存
|
|
21
|
+
* @param key - 缓存键
|
|
22
|
+
* @returns 是否删除成功
|
|
23
|
+
*/
|
|
24
|
+
delete(key: string): Promise<boolean>;
|
|
25
|
+
/**
|
|
26
|
+
* 检查缓存是否存在
|
|
27
|
+
* @param key - 缓存键
|
|
28
|
+
* @returns 是否存在
|
|
29
|
+
*/
|
|
30
|
+
has(key: string): Promise<boolean>;
|
|
31
|
+
/**
|
|
32
|
+
* 清空所有缓存
|
|
33
|
+
* @returns 是否清空成功
|
|
34
|
+
*/
|
|
35
|
+
clear(): Promise<boolean>;
|
|
36
|
+
/**
|
|
37
|
+
* 获取多个缓存值
|
|
38
|
+
* @param keys - 缓存键数组
|
|
39
|
+
* @returns 缓存值映射
|
|
40
|
+
*/
|
|
41
|
+
getMany<T = unknown>(keys: string[]): Promise<Map<string, T>>;
|
|
42
|
+
/**
|
|
43
|
+
* 设置多个缓存值
|
|
44
|
+
* @param entries - 缓存条目数组
|
|
45
|
+
* @param ttl - 过期时间(毫秒),0 表示永不过期
|
|
46
|
+
* @returns 是否设置成功
|
|
47
|
+
*/
|
|
48
|
+
setMany<T = unknown>(entries: Array<{
|
|
49
|
+
key: string;
|
|
50
|
+
value: T;
|
|
51
|
+
}>, ttl?: number): Promise<boolean>;
|
|
52
|
+
/**
|
|
53
|
+
* 删除多个缓存
|
|
54
|
+
* @param keys - 缓存键数组
|
|
55
|
+
* @returns 删除成功的键数组
|
|
56
|
+
*/
|
|
57
|
+
deleteMany(keys: string[]): Promise<string[]>;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* 内存缓存存储实现
|
|
61
|
+
*/
|
|
62
|
+
export declare class MemoryCacheStore implements CacheStore {
|
|
63
|
+
private store;
|
|
64
|
+
private cleanupInterval?;
|
|
65
|
+
constructor(options?: {
|
|
66
|
+
cleanupInterval?: number;
|
|
67
|
+
});
|
|
68
|
+
get<T = unknown>(key: string): Promise<T | undefined>;
|
|
69
|
+
set<T = unknown>(key: string, value: T, ttl?: number): Promise<boolean>;
|
|
70
|
+
delete(key: string): Promise<boolean>;
|
|
71
|
+
has(key: string): Promise<boolean>;
|
|
72
|
+
clear(): Promise<boolean>;
|
|
73
|
+
getMany<T = unknown>(keys: string[]): Promise<Map<string, T>>;
|
|
74
|
+
setMany<T = unknown>(entries: Array<{
|
|
75
|
+
key: string;
|
|
76
|
+
value: T;
|
|
77
|
+
}>, ttl?: number): Promise<boolean>;
|
|
78
|
+
deleteMany(keys: string[]): Promise<string[]>;
|
|
79
|
+
/**
|
|
80
|
+
* 清理过期条目
|
|
81
|
+
*/
|
|
82
|
+
private cleanup;
|
|
83
|
+
/**
|
|
84
|
+
* 销毁存储,清理定时器
|
|
85
|
+
*/
|
|
86
|
+
destroy(): void;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Redis 缓存存储实现(需要 redis 包)
|
|
90
|
+
*/
|
|
91
|
+
export interface RedisCacheStoreOptions {
|
|
92
|
+
/**
|
|
93
|
+
* Redis 客户端(需要用户提供)
|
|
94
|
+
*/
|
|
95
|
+
client: {
|
|
96
|
+
get(key: string): Promise<string | null>;
|
|
97
|
+
set(key: string, value: string, options?: {
|
|
98
|
+
PX?: number;
|
|
99
|
+
}): Promise<void>;
|
|
100
|
+
del(key: string): Promise<void>;
|
|
101
|
+
exists(key: string): Promise<number>;
|
|
102
|
+
mget(keys: string[]): Promise<(string | null)[]>;
|
|
103
|
+
mset(entries: Array<{
|
|
104
|
+
key: string;
|
|
105
|
+
value: string;
|
|
106
|
+
}>): Promise<void>;
|
|
107
|
+
flushdb(): Promise<void>;
|
|
108
|
+
};
|
|
109
|
+
/**
|
|
110
|
+
* 键前缀
|
|
111
|
+
* @default 'cache:'
|
|
112
|
+
*/
|
|
113
|
+
keyPrefix?: string;
|
|
114
|
+
}
|
|
115
|
+
export declare class RedisCacheStore implements CacheStore {
|
|
116
|
+
private client;
|
|
117
|
+
private keyPrefix;
|
|
118
|
+
constructor(options: RedisCacheStoreOptions);
|
|
119
|
+
private getKey;
|
|
120
|
+
get<T = unknown>(key: string): Promise<T | undefined>;
|
|
121
|
+
set<T = unknown>(key: string, value: T, ttl?: number): Promise<boolean>;
|
|
122
|
+
delete(key: string): Promise<boolean>;
|
|
123
|
+
has(key: string): Promise<boolean>;
|
|
124
|
+
clear(): Promise<boolean>;
|
|
125
|
+
getMany<T = unknown>(keys: string[]): Promise<Map<string, T>>;
|
|
126
|
+
setMany<T = unknown>(entries: Array<{
|
|
127
|
+
key: string;
|
|
128
|
+
value: T;
|
|
129
|
+
}>, ttl?: number): Promise<boolean>;
|
|
130
|
+
deleteMany(keys: string[]): Promise<string[]>;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* CacheModule 配置选项
|
|
134
|
+
*/
|
|
135
|
+
export interface CacheModuleOptions {
|
|
136
|
+
/**
|
|
137
|
+
* 缓存存储实现
|
|
138
|
+
* @default MemoryCacheStore
|
|
139
|
+
*/
|
|
140
|
+
store?: CacheStore;
|
|
141
|
+
/**
|
|
142
|
+
* 默认 TTL(毫秒)
|
|
143
|
+
* @default 3600000 (1 小时)
|
|
144
|
+
*/
|
|
145
|
+
defaultTtl?: number;
|
|
146
|
+
/**
|
|
147
|
+
* 键前缀
|
|
148
|
+
* @default ''
|
|
149
|
+
*/
|
|
150
|
+
keyPrefix?: string;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* CacheService Token
|
|
154
|
+
*/
|
|
155
|
+
export declare const CACHE_SERVICE_TOKEN: unique symbol;
|
|
156
|
+
/**
|
|
157
|
+
* CacheModule Options Token
|
|
158
|
+
*/
|
|
159
|
+
export declare const CACHE_OPTIONS_TOKEN: unique symbol;
|
|
160
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cache/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|
|
@@ -6,7 +6,8 @@ export declare enum ParamType {
|
|
|
6
6
|
BODY = "body",
|
|
7
7
|
QUERY = "query",
|
|
8
8
|
PARAM = "param",
|
|
9
|
-
HEADER = "header"
|
|
9
|
+
HEADER = "header",
|
|
10
|
+
SESSION = "session"
|
|
10
11
|
}
|
|
11
12
|
/**
|
|
12
13
|
* 参数元数据
|
|
@@ -16,6 +17,13 @@ export interface ParamMetadata {
|
|
|
16
17
|
key?: string;
|
|
17
18
|
index: number;
|
|
18
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* 参数装饰器工厂
|
|
22
|
+
* @param type - 参数类型
|
|
23
|
+
* @param key - 参数键(可选)
|
|
24
|
+
* @returns 参数装饰器
|
|
25
|
+
*/
|
|
26
|
+
export declare function createParamDecorator(type: ParamType, key?: string): (target: any, propertyKey: string | symbol | undefined, parameterIndex: number) => void;
|
|
19
27
|
/**
|
|
20
28
|
* Body 参数装饰器
|
|
21
29
|
* @param key - 参数键(可选,用于提取对象中的特定字段)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/controller/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAO1B;;GAEG;AACH,oBAAY,SAAS;IACnB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,KAAK,UAAU;IACf,MAAM,WAAW;
|
|
1
|
+
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/controller/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAO1B;;GAEG;AACH,oBAAY,SAAS;IACnB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,MAAM,IAC/C,QAAQ,GAAG,EAAE,aAAa,MAAM,GAAG,MAAM,GAAG,SAAS,EAAE,gBAAgB,MAAM,UAM/F;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,YAZN,GAAG,eAAe,MAAM,GAAG,MAAM,GAAG,SAAS,kBAAkB,MAAM,UAc/F;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,YApBN,GAAG,eAAe,MAAM,GAAG,MAAM,GAAG,SAAS,kBAAkB,MAAM,UAsB/F;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,YA5BN,GAAG,eAAe,MAAM,GAAG,MAAM,GAAG,SAAS,kBAAkB,MAAM,UA8B/F;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,YApCP,GAAG,eAAe,MAAM,GAAG,MAAM,GAAG,SAAS,kBAAkB,MAAM,UAsC/F;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa,EAAE,CAElF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Context } from '../core/context';
|
|
2
|
+
import { Container } from '../di/container';
|
|
2
3
|
/**
|
|
3
4
|
* 参数绑定器
|
|
4
5
|
* 根据装饰器元数据绑定参数
|
|
@@ -9,13 +10,15 @@ export declare class ParamBinder {
|
|
|
9
10
|
* @param target - 目标对象
|
|
10
11
|
* @param propertyKey - 属性键
|
|
11
12
|
* @param context - 请求上下文
|
|
13
|
+
* @param container - DI 容器(用于解析 Session)
|
|
12
14
|
* @returns 参数数组
|
|
13
15
|
*/
|
|
14
|
-
static bind(target: any, propertyKey: string, context: Context): Promise<unknown[]>;
|
|
16
|
+
static bind(target: any, propertyKey: string, context: Context, container?: Container): Promise<unknown[]>;
|
|
15
17
|
/**
|
|
16
18
|
* 获取参数值
|
|
17
19
|
* @param meta - 参数元数据
|
|
18
20
|
* @param context - 请求上下文
|
|
21
|
+
* @param container - DI 容器(用于解析 Session)
|
|
19
22
|
* @returns 参数值
|
|
20
23
|
*/
|
|
21
24
|
private static getValue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"param-binder.d.ts","sourceRoot":"","sources":["../../src/controller/param-binder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"param-binder.d.ts","sourceRoot":"","sources":["../../src/controller/param-binder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C;;;GAGG;AACH,qBAAa,WAAW;IACtB;;;;;;;OAOG;WACiB,IAAI,CACtB,MAAM,EAAE,GAAG,EACX,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,EAChB,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,OAAO,EAAE,CAAC;IAyBrB;;;;;;OAMG;mBACkB,QAAQ;IAqD7B;;;;;OAKG;mBACkB,YAAY;IAWjC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAI5B;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAI5B;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;CAG9B"}
|
|
@@ -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"}
|
|
@@ -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
|