plugin-tls 3.1.0 → 3.3.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.
Files changed (33) hide show
  1. package/dist/index.js +285 -185
  2. package/dist/index.umd.cjs +1 -1
  3. package/dist/options/options-plugin-host/tier-mode-options/createTierModeOptionsPluginHost.d.ts +4 -3
  4. package/dist/options/options-plugin-host/tier-mode-options/createTierModeOptionsPluginHost.d.ts.map +1 -1
  5. package/dist/options/options-plugin-host/tier-options/createTierOptionsPluginHost.d.ts +4 -3
  6. package/dist/options/options-plugin-host/tier-options/createTierOptionsPluginHost.d.ts.map +1 -1
  7. package/dist/plugin-host/PluginHost.d.ts +10 -4
  8. package/dist/plugin-host/PluginHost.d.ts.map +1 -1
  9. package/dist/plugin-host/PluginHostEventEmitter.d.ts +10 -4
  10. package/dist/plugin-host/PluginHostEventEmitter.d.ts.map +1 -1
  11. package/dist/plugin-host/PluginHostEventTarget.d.ts +10 -4
  12. package/dist/plugin-host/PluginHostEventTarget.d.ts.map +1 -1
  13. package/dist/plugin-host/createPluginHost.d.ts +10 -4
  14. package/dist/plugin-host/createPluginHost.d.ts.map +1 -1
  15. package/dist/plugin-host/decorator.d.ts +16 -10
  16. package/dist/plugin-host/decorator.d.ts.map +1 -1
  17. package/dist/plugin-host/type.d.ts +10 -4
  18. package/dist/plugin-host/type.d.ts.map +1 -1
  19. package/dist/plugin-manager/ExtendManager.d.ts +13 -4
  20. package/dist/plugin-manager/ExtendManager.d.ts.map +1 -1
  21. package/dist/plugin-manager/IExtend.d.ts +19 -26
  22. package/dist/plugin-manager/IExtend.d.ts.map +1 -1
  23. package/dist/plugin-manager/PluginExtendManager.d.ts +10 -3
  24. package/dist/plugin-manager/PluginExtendManager.d.ts.map +1 -1
  25. package/dist/plugin-manager/PluginManager.d.ts +6 -0
  26. package/dist/plugin-manager/PluginManager.d.ts.map +1 -1
  27. package/dist/plugin-manager/extend.d.ts +84 -0
  28. package/dist/plugin-manager/extend.d.ts.map +1 -0
  29. package/dist/plugin-manager/index.d.ts +1 -0
  30. package/dist/plugin-manager/index.d.ts.map +1 -1
  31. package/dist/plugin-manager/mixin.d.ts +12 -3
  32. package/dist/plugin-manager/mixin.d.ts.map +1 -1
  33. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"IExtend.d.ts","sourceRoot":"","sources":["../../src/plugin-manager/IExtend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAC,SAAS,EAAE,MAAM,UAAU,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,WAAW,OAAO,CAAC,SAAS,SAAS,mBAAmB;IAC1D;;;OAGG;IACH,QAAQ,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,EAAG,GAAG,IAAI,EAAC,qBAAqB,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;IAEzF;;;;OAIG;IACH,MAAM,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,EAAC,GAAG,IAAI,EAAC,GAAG,GAAG,GAAG,CAAC;IAExD;;;OAGG;IACH,SAAS,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;CAClD;AAMD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,aAAa,EAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAU1F;AASD;;;;;;;;GAQG;AACH,MAAM,MAAM,aAAa,CAAC,SAAS,SAAS,mBAAmB,EAAE,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAMrI;;;;;;;;GAQG;AACH,MAAM,MAAM,eAAe,CAAC,SAAS,SAAS,mBAAmB,EAAE,CAAC,IAAI,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,EAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC;AAQhJ;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,SAAS,SAAS,mBAAmB,EAAE,CAAC,EAAG,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,CAE3J"}
1
+ {"version":3,"file":"IExtend.d.ts","sourceRoot":"","sources":["../../src/plugin-manager/IExtend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,UAAU,CAAC;AAE3D;;;;;;GAMG;AACH,MAAM,WAAW,OAAO,CAAC,SAAS,SAAS,mBAAmB;IAC1D;;;OAGG;IACH,QAAQ,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,EAAG,GAAG,IAAI,EAAC,qBAAqB,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;IAEzF;;;;OAIG;IACH,MAAM,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,EAAC,GAAG,IAAI,EAAC,GAAG,GAAG,GAAG,CAAC;IAExD;;;OAGG;IACH,SAAS,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;CAClD;AAID;;;;GAIG;AACH,MAAM,WAAW,UAAU,CAAC,SAAS,SAAS,mBAAmB,CAAG,SAAQ,OAAO,CAAC,SAAS,CAAC;IAC5F,CAAC,GAAG,EAAG,WAAW,GAAG,GAAG,CAAC;CAC1B;AAQD;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AAG/D;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,aAAa,EAAC,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAUrF;AAWD;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,CAAC,SAAS,SAAS,mBAAmB,EAAE,GAAG,IAAI,WAAW,CAAC,SAAS,EAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import type { AnyFunction, AbstractConstructor, ClassType } from "type-tls";
2
2
  import { Destroyable } from "@gby/destroyable";
3
- import { type ExtendOptions, type IExtend } from "./IExtend";
3
+ import { type IExtend, type IExtendHostMembers, type IAnyExtend } from "./IExtend";
4
4
  import { type IPlugin, type PluginUseArgs, type PluginUseReturn } from "./IPlugin";
5
+ import type { ExtendOptions } from "./extend";
5
6
  /**
6
7
  * 用于标识是扩展的标记
7
8
  */
@@ -28,6 +29,12 @@ export declare class PluginExtendManager<Host, HostClass extends AbstractConstru
28
29
  */
29
30
  constructor(host?: HostClass);
30
31
  destroyThis(): any;
32
+ /**
33
+ * 是否注册了插件 或 扩展
34
+ * @param plugin - 插件 或 扩展
35
+ * @returns 是否注册了插件 或 扩展
36
+ */
37
+ hasUsed(plugin: any): boolean;
31
38
  /**
32
39
  * 判断一个对象是否是插件
33
40
  * @param target
@@ -39,7 +46,7 @@ export declare class PluginExtendManager<Host, HostClass extends AbstractConstru
39
46
  * @param ext - 插件
40
47
  * @param args - 传递给插件的选项
41
48
  */
42
- useExtend<E>(ext: ExtendOptions<HostClass, E>): boolean;
49
+ useExtend<E extends IAnyExtend<HostClass>>(ext: ExtendOptions<HostClass, E>): IExtendHostMembers<E>;
43
50
  /**
44
51
  * 插件宿主实例的注册插件的方法
45
52
  *
@@ -47,7 +54,7 @@ export declare class PluginExtendManager<Host, HostClass extends AbstractConstru
47
54
  * 会调用每个插件的 {@link IExtend.use } 方法
48
55
  * @param hostInst - 插件宿主的新实例
49
56
  */
50
- instUseExtend<E>(hostInst: InstanceType<HostClass>, ext: ExtendOptions<HostClass, E>, ...args: ConstructorParameters<HostClass>): boolean;
57
+ instUseExtend<E extends IAnyExtend<HostClass>>(hostInst: InstanceType<HostClass>, ext: ExtendOptions<HostClass, E>, ...args: ConstructorParameters<HostClass>): IExtendHostMembers<E>;
51
58
  /**
52
59
  * 使用插件、注册插件
53
60
  * @param plugin - 插件
@@ -1 +1 @@
1
- {"version":3,"file":"PluginExtendManager.d.ts","sourceRoot":"","sources":["../../src/plugin-manager/PluginExtendManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAC,SAAS,EAAE,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,OAAO,EAAyB,MAAM,WAAW,CAAC;AACpF,OAAO,EAAY,KAAK,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAI7F;;GAEG;AACH,eAAO,MAAM,UAAU,eAAmB,CAAC;AAG3C;;;;;;;GAOG;AACH,qBAAa,mBAAmB,CAAC,IAAI,EAAC,SAAS,SAAS,mBAAmB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAE,SAAQ,WAAW;IAEpH;;OAEG;IACH,IAAI,EAAG,SAAS,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,OAAO,0DAA6D;IAG7E;;OAEG;gBACS,IAAI,CAAC,EAAE,SAAS;IAOnB,WAAW;IAMpB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,OAAO,CAAC,IAAI,EAAC,SAAS,CAAC;IAQxD;;;;OAIG;IACH,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC;IAQ7C;;;;;;OAMG;IACH,aAAa,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,EAAG,GAAG,IAAI,EAAC,qBAAqB,CAAC,SAAS,CAAC;IAQ/H;;;;OAIG;IACH,SAAS,CAAC,CAAC,SAAS,OAAO,CAAC,IAAI,EAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,GAAG,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAQrG;;;;;;OAMG;IACH,aAAa,CAAC,CAAC,SAAS,OAAO,CAAC,IAAI,EAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAU7H;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAG,GAAG,IAAI,EAAC,GAAG;IAYrC;;;;;;;OAOG;IACH,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAC,GAAG,IAAI,EAAC,GAAG;IAYjC;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,EAAE,IAAI;CAa3B"}
1
+ {"version":3,"file":"PluginExtendManager.d.ts","sourceRoot":"","sources":["../../src/plugin-manager/PluginExtendManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAC,SAAS,EAAE,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,UAAU,EAAyB,MAAM,WAAW,CAAC;AAC1G,OAAO,EAAY,KAAK,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAE7F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG9C;;GAEG;AACH,eAAO,MAAM,UAAU,eAAmB,CAAC;AAG3C;;;;;;;GAOG;AACH,qBAAa,mBAAmB,CAAC,IAAI,EAAC,SAAS,SAAS,mBAAmB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAE,SAAQ,WAAW;IAEpH;;OAEG;IACH,IAAI,EAAG,SAAS,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,OAAO,0DAA6D;IAG7E;;OAEG;gBACS,IAAI,CAAC,EAAE,SAAS;IAOnB,WAAW;IAMpB;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,GAAG;IAKnB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,OAAO,CAAC,IAAI,EAAC,SAAS,CAAC;IAQxD;;;;OAIG;IACH,SAAS,CAAC,CAAC,SAAS,UAAU,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,GAAE,kBAAkB,CAAC,CAAC,CAAC;IAQlG;;;;;;OAMG;IACH,aAAa,CAAC,CAAC,SAAS,UAAU,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,EAAG,GAAG,IAAI,EAAC,qBAAqB,CAAC,SAAS,CAAC,GAAE,kBAAkB,CAAC,CAAC,CAAC;IAQpL;;;;OAIG;IACH,SAAS,CAAC,CAAC,SAAS,OAAO,CAAC,IAAI,EAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,GAAG,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAQrG;;;;;;OAMG;IACH,aAAa,CAAC,CAAC,SAAS,OAAO,CAAC,IAAI,EAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAU7H;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAG,GAAG,IAAI,EAAC,GAAG;IAYrC;;;;;;;OAOG;IACH,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAC,GAAG,IAAI,EAAC,GAAG;IAYjC;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,EAAE,IAAI;CAa3B"}
@@ -22,6 +22,12 @@ export declare class PluginManager<Host, HostClass = AbstractClassType<Host>> ex
22
22
  */
23
23
  constructor(host?: HostClass);
24
24
  destroyThis(): any;
25
+ /**
26
+ * 是否注册了插件
27
+ * @param plugin - 插件
28
+ * @returns 是否注册了插件
29
+ */
30
+ hasUsed(plugin: any): boolean;
25
31
  /**
26
32
  * 使用插件、注册插件
27
33
  * @param plugin - 插件
@@ -1 +1 @@
1
- {"version":3,"file":"PluginManager.d.ts","sourceRoot":"","sources":["../../src/plugin-manager/PluginManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C;;;;;;GAMG;AACH,qBAAa,aAAa,CAAC,IAAI,EAAC,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAE,SAAQ,WAAW;IAEpF;;OAEG;IACH,IAAI,EAAG,SAAS,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,OAAO,qCAA0C;IAG1D;;OAEG;gBACS,IAAI,CAAC,EAAE,SAAS;IAOnB,WAAW;IAMpB;;;;OAIG;IACH,GAAG,CAAC,CAAC,SAAS,OAAO,CAAC,IAAI,EAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,GAAG,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAQ/F;;;;;;OAMG;IACH,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,IAAI,EAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAQvH;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAG,GAAG,IAAI,EAAC,GAAG;IAWrC;;;;;;;OAOG;IACH,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAC,GAAG,IAAI,EAAC,GAAG;IAWjC;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,EAAE,IAAI;CAY3B"}
1
+ {"version":3,"file":"PluginManager.d.ts","sourceRoot":"","sources":["../../src/plugin-manager/PluginManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C;;;;;;GAMG;AACH,qBAAa,aAAa,CAAC,IAAI,EAAC,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAE,SAAQ,WAAW;IAEpF;;OAEG;IACH,IAAI,EAAG,SAAS,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,OAAO,qCAA0C;IAG1D;;OAEG;gBACS,IAAI,CAAC,EAAE,SAAS;IAOnB,WAAW;IAOpB;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,GAAG;IAMnB;;;;OAIG;IACH,GAAG,CAAC,CAAC,SAAS,OAAO,CAAC,IAAI,EAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,GAAG,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAQ/F;;;;;;OAMG;IACH,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,IAAI,EAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAQvH;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAG,GAAG,IAAI,EAAC,GAAG;IAWrC;;;;;;;OAOG;IACH,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAC,GAAG,IAAI,EAAC,GAAG;IAWjC;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,EAAE,IAAI;CAY3B"}
@@ -0,0 +1,84 @@
1
+ import type { AbstractConstructor, ClassType } from "type-tls";
2
+ /**
3
+ * 用于扩展类的选项类型
4
+ * @remarks
5
+ * 它会将 Ext 中的方法的 this 指向 HostClass的实例 & Ext,而不是 Ext 本身。
6
+ *
7
+ * @param HostClass - 扩展的目标类类型
8
+ * @param Ext - 扩展的类型
9
+ */
10
+ export type ExtendOptions<HostClass extends AbstractConstructor, Ext> = Ext & ThisType<InstanceType<HostClass> & Ext>;
11
+ /**
12
+ * 定义类扩展后的类型
13
+ * @remarks
14
+ * 它返回 对 类 HostClass 的进行扩展后的类的类型
15
+ *
16
+ * @param HostClass - 扩展的目标类类型
17
+ * @param Ext - 扩展的类型
18
+ */
19
+ export type ExtendClass<HostClass extends AbstractConstructor, Ext> = Omit<HostClass, "prototype"> & ClassType<InstanceType<HostClass> & Ext, ConstructorParameters<HostClass>>;
20
+ /**
21
+ * 定义扩展的类型便利函数
22
+ *
23
+ * @remarks
24
+ * 它会更改 ext 中方法的this指向为 cla & ext,不会真的执行扩展操作。
25
+ *
26
+ * @param hostClass - 扩展的目标,用作 this 的类型
27
+ * @param ext - 描述扩展内容的对象,会自动更改其this的类型
28
+ * @returns 返回注入了 this 类型的 ext 对象本身
29
+ */
30
+ export declare function defineExtend<HostClass extends AbstractConstructor, Ext>(hostClass: HostClass, ext: ExtendOptions<HostClass, Ext>): ExtendOptions<HostClass, Ext>;
31
+ /**
32
+ * 创建定义扩展的类型便利函数
33
+ *
34
+ * @remarks
35
+ * 它返回的便利函数的功能与 {@link defineExtend} 的功能一样,唯一区别是不再需要接收 hostClass 参数了
36
+ *
37
+ * @returns 可以用于 定义扩展的 类型便利函数
38
+ */
39
+ export declare function createDefineExtend<HostClass extends AbstractConstructor>(): <Ext>(ext: ExtendOptions<HostClass, Ext>) => ExtendOptions<HostClass, Ext>;
40
+ /**
41
+ * 扩展目标
42
+ *
43
+ * @remarks
44
+ * 与 {@link defineExtend} 的区别是:`targetExtend` 会执行对 cla 的扩展操作,而 {@link defineExtend} 不会
45
+ *
46
+ *
47
+ * @param cla - 扩展的目标,也用作 this 的类型
48
+ * @param ext - 扩展描述对象,会自动更改其this的类型
49
+ * @returns 返回注入了 this 类型的 ext 对象本身
50
+ */
51
+ export declare function targetExtend<C extends AbstractConstructor, Ext>(cla: C, ext: ExtendOptions<C, Ext>): ExtendOptions<C, Ext>;
52
+ /**
53
+ * 创建用于扩展目标的便捷函数
54
+ *
55
+ * @remarks
56
+ * 它返回的便利函数的功能与 {@link targetExtend} 的功能一样,唯一区别是不再需要接收 cla 参数了
57
+ *
58
+ * @param cla - 扩展的目标,也用作 this 的类型
59
+ * @returns 可以用于 扩展目标 的便利函数
60
+ */
61
+ export declare function createTargetExtend<C extends AbstractConstructor>(cla: C): <E>(ext: ExtendOptions<C, E>) => ExtendOptions<C, E>;
62
+ /**
63
+ * 扩展目标
64
+ *
65
+ * @remarks
66
+ * 会执行对 CEarth 类的扩展操作。
67
+ * 与 {@link targetExtend} 的区别仅仅是返回类型不一样。
68
+ *
69
+ * @param cla - 扩展的目标,也用作 this 的类型
70
+ * @param ext - 扩展对象,会自动更改其this的类型
71
+ * @returns 返回扩展后的 cla 对象
72
+ */
73
+ export declare function extendTarget<C extends AbstractConstructor, E>(cla: C, ext: ExtendOptions<C, E>): ExtendClass<C, E>;
74
+ /**
75
+ * 创建用于扩展目标工具函数
76
+ *
77
+ * @remarks
78
+ * 它返回的便利函数的功能与 {@link extendTarget} 的功能一样,唯一区别是不再需要接收 cla 参数了
79
+ *
80
+ * @param cla - 扩展的目标,也用作 this 的类型
81
+ * @returns 可以用于 扩展目标 的便利函数
82
+ */
83
+ export declare function createExtendTarget<C extends ClassType>(cla: C): <E>(ext: ExtendOptions<C, E>) => ExtendClass<C, E>;
84
+ //# sourceMappingURL=extend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extend.d.ts","sourceRoot":"","sources":["../../src/plugin-manager/extend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAM/D;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,CAAC,SAAS,SAAS,mBAAmB,EAAE,GAAG,IAAI,GAAG,GAAG,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC;AAKtH;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,CAAC,SAAS,SAAS,mBAAmB,EAAE,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,GAAG,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC;AAMhL;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,SAAS,SAAS,mBAAmB,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,CAEhK;AAID;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,SAAS,mBAAmB,MACvC,GAAG,EAAE,KAAK,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,KAAG,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,CAGvG;AAOD;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,mBAAmB,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAG1H;AAMD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,mBAAmB,EAAE,GAAG,EAAE,CAAC,IACxC,CAAC,EAAE,KAAK,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAIhF;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,mBAAmB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAGlH;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,SAAS,EAAE,GAAG,EAAE,CAAC,IAC7B,CAAC,EAAG,KAAK,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,KAAI,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAIjF"}
@@ -1,4 +1,5 @@
1
1
  export * from "./mixin";
2
+ export * from "./extend";
2
3
  export * from "./IExtend";
3
4
  export * from "./IPlugin";
4
5
  export * from "./PluginManager";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin-manager/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin-manager/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA"}
@@ -31,6 +31,15 @@ export declare function mixin<T, S1, S2, S3, S4>(target: T, source1: S1, source2
31
31
  * @returns 混入后的 target
32
32
  */
33
33
  export declare function mixin(target: any, ...sources: any[]): any;
34
+ /**
35
+ * 用于混合对象的选项类型
36
+ * @remarks
37
+ * 它会将 Ext 中的方法的 this 指向 Obj & Ext,而不是 Obj 本身。
38
+ *
39
+ * @param T - 混合的目标类类型
40
+ * @param M - 混合的选项类型
41
+ */
42
+ export type MixinOptions<T, M> = M & ThisType<T & M>;
34
43
  /**
35
44
  * 定义混合的类型便利函数
36
45
  *
@@ -41,7 +50,7 @@ export declare function mixin(target: any, ...sources: any[]): any;
41
50
  * @param mixin - 混合对象,会自动更改其this的类型
42
51
  * @returns 返回注入了 this 类型的 mixin 对象本身
43
52
  */
44
- export declare function defineMixin<T, M>(target: T, mixin: M & ThisType<T & M>): M & ThisType<T & M>;
53
+ export declare function defineMixin<T, M>(target: T, mixin: MixinOptions<T, M>): MixinOptions<T, M>;
45
54
  /**
46
55
  * 创建定义混合的类型便利函数
47
56
  *
@@ -50,7 +59,7 @@ export declare function defineMixin<T, M>(target: T, mixin: M & ThisType<T & M>)
50
59
  *
51
60
  * @returns 可以用于 定义混合的 类型便利函数
52
61
  */
53
- export declare function createDefineMixin<T>(): <M>(target: T, mixin: M & ThisType<T & M>) => M & ThisType<T & M>;
62
+ export declare function createDefineMixin<T>(): <M>(mixin: MixinOptions<T, M>) => MixinOptions<T, M>;
54
63
  /**
55
64
  * 混合目标
56
65
  *
@@ -62,7 +71,7 @@ export declare function createDefineMixin<T>(): <M>(target: T, mixin: M & ThisTy
62
71
  * @param m - 混合对象,会自动更改其this的类型
63
72
  * @returns 返回注入了 this 类型的 mixin 对象本身
64
73
  */
65
- export declare function targetMixin<T, M>(target: T, m: M & ThisType<T & M>): M & ThisType<T & M>;
74
+ export declare function targetMixin<T, M>(target: T, m: MixinOptions<T, M>): MixinOptions<T, M>;
66
75
  /**
67
76
  * 创建用于混合目标的便捷函数
68
77
  *
@@ -1 +1 @@
1
- {"version":3,"file":"mixin.d.ts","sourceRoot":"","sources":["../../src/plugin-manager/mixin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mixin.d.ts","sourceRoot":"","sources":["../../src/plugin-manager/mixin.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "plugin-tls",
3
- "version": "3.1.0",
3
+ "version": "3.3.1",
4
4
  "description": "plugin-tls 是插件系统相应的工具,可快速地让任何模块具备插件机制",
5
5
  "main": "./dist/index.umd.cjs",
6
6
  "module": "./dist/index.js",
@@ -53,9 +53,9 @@
53
53
  },
54
54
  "dependencies": {
55
55
  "@gby/destroyable": "^3.6.0",
56
- "com-tools": "^2.21.0",
56
+ "com-tools": "^2.21.1",
57
57
  "deepmerge-ts": "^7.1.5",
58
- "type-tls": "^3.10.0"
58
+ "type-tls": "^3.11.0"
59
59
  },
60
60
  "scripts": {
61
61
  "serve": "vite",