light-di 1.0.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/README.en.md +104 -0
  2. package/README.md +13 -22
  3. package/dist/LightDI/BaseServiceImpl.d.ts +13 -0
  4. package/dist/LightDI/BaseServiceImpl.d.ts.map +1 -0
  5. package/dist/LightDI/BaseServiceImpl.js +31 -0
  6. package/dist/LightDI/BaseServiceImpl.js.map +1 -0
  7. package/dist/LightDI/ILightDIBaseService.d.ts +7 -0
  8. package/dist/LightDI/ILightDIBaseService.d.ts.map +1 -0
  9. package/dist/LightDI/ILightDIBaseService.js +11 -0
  10. package/dist/LightDI/ILightDIBaseService.js.map +1 -0
  11. package/dist/LightDI/ILightDIManager.d.ts +23 -0
  12. package/dist/LightDI/ILightDIManager.d.ts.map +1 -0
  13. package/dist/LightDI/ILightDIManager.js +3 -0
  14. package/dist/LightDI/ILightDIManager.js.map +1 -0
  15. package/dist/LightDI/LightDIManager.d.ts +47 -0
  16. package/dist/LightDI/LightDIManager.d.ts.map +1 -0
  17. package/dist/LightDI/LightDIManager.js +98 -0
  18. package/dist/LightDI/LightDIManager.js.map +1 -0
  19. package/dist/LightDI/ServiceToken.d.ts +15 -0
  20. package/dist/LightDI/ServiceToken.d.ts.map +1 -0
  21. package/dist/LightDI/ServiceToken.js +45 -0
  22. package/dist/LightDI/ServiceToken.js.map +1 -0
  23. package/dist/LightDI/index.d.ts +28 -0
  24. package/dist/LightDI/index.d.ts.map +1 -0
  25. package/dist/LightDI/index.js +43 -0
  26. package/dist/LightDI/index.js.map +1 -0
  27. package/dist/TypeDI/BaseServiceImpl.d.ts +3 -4
  28. package/dist/TypeDI/BaseServiceImpl.d.ts.map +1 -1
  29. package/dist/TypeDI/BaseServiceImpl.js +1 -2
  30. package/dist/TypeDI/BaseServiceImpl.js.map +1 -1
  31. package/dist/TypeDI/ILightDIBaseService.d.ts +7 -0
  32. package/dist/TypeDI/ILightDIBaseService.d.ts.map +1 -0
  33. package/dist/TypeDI/ILightDIBaseService.js +11 -0
  34. package/dist/TypeDI/ILightDIBaseService.js.map +1 -0
  35. package/dist/TypeDI/ILightDIManager.d.ts +23 -0
  36. package/dist/TypeDI/ILightDIManager.d.ts.map +1 -0
  37. package/dist/TypeDI/ILightDIManager.js +3 -0
  38. package/dist/TypeDI/ILightDIManager.js.map +1 -0
  39. package/dist/TypeDI/LightDIManager.d.ts +54 -0
  40. package/dist/TypeDI/LightDIManager.d.ts.map +1 -0
  41. package/dist/TypeDI/LightDIManager.js +132 -0
  42. package/dist/TypeDI/LightDIManager.js.map +1 -0
  43. package/dist/TypeDI/ServiceToken.d.ts +2 -51
  44. package/dist/TypeDI/ServiceToken.d.ts.map +1 -1
  45. package/dist/TypeDI/ServiceToken.js +8 -88
  46. package/dist/TypeDI/ServiceToken.js.map +1 -1
  47. package/dist/TypeDI/index.d.ts +12 -13
  48. package/dist/TypeDI/index.d.ts.map +1 -1
  49. package/dist/TypeDI/index.js +24 -10
  50. package/dist/TypeDI/index.js.map +1 -1
  51. package/dist/src/index.d.ts +5 -7
  52. package/dist/src/index.d.ts.map +1 -1
  53. package/dist/src/index.js +8 -16
  54. package/dist/src/index.js.map +1 -1
  55. package/package.json +6 -10
@@ -1 +1 @@
1
- {"version":3,"file":"BaseServiceImpl.js","sourceRoot":"","sources":["../../TypeDI/BaseServiceImpl.ts"],"names":[],"mappings":";;AAcA,kCAkBC;AAhCD,4BAA0B;AAE1B,iDAAyC;AAEzC;;;;;;;;;GASG;AACH,SAAgB,WAAW,CAA+B,cAAoC;IAC5F,OAAO,UAAiC,MAAS;QAC/C,6BAA6B;QAC7B,IAAA,sBAAO,EAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;QAEhC,SAAS;QACR,MAAc,CAAC,aAAa,GAAG,cAAc,CAAC;QAC9C,MAAc,CAAC,QAAQ,GAAG,cAAc,CAAC;QAE1C,+BAA+B;QAC/B,IAAI,CAAE,MAAc,CAAC,eAAe,EAAE,CAAC;YACpC,MAAc,CAAC,eAAe,GAAG;gBAChC,OAAO,IAAI,MAAM,EAAE,CAAC;YACtB,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"BaseServiceImpl.js","sourceRoot":"","sources":["../../TypeDI/BaseServiceImpl.ts"],"names":[],"mappings":";;AAaA,kCAkBC;AA9BD,iDAAyC;AAEzC;;;;;;;;;GASG;AACH,SAAgB,WAAW,CAAgC,cAAoC;IAC7F,OAAO,UAAiC,MAAS;QAC/C,6BAA6B;QAC7B,IAAA,sBAAO,EAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;QAEhC,SAAS;QACR,MAAc,CAAC,aAAa,GAAG,cAAc,CAAC;QAC9C,MAAc,CAAC,QAAQ,GAAG,cAAc,CAAC;QAE1C,+BAA+B;QAC/B,IAAI,CAAE,MAAc,CAAC,eAAe,EAAE,CAAC;YACpC,MAAc,CAAC,eAAe,GAAG;gBAChC,OAAO,IAAI,MAAM,EAAE,CAAC;YACtB,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * LightDI 基础服务抽象类
3
+ * 所有服务接口都应该继承此类
4
+ */
5
+ export declare abstract class ILightDIBaseService {
6
+ }
7
+ //# sourceMappingURL=ILightDIBaseService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ILightDIBaseService.d.ts","sourceRoot":"","sources":["../../TypeDI/ILightDIBaseService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,8BAAsB,mBAAmB;CAGxC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ILightDIBaseService = void 0;
4
+ /**
5
+ * LightDI 基础服务抽象类
6
+ * 所有服务接口都应该继承此类
7
+ */
8
+ class ILightDIBaseService {
9
+ }
10
+ exports.ILightDIBaseService = ILightDIBaseService;
11
+ //# sourceMappingURL=ILightDIBaseService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ILightDIBaseService.js","sourceRoot":"","sources":["../../TypeDI/ILightDIBaseService.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,MAAsB,mBAAmB;CAGxC;AAHD,kDAGC"}
@@ -0,0 +1,23 @@
1
+ import { ILightDIBaseService } from './ILightDIBaseService';
2
+ /**
3
+ * LightDI 管理器接口
4
+ */
5
+ export interface ILightDIManager {
6
+ /**
7
+ * 绑定服务实现类
8
+ * @param ImplementationClass 服务实现类
9
+ * @param key 可选的服务键,默认为 'default'
10
+ */
11
+ bind<T extends ILightDIBaseService>(ImplementationClass: new () => T, key?: string): void;
12
+ /**
13
+ * 获取服务实例
14
+ * @param InterfaceClass 接口类
15
+ * @param key 可选的服务键,默认为 'default'
16
+ */
17
+ getService<T extends ILightDIBaseService>(InterfaceClass: abstract new () => T, key?: string): T;
18
+ /**
19
+ * 清除所有服务实例(主要用于测试)
20
+ */
21
+ clear(): void;
22
+ }
23
+ //# sourceMappingURL=ILightDIManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ILightDIManager.d.ts","sourceRoot":"","sources":["../../TypeDI/ILightDIManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,IAAI,CAAC,CAAC,SAAS,mBAAmB,EAChC,mBAAmB,EAAE,UAAU,CAAC,EAChC,GAAG,CAAC,EAAE,MAAM,GACX,IAAI,CAAC;IAER;;;;OAIG;IACH,UAAU,CAAC,CAAC,SAAS,mBAAmB,EACtC,cAAc,EAAE,QAAQ,WAAW,CAAC,EACpC,GAAG,CAAC,EAAE,MAAM,GACX,CAAC,CAAC;IAEL;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;CACf"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ILightDIManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ILightDIManager.js","sourceRoot":"","sources":["../../TypeDI/ILightDIManager.ts"],"names":[],"mappings":""}
@@ -0,0 +1,54 @@
1
+ import { ILightDIBaseService } from './ILightDIBaseService';
2
+ import { ILightDIManager } from './ILightDIManager';
3
+ /**
4
+ * LightDI 管理器实现
5
+ * 用于管理依赖注入的服务实例
6
+ */
7
+ export declare class LightDIManagerImpl implements ILightDIManager {
8
+ static readonly DEFAULT_KEY = "default";
9
+ private services;
10
+ private instanceToInterface;
11
+ constructor();
12
+ /**
13
+ * 绑定服务实现类
14
+ * 使用方式: bind<IxxxService>(ImplClass, key?)
15
+ * @param ImplClass 服务实现类
16
+ * @param key 可选的服务键,默认为 DEFAULT_KEY
17
+ */
18
+ bind<T extends ILightDIBaseService>(ImplClass: new () => T, key?: string): void;
19
+ /**
20
+ * 获取服务实例
21
+ * 使用方式: getService(IBizA, key?)
22
+ */
23
+ getService<T extends ILightDIBaseService>(InterfaceClass: abstract new () => T, key?: string): T;
24
+ /**
25
+ * 通过 ManagerProvider 创建实例
26
+ * @param InterfaceClass 接口类
27
+ * @param key 服务键
28
+ * @returns 服务实例或 null
29
+ */
30
+ private createInstanceViaProvider;
31
+ /**
32
+ * 清除所有服务实例(主要用于测试)
33
+ */
34
+ clear(): void;
35
+ }
36
+ /**
37
+ * LightDI 管理器单例
38
+ */
39
+ export declare class LightDIManager {
40
+ private static instance;
41
+ /**
42
+ * 初始化管理器(应在应用启动时调用一次)
43
+ */
44
+ static init(manager?: ILightDIManager): ILightDIManager;
45
+ /**
46
+ * 获取单例实例(如果未初始化则自动初始化)
47
+ */
48
+ static getInstance(): ILightDIManager;
49
+ /**
50
+ * 默认 key 常量
51
+ */
52
+ static readonly DEFAULT_KEY = "default";
53
+ }
54
+ //# sourceMappingURL=LightDIManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LightDIManager.d.ts","sourceRoot":"","sources":["../../TypeDI/LightDIManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;GAGG;AACH,qBAAa,kBAAmB,YAAW,eAAe;IAExD,gBAAuB,WAAW,aAAa;IAG/C,OAAO,CAAC,QAAQ,CAA8D;IAG9E,OAAO,CAAC,mBAAmB,CAA4C;;IAIvE;;;;;OAKG;IACI,IAAI,CAAC,CAAC,SAAS,mBAAmB,EACvC,SAAS,EAAE,UAAU,CAAC,EACtB,GAAG,GAAE,MAAuC,GAC3C,IAAI;IA2BP;;;OAGG;IACI,UAAU,CAAC,CAAC,SAAS,mBAAmB,EAC7C,cAAc,EAAE,QAAQ,WAAW,CAAC,EACpC,GAAG,CAAC,EAAE,MAAM,GACX,CAAC;IAyBJ;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IAiCjC;;OAEG;IACI,KAAK,IAAI,IAAI;CAGrB;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IAEzC;;OAEG;WACW,IAAI,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,eAAe;IAO9D;;OAEG;WACW,WAAW,IAAI,eAAe;IAO5C;;OAEG;IACH,gBAAuB,WAAW,aAAkC;CACrE"}
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LightDIManager = exports.LightDIManagerImpl = void 0;
4
+ const ServiceToken_1 = require("./ServiceToken");
5
+ /**
6
+ * LightDI 管理器实现
7
+ * 用于管理依赖注入的服务实例
8
+ */
9
+ class LightDIManagerImpl {
10
+ constructor() {
11
+ // 使用接口构造函数作为 key,value 是 key-value 映射的 Map
12
+ this.services = new Map();
13
+ // 存储实例到接口类型的映射
14
+ this.instanceToInterface = new WeakMap();
15
+ }
16
+ /**
17
+ * 绑定服务实现类
18
+ * 使用方式: bind<IxxxService>(ImplClass, key?)
19
+ * @param ImplClass 服务实现类
20
+ * @param key 可选的服务键,默认为 DEFAULT_KEY
21
+ */
22
+ bind(ImplClass, key = LightDIManagerImpl.DEFAULT_KEY) {
23
+ // 从实现类中获取接口类型
24
+ const InterfaceClass = (0, ServiceToken_1.getServiceInterface)(ImplClass);
25
+ // 创建实例,优先使用 ManagerProvider
26
+ let instance;
27
+ const StaticImplClass = ImplClass;
28
+ if (StaticImplClass.ManagerProvider &&
29
+ typeof StaticImplClass.ManagerProvider === 'function') {
30
+ instance = StaticImplClass.ManagerProvider();
31
+ }
32
+ else {
33
+ instance = new ImplClass();
34
+ }
35
+ // 存储实例到接口的映射
36
+ this.instanceToInterface.set(instance, InterfaceClass);
37
+ if (!this.services.has(InterfaceClass)) {
38
+ this.services.set(InterfaceClass, new Map());
39
+ }
40
+ const serviceMap = this.services.get(InterfaceClass);
41
+ serviceMap.set(key, instance);
42
+ }
43
+ /**
44
+ * 获取服务实例
45
+ * 使用方式: getService(IBizA, key?)
46
+ */
47
+ getService(InterfaceClass, key) {
48
+ const actualKey = key ?? LightDIManagerImpl.DEFAULT_KEY;
49
+ const serviceMap = this.services.get(InterfaceClass);
50
+ // 如果找到了对应的服务映射
51
+ if (serviceMap) {
52
+ const instance = serviceMap.get(actualKey);
53
+ if (instance) {
54
+ return instance;
55
+ }
56
+ }
57
+ // 如果找不到实例,尝试通过 ManagerProvider 创建
58
+ const instance = this.createInstanceViaProvider(InterfaceClass, actualKey);
59
+ if (instance) {
60
+ return instance;
61
+ }
62
+ // 如果还是找不到,抛出错误
63
+ throw new Error(`Service instance not found for ${InterfaceClass.name} with key "${actualKey}"`);
64
+ }
65
+ /**
66
+ * 通过 ManagerProvider 创建实例
67
+ * @param InterfaceClass 接口类
68
+ * @param key 服务键
69
+ * @returns 服务实例或 null
70
+ */
71
+ createInstanceViaProvider(InterfaceClass, key) {
72
+ // 从实现类获取静态 ManagerProvider 方法
73
+ const ImplementationClass = (0, ServiceToken_1.getImplementationClass)(InterfaceClass);
74
+ if (ImplementationClass) {
75
+ const StaticImplClass = ImplementationClass;
76
+ if (StaticImplClass.ManagerProvider &&
77
+ typeof StaticImplClass.ManagerProvider === 'function') {
78
+ const instance = StaticImplClass.ManagerProvider();
79
+ // 将创建的实例存储到服务映射中(使用 default key)
80
+ if (!this.services.has(InterfaceClass)) {
81
+ this.services.set(InterfaceClass, new Map());
82
+ }
83
+ const serviceMap = this.services.get(InterfaceClass);
84
+ serviceMap.set(LightDIManagerImpl.DEFAULT_KEY, instance);
85
+ // 如果请求的 key 不是 default,也存储一份
86
+ if (key !== LightDIManagerImpl.DEFAULT_KEY) {
87
+ serviceMap.set(key, instance);
88
+ }
89
+ return instance;
90
+ }
91
+ }
92
+ return null;
93
+ }
94
+ /**
95
+ * 清除所有服务实例(主要用于测试)
96
+ */
97
+ clear() {
98
+ this.services.clear();
99
+ }
100
+ }
101
+ exports.LightDIManagerImpl = LightDIManagerImpl;
102
+ // 默认 key
103
+ LightDIManagerImpl.DEFAULT_KEY = 'default';
104
+ /**
105
+ * LightDI 管理器单例
106
+ */
107
+ class LightDIManager {
108
+ /**
109
+ * 初始化管理器(应在应用启动时调用一次)
110
+ */
111
+ static init(manager) {
112
+ if (!LightDIManager.instance) {
113
+ LightDIManager.instance = manager || new LightDIManagerImpl();
114
+ }
115
+ return LightDIManager.instance;
116
+ }
117
+ /**
118
+ * 获取单例实例(如果未初始化则自动初始化)
119
+ */
120
+ static getInstance() {
121
+ if (!LightDIManager.instance) {
122
+ return LightDIManager.init();
123
+ }
124
+ return LightDIManager.instance;
125
+ }
126
+ }
127
+ exports.LightDIManager = LightDIManager;
128
+ /**
129
+ * 默认 key 常量
130
+ */
131
+ LightDIManager.DEFAULT_KEY = LightDIManagerImpl.DEFAULT_KEY;
132
+ //# sourceMappingURL=LightDIManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LightDIManager.js","sourceRoot":"","sources":["../../TypeDI/LightDIManager.ts"],"names":[],"mappings":"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"}
@@ -1,58 +1,9 @@
1
- import 'reflect-metadata';
2
- /**
3
- * 服务 Token,用于标识服务类型
4
- */
5
- export declare class ServiceToken<T extends any> {
6
- readonly interfaceClass: Function;
7
- private static tokenMap;
8
- private constructor();
9
- /**
10
- * 创建或获取服务 Token
11
- * @param interfaceClass 接口类
12
- * @returns ServiceToken 实例
13
- */
14
- static create<T>(interfaceClass: abstract new () => T): ServiceToken<T>;
15
- /**
16
- * 从接口类获取 Token
17
- */
18
- static from<T>(interfaceClass: abstract new () => T): ServiceToken<T>;
19
- }
20
- /**
21
- * 全局服务注册表,用于存储接口类
22
- * 通过接口类的名称来查找(用于支持 getService<IxxxService>(key) 调用)
23
- */
24
- export declare class ServiceRegistry {
25
- private static registry;
26
- private static classToName;
27
- /**
28
- * 注册接口类
29
- */
30
- static register<T>(interfaceClass: abstract new () => T, name?: string): void;
31
- /**
32
- * 通过名称获取接口类
33
- */
34
- static getByName(name: string): Function | undefined;
35
- /**
36
- * 获取接口类的名称
37
- */
38
- static getName(interfaceClass: Function): string | undefined;
39
- }
40
- /**
41
- * 服务接口装饰器
42
- * 用于标记接口类,使其可以通过名称查找
43
- * 使用方式: @ServiceInterface() class IBizA extends ITypeDIBaseService { ... }
44
- */
45
- export declare function ServiceInterface(name?: string): <T extends abstract new () => any>(target: T) => T;
46
- /**
47
- * 获取服务接口类(用于内部实现)
48
- */
49
- export declare function getServiceInterfaceByName(name: string): Function | undefined;
50
1
  /**
51
2
  * 服务装饰器
52
3
  * 用于标记实现类对应的接口
53
4
  * 使用方式: @Service(IBizA)
54
5
  */
55
- export declare function Service<T extends any>(interfaceClass: abstract new () => T): (target: new () => T) => void;
6
+ export declare function Service<T = any>(interfaceClass: abstract new () => T): (target: new () => T) => void;
56
7
  /**
57
8
  * 获取接口类对应的实现类
58
9
  */
@@ -60,5 +11,5 @@ export declare function getImplementationClass(interfaceClass: Function): Functi
60
11
  /**
61
12
  * 获取实现类对应的接口类
62
13
  */
63
- export declare function getServiceInterface(target: Function): Function | undefined;
14
+ export declare function getServiceInterface(target: Function): Function;
64
15
  //# sourceMappingURL=ServiceToken.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceToken.d.ts","sourceRoot":"","sources":["../../TypeDI/ServiceToken.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B;;GAEG;AACH,qBAAa,YAAY,CAAC,CAAC,SAAS,GAAG;aAGD,cAAc,EAAE,QAAQ;IAF5D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA+C;IAEtE,OAAO;IAIP;;;;OAIG;WACW,MAAM,CAAC,CAAC,EAAE,cAAc,EAAE,QAAQ,WAAW,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAO9E;;OAEG;WACW,IAAI,CAAC,CAAC,EAAE,cAAc,EAAE,QAAQ,WAAW,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;CAG7E;AAED;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoC;IAC3D,OAAO,CAAC,MAAM,CAAC,WAAW,CAA4C;IAEtE;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,cAAc,EAAE,QAAQ,WAAW,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAM7E;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAIpD;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS;CAG7D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,IAC3B,CAAC,SAAS,QAAQ,WAAW,GAAG,EAAE,QAAQ,CAAC,KAAG,CAAC,CAIjE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAE5E;AAYD;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,GAAG,EAAE,cAAc,EAAE,QAAQ,WAAW,CAAC,IACxD,QAAQ,UAAU,CAAC,UAUrC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,cAAc,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAErF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAS1E"}
1
+ {"version":3,"file":"ServiceToken.d.ts","sourceRoot":"","sources":["../../TypeDI/ServiceToken.ts"],"names":[],"mappings":"AAUA;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,cAAc,EAAE,QAAQ,WAAW,CAAC,IAClD,QAAQ,UAAU,CAAC,UAOrC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,cAAc,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAErF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAU9D"}
@@ -1,86 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ServiceRegistry = exports.ServiceToken = void 0;
4
- exports.ServiceInterface = ServiceInterface;
5
- exports.getServiceInterfaceByName = getServiceInterfaceByName;
6
3
  exports.Service = Service;
7
4
  exports.getImplementationClass = getImplementationClass;
8
5
  exports.getServiceInterface = getServiceInterface;
9
- require("reflect-metadata");
10
- /**
11
- * 服务 Token,用于标识服务类型
12
- */
13
- class ServiceToken {
14
- constructor(interfaceClass) {
15
- this.interfaceClass = interfaceClass;
16
- ServiceToken.tokenMap.set(interfaceClass, this);
17
- }
18
- /**
19
- * 创建或获取服务 Token
20
- * @param interfaceClass 接口类
21
- * @returns ServiceToken 实例
22
- */
23
- static create(interfaceClass) {
24
- if (ServiceToken.tokenMap.has(interfaceClass)) {
25
- return ServiceToken.tokenMap.get(interfaceClass);
26
- }
27
- return new ServiceToken(interfaceClass);
28
- }
29
- /**
30
- * 从接口类获取 Token
31
- */
32
- static from(interfaceClass) {
33
- return ServiceToken.create(interfaceClass);
34
- }
35
- }
36
- exports.ServiceToken = ServiceToken;
37
- ServiceToken.tokenMap = new Map();
38
- /**
39
- * 全局服务注册表,用于存储接口类
40
- * 通过接口类的名称来查找(用于支持 getService<IxxxService>(key) 调用)
41
- */
42
- class ServiceRegistry {
43
- /**
44
- * 注册接口类
45
- */
46
- static register(interfaceClass, name) {
47
- const className = name || interfaceClass.name;
48
- ServiceRegistry.registry.set(className, interfaceClass);
49
- ServiceRegistry.classToName.set(interfaceClass, className);
50
- }
51
- /**
52
- * 通过名称获取接口类
53
- */
54
- static getByName(name) {
55
- return ServiceRegistry.registry.get(name);
56
- }
57
- /**
58
- * 获取接口类的名称
59
- */
60
- static getName(interfaceClass) {
61
- return ServiceRegistry.classToName.get(interfaceClass) || interfaceClass.name;
62
- }
63
- }
64
- exports.ServiceRegistry = ServiceRegistry;
65
- ServiceRegistry.registry = new Map();
66
- ServiceRegistry.classToName = new WeakMap();
67
- /**
68
- * 服务接口装饰器
69
- * 用于标记接口类,使其可以通过名称查找
70
- * 使用方式: @ServiceInterface() class IBizA extends ITypeDIBaseService { ... }
71
- */
72
- function ServiceInterface(name) {
73
- return function (target) {
74
- ServiceRegistry.register(target, name);
75
- return target;
76
- };
77
- }
78
- /**
79
- * 获取服务接口类(用于内部实现)
80
- */
81
- function getServiceInterfaceByName(name) {
82
- return ServiceRegistry.getByName(name);
83
- }
84
6
  /**
85
7
  * 服务装饰器元数据的 key
86
8
  */
@@ -96,10 +18,8 @@ const interfaceToImplementation = new WeakMap();
96
18
  */
97
19
  function Service(interfaceClass) {
98
20
  return function (target) {
99
- // 将接口类存储到实现类的元数据中
100
- Reflect.defineMetadata(SERVICE_INTERFACE_KEY, interfaceClass, target);
101
- // 同时在实现类上设置静态属性(作为备用方案)
102
- target.__interface__ = interfaceClass;
21
+ // 将接口类存储到实现类的静态属性中
22
+ target[SERVICE_INTERFACE_KEY] = interfaceClass;
103
23
  // 建立接口类到实现类的映射
104
24
  interfaceToImplementation.set(interfaceClass, target);
105
25
  };
@@ -114,12 +34,12 @@ function getImplementationClass(interfaceClass) {
114
34
  * 获取实现类对应的接口类
115
35
  */
116
36
  function getServiceInterface(target) {
117
- // 首先尝试从元数据获取
118
- const interfaceClass = Reflect.getMetadata(SERVICE_INTERFACE_KEY, target);
119
- if (interfaceClass) {
120
- return interfaceClass;
37
+ // 从静态属性获取
38
+ const interfaceClass = target[SERVICE_INTERFACE_KEY];
39
+ if (!interfaceClass) {
40
+ throw new Error(`Cannot find interface class for ${target.name}. ` +
41
+ `Please use @Service(IBizA) decorator on the implementation class.`);
121
42
  }
122
- // 备用方案:从静态属性获取
123
- return target.__interface__;
43
+ return interfaceClass;
124
44
  }
125
45
  //# sourceMappingURL=ServiceToken.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceToken.js","sourceRoot":"","sources":["../../TypeDI/ServiceToken.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ServiceToken.js","sourceRoot":"","sources":["../../TypeDI/ServiceToken.ts"],"names":[],"mappings":";;AAeA,0BAQC;AAKD,wDAEC;AAKD,kDAUC;AA7CD;;GAEG;AACH,MAAM,qBAAqB,GAAG,0BAA0B,CAAC;AAEzD;;GAEG;AACH,MAAM,yBAAyB,GAAG,IAAI,OAAO,EAAsB,CAAC;AAEpE;;;;GAIG;AACH,SAAgB,OAAO,CAAU,cAAoC;IACnE,OAAO,UAAU,MAAmB;QAClC,mBAAmB;QAClB,MAAc,CAAC,qBAAqB,CAAC,GAAG,cAAc,CAAC;QAExD,eAAe;QACf,yBAAyB,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,sBAAsB,CAAC,cAAwB;IAC7D,OAAO,yBAAyB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAC,MAAgB;IAClD,UAAU;IACV,MAAM,cAAc,GAAI,MAAc,CAAC,qBAAqB,CAAC,CAAC;IAC9D,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,mCAAmC,MAAM,CAAC,IAAI,IAAI;YAClD,mEAAmE,CACpE,CAAC;IACJ,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC"}
@@ -1,27 +1,26 @@
1
- import 'reflect-metadata';
2
- import { ITypeDIBaseService } from './ITypeDIBaseService';
1
+ import { ILightDIBaseService } from './ILightDIBaseService';
2
+ /**
3
+ * 导出核心类型和接口
4
+ */
5
+ export { ILightDIBaseService } from './ILightDIBaseService';
6
+ export { LightDIManager } from './LightDIManager';
7
+ export { ServiceImpl } from './BaseServiceImpl';
3
8
  /**
4
9
  * 全局便捷函数
5
- * 提供简洁的 API 来使用 TypeDI
10
+ * 提供简洁的 API 来使用 LightDI
6
11
  */
7
12
  /**
8
- * 绑定服务实例
9
- * @param instance 服务实例
13
+ * 绑定服务实现类
14
+ * @param ImplClass 服务实现类
10
15
  * @param key 可选的服务键,默认为 'default'
11
16
  */
12
- export declare function bind<T extends ITypeDIBaseService>(instance: T, key?: string): void;
17
+ export declare function bind<T extends ILightDIBaseService>(ImplClass: new () => T, key?: string): void;
13
18
  /**
14
19
  * 获取服务实例
15
20
  * @param InterfaceClass 接口类
16
21
  * @param key 可选的服务键,默认为 'default'
17
22
  */
18
- export declare function getService<T extends ITypeDIBaseService>(InterfaceClass: abstract new () => T, key?: string): T;
19
- /**
20
- * 获取服务实例(通过接口名称)
21
- * @param interfaceName 接口名称
22
- * @param key 可选的服务键,默认为 'default'
23
- */
24
- export declare function getService<T extends ITypeDIBaseService>(interfaceName: string, key?: string): T;
23
+ export declare function getService<T extends ILightDIBaseService>(InterfaceClass: abstract new () => T, key?: string): T;
25
24
  /**
26
25
  * 清除所有服务实例(主要用于测试)
27
26
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../TypeDI/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;GAGG;AAEH;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,kBAAkB,EAC/C,QAAQ,EAAE,CAAC,EACX,GAAG,CAAC,EAAE,MAAM,GACX,IAAI,CAEN;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,kBAAkB,EACrD,cAAc,EAAE,QAAQ,WAAW,CAAC,EACpC,GAAG,CAAC,EAAE,MAAM,GACX,CAAC,CAAC;AACL;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,kBAAkB,EACrD,aAAa,EAAE,MAAM,EACrB,GAAG,CAAC,EAAE,MAAM,GACX,CAAC,CAAC;AAQL;;GAEG;AACH,wBAAgB,KAAK,IAAI,IAAI,CAE5B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../TypeDI/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;GAEG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;GAGG;AAEH;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,mBAAmB,EAChD,SAAS,EAAE,UAAU,CAAC,EACtB,GAAG,CAAC,EAAE,MAAM,GACX,IAAI,CAEN;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,mBAAmB,EACtD,cAAc,EAAE,QAAQ,WAAW,CAAC,EACpC,GAAG,CAAC,EAAE,MAAM,GACX,CAAC,CAEH;AAED;;GAEG;AACH,wBAAgB,KAAK,IAAI,IAAI,CAE5B"}
@@ -1,29 +1,43 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ServiceImpl = exports.LightDIManager = exports.ILightDIBaseService = void 0;
3
4
  exports.bind = bind;
4
5
  exports.getService = getService;
5
6
  exports.clear = clear;
6
- require("reflect-metadata");
7
- const TypeDIManager_1 = require("./TypeDIManager");
7
+ const LightDIManager_1 = require("./LightDIManager");
8
+ /**
9
+ * 导出核心类型和接口
10
+ */
11
+ var ILightDIBaseService_1 = require("./ILightDIBaseService");
12
+ Object.defineProperty(exports, "ILightDIBaseService", { enumerable: true, get: function () { return ILightDIBaseService_1.ILightDIBaseService; } });
13
+ var LightDIManager_2 = require("./LightDIManager");
14
+ Object.defineProperty(exports, "LightDIManager", { enumerable: true, get: function () { return LightDIManager_2.LightDIManager; } });
15
+ var BaseServiceImpl_1 = require("./BaseServiceImpl");
16
+ Object.defineProperty(exports, "ServiceImpl", { enumerable: true, get: function () { return BaseServiceImpl_1.ServiceImpl; } });
8
17
  /**
9
18
  * 全局便捷函数
10
- * 提供简洁的 API 来使用 TypeDI
19
+ * 提供简洁的 API 来使用 LightDI
11
20
  */
12
21
  /**
13
- * 绑定服务实例
14
- * @param instance 服务实例
22
+ * 绑定服务实现类
23
+ * @param ImplClass 服务实现类
15
24
  * @param key 可选的服务键,默认为 'default'
16
25
  */
17
- function bind(instance, key) {
18
- TypeDIManager_1.TypeDIManager.getInstance().bind(instance, key);
26
+ function bind(ImplClass, key) {
27
+ LightDIManager_1.LightDIManager.getInstance().bind(ImplClass, key);
19
28
  }
20
- function getService(InterfaceClassOrName, key) {
21
- return TypeDIManager_1.TypeDIManager.getInstance().getService(InterfaceClassOrName, key);
29
+ /**
30
+ * 获取服务实例
31
+ * @param InterfaceClass 接口类
32
+ * @param key 可选的服务键,默认为 'default'
33
+ */
34
+ function getService(InterfaceClass, key) {
35
+ return LightDIManager_1.LightDIManager.getInstance().getService(InterfaceClass, key);
22
36
  }
23
37
  /**
24
38
  * 清除所有服务实例(主要用于测试)
25
39
  */
26
40
  function clear() {
27
- TypeDIManager_1.TypeDIManager.getInstance().clear();
41
+ LightDIManager_1.LightDIManager.getInstance().clear();
28
42
  }
29
43
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../TypeDI/index.ts"],"names":[],"mappings":";;AAcA,oBAKC;AAoBD,gCAKC;AAKD,sBAEC;AAnDD,4BAA0B;AAC1B,mDAAgD;AAGhD;;;GAGG;AAEH;;;;GAIG;AACH,SAAgB,IAAI,CAClB,QAAW,EACX,GAAY;IAEZ,6BAAa,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAClD,CAAC;AAoBD,SAAgB,UAAU,CACxB,oBAAqD,EACrD,GAAY;IAEZ,OAAO,6BAAa,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,oBAA2B,EAAE,GAAG,CAAC,CAAC;AAClF,CAAC;AAED;;GAEG;AACH,SAAgB,KAAK;IACnB,6BAAa,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../TypeDI/index.ts"],"names":[],"mappings":";;;AAoBA,oBAKC;AAOD,gCAKC;AAKD,sBAEC;AA5CD,qDAAkD;AAGlD;;GAEG;AACH,6DAA4D;AAAnD,0HAAA,mBAAmB,OAAA;AAC5B,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,qDAAgD;AAAvC,8GAAA,WAAW,OAAA;AAEpB;;;GAGG;AAEH;;;;GAIG;AACH,SAAgB,IAAI,CAClB,SAAsB,EACtB,GAAY;IAEZ,+BAAc,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACpD,CAAC;AAED;;;;GAIG;AACH,SAAgB,UAAU,CACxB,cAAoC,EACpC,GAAY;IAEZ,OAAO,+BAAc,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;AACtE,CAAC;AAED;;GAEG;AACH,SAAgB,KAAK;IACnB,+BAAc,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC;AACvC,CAAC"}
@@ -2,11 +2,9 @@
2
2
  * LightDI - TypeScript 依赖注入框架
3
3
  * 主入口文件,导出所有公共 API
4
4
  */
5
- import 'reflect-metadata';
6
- export { ITypeDIBaseService } from '../TypeDI/ITypeDIBaseService';
7
- export { ITypeDIManager } from '../TypeDI/ITypeDIManager';
8
- export { TypeDIManager, TypeDIManagerImpl } from '../TypeDI/TypeDIManager';
9
- export { ServiceInterface, Service, ServiceToken, getServiceInterface, getServiceInterfaceByName } from '../TypeDI/ServiceToken';
10
- export { ServiceImpl } from '../TypeDI/BaseServiceImpl';
11
- export { bind, getService, clear } from '../TypeDI/index';
5
+ export { ILightDIBaseService } from '../LightDI/ILightDIBaseService';
6
+ export { ILightDIManager } from '../LightDI/ILightDIManager';
7
+ export { LightDIManager, LightDIManagerImpl } from '../LightDI/LightDIManager';
8
+ export { ServiceImpl } from '../LightDI/BaseServiceImpl';
9
+ export { bind, getService, clear } from '../LightDI/index';
12
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,kBAAkB,CAAC;AAG1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG3E,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACjI,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGxD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG7D,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAG/E,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGzD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/src/index.js CHANGED
@@ -4,27 +4,19 @@
4
4
  * 主入口文件,导出所有公共 API
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.clear = exports.getService = exports.bind = exports.ServiceImpl = exports.getServiceInterfaceByName = exports.getServiceInterface = exports.ServiceToken = exports.Service = exports.ServiceInterface = exports.TypeDIManagerImpl = exports.TypeDIManager = exports.ITypeDIBaseService = void 0;
8
- // 导入 reflect-metadata(必须在最前面)
9
- require("reflect-metadata");
7
+ exports.clear = exports.getService = exports.bind = exports.ServiceImpl = exports.LightDIManagerImpl = exports.LightDIManager = exports.ILightDIBaseService = void 0;
10
8
  // 导出核心类型和接口
11
- var ITypeDIBaseService_1 = require("../TypeDI/ITypeDIBaseService");
12
- Object.defineProperty(exports, "ITypeDIBaseService", { enumerable: true, get: function () { return ITypeDIBaseService_1.ITypeDIBaseService; } });
9
+ var ILightDIBaseService_1 = require("../LightDI/ILightDIBaseService");
10
+ Object.defineProperty(exports, "ILightDIBaseService", { enumerable: true, get: function () { return ILightDIBaseService_1.ILightDIBaseService; } });
13
11
  // 导出管理器
14
- var TypeDIManager_1 = require("../TypeDI/TypeDIManager");
15
- Object.defineProperty(exports, "TypeDIManager", { enumerable: true, get: function () { return TypeDIManager_1.TypeDIManager; } });
16
- Object.defineProperty(exports, "TypeDIManagerImpl", { enumerable: true, get: function () { return TypeDIManager_1.TypeDIManagerImpl; } });
12
+ var LightDIManager_1 = require("../LightDI/LightDIManager");
13
+ Object.defineProperty(exports, "LightDIManager", { enumerable: true, get: function () { return LightDIManager_1.LightDIManager; } });
14
+ Object.defineProperty(exports, "LightDIManagerImpl", { enumerable: true, get: function () { return LightDIManager_1.LightDIManagerImpl; } });
17
15
  // 导出装饰器和工具函数
18
- var ServiceToken_1 = require("../TypeDI/ServiceToken");
19
- Object.defineProperty(exports, "ServiceInterface", { enumerable: true, get: function () { return ServiceToken_1.ServiceInterface; } });
20
- Object.defineProperty(exports, "Service", { enumerable: true, get: function () { return ServiceToken_1.Service; } });
21
- Object.defineProperty(exports, "ServiceToken", { enumerable: true, get: function () { return ServiceToken_1.ServiceToken; } });
22
- Object.defineProperty(exports, "getServiceInterface", { enumerable: true, get: function () { return ServiceToken_1.getServiceInterface; } });
23
- Object.defineProperty(exports, "getServiceInterfaceByName", { enumerable: true, get: function () { return ServiceToken_1.getServiceInterfaceByName; } });
24
- var BaseServiceImpl_1 = require("../TypeDI/BaseServiceImpl");
16
+ var BaseServiceImpl_1 = require("../LightDI/BaseServiceImpl");
25
17
  Object.defineProperty(exports, "ServiceImpl", { enumerable: true, get: function () { return BaseServiceImpl_1.ServiceImpl; } });
26
18
  // 导出全局便捷函数
27
- var index_1 = require("../TypeDI/index");
19
+ var index_1 = require("../LightDI/index");
28
20
  Object.defineProperty(exports, "bind", { enumerable: true, get: function () { return index_1.bind; } });
29
21
  Object.defineProperty(exports, "getService", { enumerable: true, get: function () { return index_1.getService; } });
30
22
  Object.defineProperty(exports, "clear", { enumerable: true, get: function () { return index_1.clear; } });