@dangao/bun-server 0.4.0 → 1.0.1
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/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/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/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1123 -25
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/middleware/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE7D;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;gBAE7B,kBAAkB,GAAE,UAAU,EAAO;IAIxD;;;OAGG;IACI,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAIxC;;OAEG;IACI,KAAK,IAAI,IAAI;IAIpB;;OAEG;IACI,cAAc,IAAI,OAAO;IAIhC;;;;;OAKG;IACU,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/middleware/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE7D;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;gBAE7B,kBAAkB,GAAE,UAAU,EAAO;IAIxD;;;OAGG;IACI,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAIxC;;OAEG;IACI,KAAK,IAAI,IAAI;IAIpB;;OAEG;IACI,cAAc,IAAI,OAAO;IAIhC;;;;;OAKG;IACU,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;CA6BlF;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,UAAU,EAAE,EACzB,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,QAAQ,CAAC,CAOnB"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
/**
|
|
3
|
+
* 队列配置
|
|
4
|
+
*/
|
|
5
|
+
export interface QueueOptions {
|
|
6
|
+
/**
|
|
7
|
+
* 队列名称
|
|
8
|
+
* @default 'default'
|
|
9
|
+
*/
|
|
10
|
+
name?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Cron 配置
|
|
14
|
+
*/
|
|
15
|
+
export interface CronDecoratorOptions {
|
|
16
|
+
/**
|
|
17
|
+
* Cron 表达式
|
|
18
|
+
*/
|
|
19
|
+
pattern: string;
|
|
20
|
+
/**
|
|
21
|
+
* 时区
|
|
22
|
+
* @default 'UTC'
|
|
23
|
+
*/
|
|
24
|
+
timezone?: string;
|
|
25
|
+
/**
|
|
26
|
+
* 是否立即执行一次
|
|
27
|
+
* @default false
|
|
28
|
+
*/
|
|
29
|
+
runOnInit?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* 队列名称
|
|
32
|
+
* @default 'default'
|
|
33
|
+
*/
|
|
34
|
+
queueName?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* 队列装饰器元数据
|
|
38
|
+
*/
|
|
39
|
+
export interface QueueMetadata {
|
|
40
|
+
name?: string;
|
|
41
|
+
}
|
|
42
|
+
export interface CronMetadata {
|
|
43
|
+
pattern: string;
|
|
44
|
+
timezone?: string;
|
|
45
|
+
runOnInit?: boolean;
|
|
46
|
+
queueName?: string;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* 标记方法为队列任务处理器
|
|
50
|
+
* @param options - 队列配置
|
|
51
|
+
*/
|
|
52
|
+
export declare function Queue(options?: QueueOptions): MethodDecorator;
|
|
53
|
+
/**
|
|
54
|
+
* 标记方法为定时任务(Cron)
|
|
55
|
+
* @param options - Cron 配置
|
|
56
|
+
*/
|
|
57
|
+
export declare function Cron(options: CronDecoratorOptions): MethodDecorator;
|
|
58
|
+
/**
|
|
59
|
+
* 获取队列装饰器元数据
|
|
60
|
+
*/
|
|
61
|
+
export declare function getQueueMetadata(target: unknown): QueueMetadata | undefined;
|
|
62
|
+
export declare function getCronMetadata(target: unknown): CronMetadata | undefined;
|
|
63
|
+
//# sourceMappingURL=decorators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/queue/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAQ1B;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,OAAO,GAAE,YAAiB,GAAG,eAAe,CAYjE;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,oBAAoB,GAAG,eAAe,CAenE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,aAAa,GAAG,SAAS,CAE3E;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,YAAY,GAAG,SAAS,CAEzE"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { QueueModule } from './queue-module';
|
|
2
|
+
export { QueueService } from './service';
|
|
3
|
+
export { Queue, Cron, getQueueMetadata, getCronMetadata, type QueueOptions, type CronDecoratorOptions, type QueueMetadata, type CronMetadata, } from './decorators';
|
|
4
|
+
export { MemoryQueueStore, QUEUE_SERVICE_TOKEN, QUEUE_OPTIONS_TOKEN, } from './types';
|
|
5
|
+
export type { QueueStore, QueueModuleOptions, Job, JobData, JobHandler, JobOptions, CronOptions, } from './types';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/queue/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EACL,KAAK,EACL,IAAI,EACJ,gBAAgB,EAChB,eAAe,EACf,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,UAAU,EACV,kBAAkB,EAClB,GAAG,EACH,OAAO,EACP,UAAU,EACV,UAAU,EACV,WAAW,GACZ,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue-module.d.ts","sourceRoot":"","sources":["../../src/queue/queue-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;CA0CtB"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import type { QueueModuleOptions, Job, JobData, JobHandler, JobOptions, CronOptions } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* 队列服务
|
|
4
|
+
*/
|
|
5
|
+
export declare class QueueService {
|
|
6
|
+
private store;
|
|
7
|
+
private defaultQueue;
|
|
8
|
+
private enableWorker;
|
|
9
|
+
private concurrency;
|
|
10
|
+
private workers;
|
|
11
|
+
private cronJobs;
|
|
12
|
+
private cronTimers;
|
|
13
|
+
constructor(options: QueueModuleOptions);
|
|
14
|
+
/**
|
|
15
|
+
* 添加任务
|
|
16
|
+
* @param jobName - 任务名称
|
|
17
|
+
* @param data - 任务数据
|
|
18
|
+
* @param options - 任务选项
|
|
19
|
+
* @param queueName - 队列名称(可选,默认使用 defaultQueue)
|
|
20
|
+
* @returns 任务 ID
|
|
21
|
+
*/
|
|
22
|
+
add<T = JobData>(jobName: string, data: T, options?: JobOptions, queueName?: string): Promise<string>;
|
|
23
|
+
/**
|
|
24
|
+
* 获取任务
|
|
25
|
+
* @param jobId - 任务 ID
|
|
26
|
+
* @param queueName - 队列名称(可选)
|
|
27
|
+
* @returns 任务,如果不存在则返回 undefined
|
|
28
|
+
*/
|
|
29
|
+
get<T = JobData>(jobId: string, queueName?: string): Promise<Job<T> | undefined>;
|
|
30
|
+
/**
|
|
31
|
+
* 删除任务
|
|
32
|
+
* @param jobId - 任务 ID
|
|
33
|
+
* @param queueName - 队列名称(可选)
|
|
34
|
+
* @returns 是否删除成功
|
|
35
|
+
*/
|
|
36
|
+
delete(jobId: string, queueName?: string): Promise<boolean>;
|
|
37
|
+
/**
|
|
38
|
+
* 清空队列
|
|
39
|
+
* @param queueName - 队列名称(可选)
|
|
40
|
+
* @returns 是否清空成功
|
|
41
|
+
*/
|
|
42
|
+
clear(queueName?: string): Promise<boolean>;
|
|
43
|
+
/**
|
|
44
|
+
* 获取队列中的任务数量
|
|
45
|
+
* @param queueName - 队列名称(可选)
|
|
46
|
+
* @returns 任务数量
|
|
47
|
+
*/
|
|
48
|
+
count(queueName?: string): Promise<number>;
|
|
49
|
+
/**
|
|
50
|
+
* 注册任务处理器
|
|
51
|
+
* @param jobName - 任务名称
|
|
52
|
+
* @param handler - 任务处理器
|
|
53
|
+
* @param queueName - 队列名称(可选)
|
|
54
|
+
*/
|
|
55
|
+
registerHandler<T = JobData>(jobName: string, handler: JobHandler<T>, queueName?: string): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* 注册定时任务(Cron)
|
|
58
|
+
* @param jobName - 任务名称
|
|
59
|
+
* @param handler - 任务处理器
|
|
60
|
+
* @param options - Cron 配置
|
|
61
|
+
* @param queueName - 队列名称(可选)
|
|
62
|
+
*/
|
|
63
|
+
registerCron<T = JobData>(jobName: string, handler: JobHandler<T>, options: CronOptions, queueName?: string): Promise<void>;
|
|
64
|
+
/**
|
|
65
|
+
* 启动工作进程
|
|
66
|
+
* @param queueName - 队列名称
|
|
67
|
+
*/
|
|
68
|
+
private startWorker;
|
|
69
|
+
/**
|
|
70
|
+
* 处理队列
|
|
71
|
+
* @param queueName - 队列名称
|
|
72
|
+
*/
|
|
73
|
+
private processQueue;
|
|
74
|
+
/**
|
|
75
|
+
* 获取处理器
|
|
76
|
+
* @param jobName - 任务名称
|
|
77
|
+
* @param queueName - 队列名称
|
|
78
|
+
* @returns 处理器,如果不存在则返回 undefined
|
|
79
|
+
*/
|
|
80
|
+
private getHandler;
|
|
81
|
+
/**
|
|
82
|
+
* 解析 Cron 表达式为间隔时间(毫秒)
|
|
83
|
+
* 注意:这是简化实现,实际应该使用专业的 cron 解析库
|
|
84
|
+
* @param pattern - Cron 表达式
|
|
85
|
+
* @returns 间隔时间(毫秒),如果无法解析则返回 -1
|
|
86
|
+
*/
|
|
87
|
+
private parseCronInterval;
|
|
88
|
+
/**
|
|
89
|
+
* 销毁服务,清理资源
|
|
90
|
+
*/
|
|
91
|
+
destroy(): void;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/queue/service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,kBAAkB,EAClB,GAAG,EACH,OAAO,EACP,UAAU,EACV,UAAU,EACV,WAAW,EACZ,MAAM,SAAS,CAAC;AAGjB;;GAEG;AACH,qBACa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAA8C;IAC7D,OAAO,CAAC,QAAQ,CACJ;IACZ,OAAO,CAAC,UAAU,CAA0D;gBAE5B,OAAO,EAAE,kBAAkB;IAW3E;;;;;;;OAOG;IACU,GAAG,CAAC,CAAC,GAAG,OAAO,EAC1B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,CAAC,EACP,OAAO,CAAC,EAAE,UAAU,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC;IAgBlB;;;;;OAKG;IACU,GAAG,CAAC,CAAC,GAAG,OAAO,EAC1B,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAK9B;;;;;OAKG;IACU,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKxE;;;;OAIG;IACU,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKxD;;;;OAIG;IACU,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKvD;;;;;OAKG;IACU,eAAe,CAAC,CAAC,GAAG,OAAO,EACtC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EACtB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC;IAehB;;;;;;OAMG;IACU,YAAY,CAAC,CAAC,GAAG,OAAO,EACnC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EACtB,OAAO,EAAE,WAAW,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC;IAsBhB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAenB;;;OAGG;YACW,YAAY;IAoC1B;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAUlB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAqCzB;;OAEG;IACI,OAAO,IAAI,IAAI;CASvB"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 任务数据
|
|
3
|
+
*/
|
|
4
|
+
export interface JobData {
|
|
5
|
+
[key: string]: unknown;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* 任务选项
|
|
9
|
+
*/
|
|
10
|
+
export interface JobOptions {
|
|
11
|
+
/**
|
|
12
|
+
* 任务延迟(毫秒)
|
|
13
|
+
*/
|
|
14
|
+
delay?: number;
|
|
15
|
+
/**
|
|
16
|
+
* 任务优先级(数字越大优先级越高)
|
|
17
|
+
*/
|
|
18
|
+
priority?: number;
|
|
19
|
+
/**
|
|
20
|
+
* 任务重试次数
|
|
21
|
+
*/
|
|
22
|
+
attempts?: number;
|
|
23
|
+
/**
|
|
24
|
+
* 任务重试延迟(毫秒)
|
|
25
|
+
*/
|
|
26
|
+
backoff?: {
|
|
27
|
+
type: 'fixed' | 'exponential';
|
|
28
|
+
delay: number;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* 任务超时时间(毫秒)
|
|
32
|
+
*/
|
|
33
|
+
timeout?: number;
|
|
34
|
+
/**
|
|
35
|
+
* 任务 ID(如果不提供则自动生成)
|
|
36
|
+
*/
|
|
37
|
+
jobId?: string;
|
|
38
|
+
/**
|
|
39
|
+
* 是否移除任务(如果已完成)
|
|
40
|
+
*/
|
|
41
|
+
removeOnComplete?: boolean | number;
|
|
42
|
+
/**
|
|
43
|
+
* 是否移除任务(如果失败)
|
|
44
|
+
*/
|
|
45
|
+
removeOnFail?: boolean | number;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* 任务
|
|
49
|
+
*/
|
|
50
|
+
export interface Job<T = JobData> {
|
|
51
|
+
/**
|
|
52
|
+
* 任务 ID
|
|
53
|
+
*/
|
|
54
|
+
id: string;
|
|
55
|
+
/**
|
|
56
|
+
* 任务名称
|
|
57
|
+
*/
|
|
58
|
+
name: string;
|
|
59
|
+
/**
|
|
60
|
+
* 任务数据
|
|
61
|
+
*/
|
|
62
|
+
data: T;
|
|
63
|
+
/**
|
|
64
|
+
* 任务选项
|
|
65
|
+
*/
|
|
66
|
+
options?: JobOptions;
|
|
67
|
+
/**
|
|
68
|
+
* 任务状态
|
|
69
|
+
*/
|
|
70
|
+
status: 'waiting' | 'active' | 'completed' | 'failed' | 'delayed';
|
|
71
|
+
/**
|
|
72
|
+
* 创建时间
|
|
73
|
+
*/
|
|
74
|
+
createdAt: number;
|
|
75
|
+
/**
|
|
76
|
+
* 更新时间
|
|
77
|
+
*/
|
|
78
|
+
updatedAt: number;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* 任务处理器
|
|
82
|
+
*/
|
|
83
|
+
export type JobHandler<T = JobData> = (job: Job<T>) => Promise<void> | void;
|
|
84
|
+
/**
|
|
85
|
+
* 队列存储接口
|
|
86
|
+
*/
|
|
87
|
+
export interface QueueStore {
|
|
88
|
+
/**
|
|
89
|
+
* 添加任务
|
|
90
|
+
* @param queueName - 队列名称
|
|
91
|
+
* @param job - 任务
|
|
92
|
+
* @returns 任务 ID
|
|
93
|
+
*/
|
|
94
|
+
add<T = JobData>(queueName: string, job: Omit<Job<T>, 'id' | 'status' | 'createdAt' | 'updatedAt'>): Promise<string>;
|
|
95
|
+
/**
|
|
96
|
+
* 获取任务
|
|
97
|
+
* @param queueName - 队列名称
|
|
98
|
+
* @param jobId - 任务 ID
|
|
99
|
+
* @returns 任务,如果不存在则返回 undefined
|
|
100
|
+
*/
|
|
101
|
+
get<T = JobData>(queueName: string, jobId: string): Promise<Job<T> | undefined>;
|
|
102
|
+
/**
|
|
103
|
+
* 获取下一个待处理的任务
|
|
104
|
+
* @param queueName - 队列名称
|
|
105
|
+
* @returns 任务,如果没有则返回 undefined
|
|
106
|
+
*/
|
|
107
|
+
getNext<T = JobData>(queueName: string): Promise<Job<T> | undefined>;
|
|
108
|
+
/**
|
|
109
|
+
* 更新任务状态
|
|
110
|
+
* @param queueName - 队列名称
|
|
111
|
+
* @param jobId - 任务 ID
|
|
112
|
+
* @param status - 新状态
|
|
113
|
+
* @returns 是否更新成功
|
|
114
|
+
*/
|
|
115
|
+
updateStatus(queueName: string, jobId: string, status: Job['status']): Promise<boolean>;
|
|
116
|
+
/**
|
|
117
|
+
* 删除任务
|
|
118
|
+
* @param queueName - 队列名称
|
|
119
|
+
* @param jobId - 任务 ID
|
|
120
|
+
* @returns 是否删除成功
|
|
121
|
+
*/
|
|
122
|
+
delete(queueName: string, jobId: string): Promise<boolean>;
|
|
123
|
+
/**
|
|
124
|
+
* 清空队列
|
|
125
|
+
* @param queueName - 队列名称
|
|
126
|
+
* @returns 是否清空成功
|
|
127
|
+
*/
|
|
128
|
+
clear(queueName: string): Promise<boolean>;
|
|
129
|
+
/**
|
|
130
|
+
* 获取队列中的任务数量
|
|
131
|
+
* @param queueName - 队列名称
|
|
132
|
+
* @returns 任务数量
|
|
133
|
+
*/
|
|
134
|
+
count(queueName: string): Promise<number>;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* 内存队列存储实现
|
|
138
|
+
*/
|
|
139
|
+
export declare class MemoryQueueStore implements QueueStore {
|
|
140
|
+
private queues;
|
|
141
|
+
private jobCounter;
|
|
142
|
+
add<T = JobData>(queueName: string, job: Omit<Job<T>, 'id' | 'status' | 'createdAt' | 'updatedAt'>): Promise<string>;
|
|
143
|
+
get<T = JobData>(queueName: string, jobId: string): Promise<Job<T> | undefined>;
|
|
144
|
+
getNext<T = JobData>(queueName: string): Promise<Job<T> | undefined>;
|
|
145
|
+
updateStatus(queueName: string, jobId: string, status: Job['status']): Promise<boolean>;
|
|
146
|
+
delete(queueName: string, jobId: string): Promise<boolean>;
|
|
147
|
+
clear(queueName: string): Promise<boolean>;
|
|
148
|
+
count(queueName: string): Promise<number>;
|
|
149
|
+
private getQueue;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Cron 表达式配置
|
|
153
|
+
*/
|
|
154
|
+
export interface CronOptions {
|
|
155
|
+
/**
|
|
156
|
+
* Cron 表达式(支持标准 5 字段格式:分 时 日 月 周)
|
|
157
|
+
* 例如:'0 0 * * *' 表示每天午夜执行
|
|
158
|
+
*/
|
|
159
|
+
pattern: string;
|
|
160
|
+
/**
|
|
161
|
+
* 时区
|
|
162
|
+
* @default 'UTC'
|
|
163
|
+
*/
|
|
164
|
+
timezone?: string;
|
|
165
|
+
/**
|
|
166
|
+
* 是否立即执行一次
|
|
167
|
+
* @default false
|
|
168
|
+
*/
|
|
169
|
+
runOnInit?: boolean;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* QueueModule 配置选项
|
|
173
|
+
*/
|
|
174
|
+
export interface QueueModuleOptions {
|
|
175
|
+
/**
|
|
176
|
+
* 队列存储实现
|
|
177
|
+
* @default MemoryQueueStore
|
|
178
|
+
*/
|
|
179
|
+
store?: QueueStore;
|
|
180
|
+
/**
|
|
181
|
+
* 默认队列名称
|
|
182
|
+
* @default 'default'
|
|
183
|
+
*/
|
|
184
|
+
defaultQueue?: string;
|
|
185
|
+
/**
|
|
186
|
+
* 是否启用工作进程
|
|
187
|
+
* @default true
|
|
188
|
+
*/
|
|
189
|
+
enableWorker?: boolean;
|
|
190
|
+
/**
|
|
191
|
+
* 工作进程并发数
|
|
192
|
+
* @default 1
|
|
193
|
+
*/
|
|
194
|
+
concurrency?: number;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* QueueService Token
|
|
198
|
+
*/
|
|
199
|
+
export declare const QUEUE_SERVICE_TOKEN: unique symbol;
|
|
200
|
+
/**
|
|
201
|
+
* QueueModule Options Token
|
|
202
|
+
*/
|
|
203
|
+
export declare const QUEUE_OPTIONS_TOKEN: unique symbol;
|
|
204
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/queue/types.ts"],"names":[],"mappings":"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"}
|
package/dist/router/router.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Context } from '../core/context';
|
|
2
2
|
import { Route } from './route';
|
|
3
|
-
import type { HttpMethod, RouteHandler } from './types';
|
|
3
|
+
import type { HttpMethod, RouteHandler, RouteMatch } from './types';
|
|
4
4
|
import type { Middleware } from '../middleware';
|
|
5
5
|
/**
|
|
6
6
|
* 路由器类
|
|
@@ -13,6 +13,11 @@ export declare class Router {
|
|
|
13
13
|
private readonly routes;
|
|
14
14
|
private readonly staticRoutes;
|
|
15
15
|
private readonly dynamicRoutes;
|
|
16
|
+
/**
|
|
17
|
+
* 路由匹配结果缓存(method:path -> { route, match })
|
|
18
|
+
* 用于避免重复匹配,提升性能
|
|
19
|
+
*/
|
|
20
|
+
private readonly matchCache;
|
|
16
21
|
/**
|
|
17
22
|
* 规范化路径(移除尾部斜杠,除非是根路径)
|
|
18
23
|
*/
|
|
@@ -64,6 +69,16 @@ export declare class Router {
|
|
|
64
69
|
* @returns 匹配的路由,如果没有找到则返回 undefined
|
|
65
70
|
*/
|
|
66
71
|
findRoute(method: HttpMethod, path: string): Route | undefined;
|
|
72
|
+
/**
|
|
73
|
+
* 查找匹配的路由并返回匹配结果(包含参数)
|
|
74
|
+
* @param method - HTTP 方法
|
|
75
|
+
* @param path - 请求路径
|
|
76
|
+
* @returns 匹配结果,包含路由和参数,如果没有找到则返回 undefined
|
|
77
|
+
*/
|
|
78
|
+
findRouteWithMatch(method: HttpMethod, path: string): {
|
|
79
|
+
route: Route;
|
|
80
|
+
match: RouteMatch;
|
|
81
|
+
} | undefined;
|
|
67
82
|
/**
|
|
68
83
|
* 预处理请求:仅匹配路由并设置路径参数 / routeHandler,但不执行处理器
|
|
69
84
|
* 供安全过滤器等中间件在真正执行前基于路由元数据做鉴权
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/router/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/router/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD;;;GAGG;AACH,qBAAa,MAAM;IACjB;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4B;IACzD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAE7C;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0D;IAErF;;OAEG;IACH,OAAO,CAAC,aAAa;IAOrB;;;;;;;;OAQG;IACI,QAAQ,CACb,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,YAAY,EACrB,WAAW,GAAE,UAAU,EAAO,EAC9B,eAAe,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EACrD,UAAU,CAAC,EAAE,MAAM,GAClB,IAAI;IAgBP;;;;OAIG;IACI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,GAAE,UAAU,EAAO,GAAG,IAAI;IAIrF;;;;OAIG;IACI,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,GAAE,UAAU,EAAO,GAAG,IAAI;IAItF;;;;OAIG;IACI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,GAAE,UAAU,EAAO,GAAG,IAAI;IAIrF;;;;OAIG;IACI,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,GAAE,UAAU,EAAO,GAAG,IAAI;IAIxF;;;;OAIG;IACI,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,GAAE,UAAU,EAAO,GAAG,IAAI;IAIvF;;;;;OAKG;IACI,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAKrE;;;;;OAKG;IACI,kBAAkB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,UAAU,CAAA;KAAE,GAAG,SAAS;IAmC5G;;;OAGG;IACU,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBvD;;;;OAIG;IACU,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IA4BpE;;;OAGG;IACI,SAAS,IAAI,SAAS,KAAK,EAAE;IAIpC;;OAEG;IACI,KAAK,IAAI,IAAI;CAMrB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import type { Context } from '../core/context';
|
|
3
|
+
import { Container } from '../di/container';
|
|
4
|
+
/**
|
|
5
|
+
* Session 参数装饰器
|
|
6
|
+
* 用于在控制器方法中注入 Session 对象
|
|
7
|
+
*/
|
|
8
|
+
export declare function Session(): (target: any, propertyKey: string | symbol | undefined, parameterIndex: number) => void;
|
|
9
|
+
/**
|
|
10
|
+
* 获取 Session 对象(用于参数绑定)
|
|
11
|
+
* @param context - 请求上下文
|
|
12
|
+
* @param container - DI 容器
|
|
13
|
+
* @returns Session 对象,如果不存在则返回 undefined
|
|
14
|
+
*/
|
|
15
|
+
export declare function getSessionFromContext(context: Context, container: Container): Promise<unknown | undefined>;
|
|
16
|
+
//# sourceMappingURL=decorators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/session/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C;;;GAGG;AACH,wBAAgB,OAAO,4FAEtB;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAoB9B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { SessionModule } from './session-module';
|
|
2
|
+
export { SessionService } from './service';
|
|
3
|
+
export { createSessionMiddleware } from './middleware';
|
|
4
|
+
export { Session as SessionDecorator, getSessionFromContext } from './decorators';
|
|
5
|
+
export { MemorySessionStore, RedisSessionStore, SESSION_SERVICE_TOKEN, SESSION_OPTIONS_TOKEN, } from './types';
|
|
6
|
+
export type { SessionStore, } from './types';
|
|
7
|
+
export type { SessionModuleOptions, Session, SessionData, RedisSessionStoreOptions, } from './types';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,YAAY,GACb,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,oBAAoB,EACpB,OAAO,EACP,WAAW,EACX,wBAAwB,GACzB,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Middleware } from '../middleware/middleware';
|
|
2
|
+
import type { Container } from '../di/container';
|
|
3
|
+
/**
|
|
4
|
+
* Session 中间件
|
|
5
|
+
* 从 Cookie 中读取 Session ID,并将 Session 对象附加到 Context
|
|
6
|
+
*/
|
|
7
|
+
export declare function createSessionMiddleware(container: Container): Middleware;
|
|
8
|
+
//# sourceMappingURL=middleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/session/middleware.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAgB,MAAM,0BAA0B,CAAC;AAGzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,SAAS,GACnB,UAAU,CAsFZ"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import type { SessionModuleOptions, Session, SessionData } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Session 服务
|
|
4
|
+
*/
|
|
5
|
+
export declare class SessionService {
|
|
6
|
+
private store;
|
|
7
|
+
private name;
|
|
8
|
+
private maxAge;
|
|
9
|
+
private rolling;
|
|
10
|
+
private cookieOptions;
|
|
11
|
+
constructor(options: SessionModuleOptions);
|
|
12
|
+
/**
|
|
13
|
+
* 生成 Session ID
|
|
14
|
+
* @returns Session ID
|
|
15
|
+
*/
|
|
16
|
+
private generateSessionId;
|
|
17
|
+
/**
|
|
18
|
+
* 创建新 Session
|
|
19
|
+
* @param initialData - 初始数据
|
|
20
|
+
* @returns Session
|
|
21
|
+
*/
|
|
22
|
+
create(initialData?: SessionData): Promise<Session>;
|
|
23
|
+
/**
|
|
24
|
+
* 获取 Session
|
|
25
|
+
* @param sessionId - Session ID
|
|
26
|
+
* @returns Session,如果不存在或已过期则返回 undefined
|
|
27
|
+
*/
|
|
28
|
+
get(sessionId: string): Promise<Session | undefined>;
|
|
29
|
+
/**
|
|
30
|
+
* 更新 Session 数据
|
|
31
|
+
* @param sessionId - Session ID
|
|
32
|
+
* @param data - 新数据
|
|
33
|
+
* @returns 是否更新成功
|
|
34
|
+
*/
|
|
35
|
+
set(sessionId: string, data: SessionData): Promise<boolean>;
|
|
36
|
+
/**
|
|
37
|
+
* 获取 Session 数据中的某个值
|
|
38
|
+
* @param sessionId - Session ID
|
|
39
|
+
* @param key - 数据键
|
|
40
|
+
* @returns 数据值,如果不存在则返回 undefined
|
|
41
|
+
*/
|
|
42
|
+
getValue<T = unknown>(sessionId: string, key: string): Promise<T | undefined>;
|
|
43
|
+
/**
|
|
44
|
+
* 设置 Session 数据中的某个值
|
|
45
|
+
* @param sessionId - Session ID
|
|
46
|
+
* @param key - 数据键
|
|
47
|
+
* @param value - 数据值
|
|
48
|
+
* @returns 是否设置成功
|
|
49
|
+
*/
|
|
50
|
+
setValue<T = unknown>(sessionId: string, key: string, value: T): Promise<boolean>;
|
|
51
|
+
/**
|
|
52
|
+
* 删除 Session 数据中的某个值
|
|
53
|
+
* @param sessionId - Session ID
|
|
54
|
+
* @param key - 数据键
|
|
55
|
+
* @returns 是否删除成功
|
|
56
|
+
*/
|
|
57
|
+
deleteValue(sessionId: string, key: string): Promise<boolean>;
|
|
58
|
+
/**
|
|
59
|
+
* 删除 Session
|
|
60
|
+
* @param sessionId - Session ID
|
|
61
|
+
* @returns 是否删除成功
|
|
62
|
+
*/
|
|
63
|
+
delete(sessionId: string): Promise<boolean>;
|
|
64
|
+
/**
|
|
65
|
+
* 更新 Session 的最后访问时间
|
|
66
|
+
* @param sessionId - Session ID
|
|
67
|
+
* @returns 是否更新成功
|
|
68
|
+
*/
|
|
69
|
+
touch(sessionId: string): Promise<boolean>;
|
|
70
|
+
/**
|
|
71
|
+
* 获取 Cookie 名称
|
|
72
|
+
* @returns Cookie 名称
|
|
73
|
+
*/
|
|
74
|
+
getCookieName(): string;
|
|
75
|
+
/**
|
|
76
|
+
* 获取 Cookie 选项
|
|
77
|
+
* @returns Cookie 选项
|
|
78
|
+
*/
|
|
79
|
+
getCookieOptions(): Required<SessionModuleOptions>['cookie'];
|
|
80
|
+
/**
|
|
81
|
+
* 获取最大存活时间
|
|
82
|
+
* @returns 最大存活时间(毫秒)
|
|
83
|
+
*/
|
|
84
|
+
getMaxAge(): number;
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/session/service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,oBAAoB,EACpB,OAAO,EACP,WAAW,EACZ,MAAM,SAAS,CAAC;AAIjB;;GAEG;AACH,qBACa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,aAAa,CAA2C;gBAG/B,OAAO,EAAE,oBAAoB;IAe9D;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;;;OAIG;IACU,MAAM,CAAC,WAAW,GAAE,WAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAcpE;;;;OAIG;IACU,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAcjE;;;;;OAKG;IACU,GAAG,CACd,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,OAAO,CAAC;IAgBnB;;;;;OAKG;IACU,QAAQ,CAAC,CAAC,GAAG,OAAO,EAC/B,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IASzB;;;;;;OAMG;IACU,QAAQ,CAAC,CAAC,GAAG,OAAO,EAC/B,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,CAAC,GACP,OAAO,CAAC,OAAO,CAAC;IAgBnB;;;;;OAKG;IACU,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgB1E;;;;OAIG;IACU,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIxD;;;;OAIG;IACU,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvD;;;OAGG;IACI,aAAa,IAAI,MAAM;IAI9B;;;OAGG;IACI,gBAAgB,IAAI,QAAQ,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC;IAInE;;;OAGG;IACI,SAAS,IAAI,MAAM;CAG3B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type SessionModuleOptions } from './types';
|
|
2
|
+
export declare class SessionModule {
|
|
3
|
+
/**
|
|
4
|
+
* 创建 Session 模块
|
|
5
|
+
* @param options - 模块配置
|
|
6
|
+
*/
|
|
7
|
+
static forRoot(options?: SessionModuleOptions): typeof SessionModule;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=session-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-module.d.ts","sourceRoot":"","sources":["../../src/session/session-module.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,oBAAoB,EAE1B,MAAM,SAAS,CAAC;AAEjB,qBAGa,aAAa;IACxB;;;OAGG;WACW,OAAO,CACnB,OAAO,GAAE,oBAAyB,GACjC,OAAO,aAAa;CA+CxB"}
|