@aomex/common-service 3.28.3 → 3.29.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/CHANGELOG.md +19 -0
- package/dist/index.d.ts +12 -3
- package/dist/index.js +18 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,25 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [3.29.1](https://github.com/aomex/aomex/compare/v3.29.0...v3.29.1) (2025-07-26)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @aomex/common-service
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [3.29.0](https://github.com/aomex/aomex/compare/v3.28.3...v3.29.0) (2025-07-17)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* **service:** 添加服务销毁功能 ([7a2df1b](https://github.com/aomex/aomex/commit/7a2df1bd7ba53a7aaf9ecedf3dbaf728da08d2f1))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
6
25
|
## [3.28.3](https://github.com/aomex/aomex/compare/v3.28.2...v3.28.3) (2025-07-10)
|
|
7
26
|
|
|
8
27
|
**Note:** Version bump only for package @aomex/common-service
|
package/dist/index.d.ts
CHANGED
|
@@ -23,9 +23,18 @@ declare abstract class Service {
|
|
|
23
23
|
constructor(_services: Record<string, Service>);
|
|
24
24
|
protected get services(): CombinedServices;
|
|
25
25
|
/**
|
|
26
|
-
*
|
|
26
|
+
* 会自动触发的初始化方法。主进程会等待Promise结束才算初始化完成
|
|
27
27
|
*/
|
|
28
|
-
protected init():
|
|
28
|
+
protected init(): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* 实例销毁方法,调用函数`destroyServices`后触发
|
|
31
|
+
*/
|
|
32
|
+
protected destroy(): Promise<void>;
|
|
29
33
|
}
|
|
30
34
|
|
|
31
|
-
|
|
35
|
+
/**
|
|
36
|
+
* 销毁所有服务,执行每个服务中的方法`destroy()`
|
|
37
|
+
*/
|
|
38
|
+
declare const destroyServices: (services: Record<string, Service>) => Promise<void>;
|
|
39
|
+
|
|
40
|
+
export { type CombinedServices, Service, combineServices, destroyServices };
|
package/dist/index.js
CHANGED
|
@@ -14,9 +14,14 @@ var Service = class {
|
|
|
14
14
|
return this._services;
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
17
|
+
* 会自动触发的初始化方法。主进程会等待Promise结束才算初始化完成
|
|
18
18
|
*/
|
|
19
|
-
init() {
|
|
19
|
+
async init() {
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* 实例销毁方法,调用函数`destroyServices`后触发
|
|
23
|
+
*/
|
|
24
|
+
async destroy() {
|
|
20
25
|
}
|
|
21
26
|
};
|
|
22
27
|
|
|
@@ -35,8 +40,18 @@ var combineServices = async (classes) => {
|
|
|
35
40
|
Object.freeze(services);
|
|
36
41
|
return services;
|
|
37
42
|
};
|
|
43
|
+
|
|
44
|
+
// src/destroy-services.ts
|
|
45
|
+
var destroyServices = async (services) => {
|
|
46
|
+
await Promise.all(
|
|
47
|
+
Object.values(services).map((service) => {
|
|
48
|
+
return service["destroy"]();
|
|
49
|
+
})
|
|
50
|
+
);
|
|
51
|
+
};
|
|
38
52
|
export {
|
|
39
53
|
Service,
|
|
40
|
-
combineServices
|
|
54
|
+
combineServices,
|
|
55
|
+
destroyServices
|
|
41
56
|
};
|
|
42
57
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/service.ts","../src/combine-services.ts"],"sourcesContent":["import type { CombinedServices } from './combine-services';\n\nexport abstract class Service {\n protected get displayName() {\n const className = this.constructor.name;\n if (className.endsWith('Service')) {\n return className.slice(0, -7);\n }\n return className;\n }\n\n constructor(private readonly _services: Record<string, Service>) {}\n\n protected get services(): CombinedServices {\n return this._services as CombinedServices;\n }\n\n /**\n *
|
|
1
|
+
{"version":3,"sources":["../src/service.ts","../src/combine-services.ts","../src/destroy-services.ts"],"sourcesContent":["import type { CombinedServices } from './combine-services';\n\nexport abstract class Service {\n protected get displayName() {\n const className = this.constructor.name;\n if (className.endsWith('Service')) {\n return className.slice(0, -7);\n }\n return className;\n }\n\n constructor(private readonly _services: Record<string, Service>) {}\n\n protected get services(): CombinedServices {\n return this._services as CombinedServices;\n }\n\n /**\n * 会自动触发的初始化方法。主进程会等待Promise结束才算初始化完成\n */\n protected async init(): Promise<void> {}\n\n /**\n * 实例销毁方法,调用函数`destroyServices`后触发\n */\n protected async destroy(): Promise<void> {}\n}\n","import { Service } from './service';\n/**\n * 为了让服务层有提示,你需要手动处理这一步:\n * \n * ```typescript\n export const services = await combineServices({...});\n \n declare module '@aomex/common' {\n type T = typeof services;\n export interface CombinedServices extends T {}\n }\n * ```\n */\nexport interface CombinedServices {}\n\n/**\n * 把所有服务绑定在一起,然后导出使用\n */\nexport const combineServices = async <\n T extends Record<string, new (services: Record<string, Service>) => Service>,\n>(\n classes: T,\n): Promise<{ readonly [K in keyof T]: InstanceType<T[K]> }> => {\n const services: Record<string, Service> = {};\n\n await Promise.all(\n Object.entries(classes)\n .map(([key, Class]) => {\n const service = new Class(services);\n services[key] = service;\n return service;\n })\n .map(async (instance) => {\n await instance['init']();\n }),\n );\n\n Object.freeze(services);\n\n return services as any;\n};\n","import type { Service } from './service';\n\n/**\n * 销毁所有服务,执行每个服务中的方法`destroy()`\n */\nexport const destroyServices = async (services: Record<string, Service>) => {\n await Promise.all(\n Object.values(services).map((service) => {\n return service['destroy']();\n }),\n );\n};\n"],"mappings":";AAEO,IAAe,UAAf,MAAuB;AAAA,EAS5B,YAA6B,WAAoC;AAApC;AAAA,EAAqC;AAAA,EARlE,IAAc,cAAc;AAC1B,UAAM,YAAY,KAAK,YAAY;AACnC,QAAI,UAAU,SAAS,SAAS,GAAG;AACjC,aAAO,UAAU,MAAM,GAAG,EAAE;AAAA,IAC9B;AACA,WAAO;AAAA,EACT;AAAA,EAIA,IAAc,WAA6B;AACzC,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,MAAgB,OAAsB;AAAA,EAAC;AAAA;AAAA;AAAA;AAAA,EAKvC,MAAgB,UAAyB;AAAA,EAAC;AAC5C;;;ACRO,IAAM,kBAAkB,OAG7B,YAC6D;AAC7D,QAAM,WAAoC,CAAC;AAE3C,QAAM,QAAQ;AAAA,IACZ,OAAO,QAAQ,OAAO,EACnB,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AACrB,YAAM,UAAU,IAAI,MAAM,QAAQ;AAClC,eAAS,GAAG,IAAI;AAChB,aAAO;AAAA,IACT,CAAC,EACA,IAAI,OAAO,aAAa;AACvB,YAAM,SAAS,MAAM,EAAE;AAAA,IACzB,CAAC;AAAA,EACL;AAEA,SAAO,OAAO,QAAQ;AAEtB,SAAO;AACT;;;ACnCO,IAAM,kBAAkB,OAAO,aAAsC;AAC1E,QAAM,QAAQ;AAAA,IACZ,OAAO,OAAO,QAAQ,EAAE,IAAI,CAAC,YAAY;AACvC,aAAO,QAAQ,SAAS,EAAE;AAAA,IAC5B,CAAC;AAAA,EACH;AACF;","names":[]}
|