plugin-tls 3.0.0 → 3.1.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 (123) hide show
  1. package/dist/index.d.ts +1 -4
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +632 -400
  4. package/dist/index.umd.cjs +1 -1
  5. package/dist/options/index.d.ts +4 -0
  6. package/dist/options/index.d.ts.map +1 -0
  7. package/dist/options/options-manager/ModeOptions.d.ts.map +1 -0
  8. package/dist/options/options-manager/OptionsManager.d.ts.map +1 -0
  9. package/dist/options/options-manager/TierModeOptions.d.ts.map +1 -0
  10. package/dist/options/options-manager/TierOptions.d.ts.map +1 -0
  11. package/dist/options/options-manager/defaultOptions.d.ts.map +1 -0
  12. package/dist/options/options-manager/index.d.ts.map +1 -0
  13. package/dist/options/options-manager/tools.d.ts.map +1 -0
  14. package/dist/options/options-plugin-host/index.d.ts.map +1 -0
  15. package/dist/{options-plugin-host → options/options-plugin-host}/tier-mode-options/TierModeOptionsPluginHost.d.ts +3 -3
  16. package/dist/options/options-plugin-host/tier-mode-options/TierModeOptionsPluginHost.d.ts.map +1 -0
  17. package/dist/{options-plugin-host → options/options-plugin-host}/tier-mode-options/TierModeOptionsPluginHostEventEmitter.d.ts +4 -4
  18. package/dist/options/options-plugin-host/tier-mode-options/TierModeOptionsPluginHostEventEmitter.d.ts.map +1 -0
  19. package/dist/{options-plugin-host → options/options-plugin-host}/tier-mode-options/TierModeOptionsPluginHostEventTarget.d.ts +3 -3
  20. package/dist/options/options-plugin-host/tier-mode-options/TierModeOptionsPluginHostEventTarget.d.ts.map +1 -0
  21. package/dist/{options-plugin-host → options/options-plugin-host}/tier-mode-options/createTierModeOptionsPluginHost.d.ts +12 -10
  22. package/dist/options/options-plugin-host/tier-mode-options/createTierModeOptionsPluginHost.d.ts.map +1 -0
  23. package/dist/options/options-plugin-host/tier-mode-options/index.d.ts.map +1 -0
  24. package/dist/options/options-plugin-host/tier-mode-options/type.d.ts.map +1 -0
  25. package/dist/{options-plugin-host → options/options-plugin-host}/tier-options/TierOptionsPluginHost.d.ts +3 -3
  26. package/dist/options/options-plugin-host/tier-options/TierOptionsPluginHost.d.ts.map +1 -0
  27. package/dist/{options-plugin-host → options/options-plugin-host}/tier-options/TierOptionsPluginHostEventEmitter.d.ts +4 -4
  28. package/dist/options/options-plugin-host/tier-options/TierOptionsPluginHostEventEmitter.d.ts.map +1 -0
  29. package/dist/{options-plugin-host → options/options-plugin-host}/tier-options/TierOptionsPluginHostEventTarget.d.ts +3 -3
  30. package/dist/options/options-plugin-host/tier-options/TierOptionsPluginHostEventTarget.d.ts.map +1 -0
  31. package/dist/{options-plugin-host → options/options-plugin-host}/tier-options/createTierOptionsPluginHost.d.ts +12 -10
  32. package/dist/options/options-plugin-host/tier-options/createTierOptionsPluginHost.d.ts.map +1 -0
  33. package/dist/options/options-plugin-host/tier-options/index.d.ts.map +1 -0
  34. package/dist/options/plugins/index.d.ts.map +1 -0
  35. package/dist/{plugins → options/plugins}/tier-mode-options/decorator.d.ts +1 -1
  36. package/dist/options/plugins/tier-mode-options/decorator.d.ts.map +1 -0
  37. package/dist/options/plugins/tier-mode-options/plugin.d.ts +3 -0
  38. package/dist/options/plugins/tier-mode-options/plugin.d.ts.map +1 -0
  39. package/dist/{plugins → options/plugins}/tier-mode-options/type.d.ts +4 -4
  40. package/dist/options/plugins/tier-mode-options/type.d.ts.map +1 -0
  41. package/dist/options/plugins/tier-mode-options-plugin.d.ts.map +1 -0
  42. package/dist/{plugins → options/plugins}/tier-options/decorator.d.ts +1 -1
  43. package/dist/options/plugins/tier-options/decorator.d.ts.map +1 -0
  44. package/dist/{plugins → options/plugins}/tier-options/plugin.d.ts +1 -1
  45. package/dist/options/plugins/tier-options/plugin.d.ts.map +1 -0
  46. package/dist/{plugins → options/plugins}/tier-options/type.d.ts +4 -4
  47. package/dist/options/plugins/tier-options/type.d.ts.map +1 -0
  48. package/dist/options/plugins/tier-options-plugin.d.ts.map +1 -0
  49. package/dist/plugin-host/PluginHost.d.ts +21 -13
  50. package/dist/plugin-host/PluginHost.d.ts.map +1 -1
  51. package/dist/plugin-host/PluginHostEventEmitter.d.ts +21 -13
  52. package/dist/plugin-host/PluginHostEventEmitter.d.ts.map +1 -1
  53. package/dist/plugin-host/PluginHostEventTarget.d.ts +21 -13
  54. package/dist/plugin-host/PluginHostEventTarget.d.ts.map +1 -1
  55. package/dist/plugin-host/createPluginHost.d.ts +22 -14
  56. package/dist/plugin-host/createPluginHost.d.ts.map +1 -1
  57. package/dist/plugin-host/decorator.d.ts +59 -62
  58. package/dist/plugin-host/decorator.d.ts.map +1 -1
  59. package/dist/plugin-host/type.d.ts +21 -8
  60. package/dist/plugin-host/type.d.ts.map +1 -1
  61. package/dist/plugin-manager/ExtendManager.d.ts +66 -0
  62. package/dist/plugin-manager/ExtendManager.d.ts.map +1 -0
  63. package/dist/plugin-manager/IExtend.d.ts +64 -0
  64. package/dist/plugin-manager/IExtend.d.ts.map +1 -0
  65. package/dist/plugin-manager/IPlugin.d.ts +13 -4
  66. package/dist/plugin-manager/IPlugin.d.ts.map +1 -1
  67. package/dist/plugin-manager/PluginExtendManager.d.ts +92 -0
  68. package/dist/plugin-manager/PluginExtendManager.d.ts.map +1 -0
  69. package/dist/plugin-manager/PluginManager.d.ts +14 -14
  70. package/dist/plugin-manager/PluginManager.d.ts.map +1 -1
  71. package/dist/plugin-manager/index.d.ts +5 -1
  72. package/dist/plugin-manager/index.d.ts.map +1 -1
  73. package/dist/plugin-manager/mixin.d.ts.map +1 -0
  74. package/package.json +4 -3
  75. package/dist/extend/extend.d.ts +0 -214
  76. package/dist/extend/extend.d.ts.map +0 -1
  77. package/dist/extend/index.d.ts +0 -3
  78. package/dist/extend/index.d.ts.map +0 -1
  79. package/dist/extend/mixin.d.ts.map +0 -1
  80. package/dist/options-manager/ModeOptions.d.ts.map +0 -1
  81. package/dist/options-manager/OptionsManager.d.ts.map +0 -1
  82. package/dist/options-manager/TierModeOptions.d.ts.map +0 -1
  83. package/dist/options-manager/TierOptions.d.ts.map +0 -1
  84. package/dist/options-manager/defaultOptions.d.ts.map +0 -1
  85. package/dist/options-manager/index.d.ts.map +0 -1
  86. package/dist/options-manager/tools.d.ts.map +0 -1
  87. package/dist/options-plugin-host/index.d.ts.map +0 -1
  88. package/dist/options-plugin-host/tier-mode-options/TierModeOptionsPluginHost.d.ts.map +0 -1
  89. package/dist/options-plugin-host/tier-mode-options/TierModeOptionsPluginHostEventEmitter.d.ts.map +0 -1
  90. package/dist/options-plugin-host/tier-mode-options/TierModeOptionsPluginHostEventTarget.d.ts.map +0 -1
  91. package/dist/options-plugin-host/tier-mode-options/createTierModeOptionsPluginHost.d.ts.map +0 -1
  92. package/dist/options-plugin-host/tier-mode-options/index.d.ts.map +0 -1
  93. package/dist/options-plugin-host/tier-mode-options/type.d.ts.map +0 -1
  94. package/dist/options-plugin-host/tier-options/TierOptionsPluginHost.d.ts.map +0 -1
  95. package/dist/options-plugin-host/tier-options/TierOptionsPluginHostEventEmitter.d.ts.map +0 -1
  96. package/dist/options-plugin-host/tier-options/TierOptionsPluginHostEventTarget.d.ts.map +0 -1
  97. package/dist/options-plugin-host/tier-options/createTierOptionsPluginHost.d.ts.map +0 -1
  98. package/dist/options-plugin-host/tier-options/index.d.ts.map +0 -1
  99. package/dist/plugins/index.d.ts.map +0 -1
  100. package/dist/plugins/tier-mode-options/decorator.d.ts.map +0 -1
  101. package/dist/plugins/tier-mode-options/plugin.d.ts +0 -3
  102. package/dist/plugins/tier-mode-options/plugin.d.ts.map +0 -1
  103. package/dist/plugins/tier-mode-options/type.d.ts.map +0 -1
  104. package/dist/plugins/tier-mode-options-plugin.d.ts.map +0 -1
  105. package/dist/plugins/tier-options/decorator.d.ts.map +0 -1
  106. package/dist/plugins/tier-options/plugin.d.ts.map +0 -1
  107. package/dist/plugins/tier-options/type.d.ts.map +0 -1
  108. package/dist/plugins/tier-options-plugin.d.ts.map +0 -1
  109. /package/dist/{options-manager → options/options-manager}/ModeOptions.d.ts +0 -0
  110. /package/dist/{options-manager → options/options-manager}/OptionsManager.d.ts +0 -0
  111. /package/dist/{options-manager → options/options-manager}/TierModeOptions.d.ts +0 -0
  112. /package/dist/{options-manager → options/options-manager}/TierOptions.d.ts +0 -0
  113. /package/dist/{options-manager → options/options-manager}/defaultOptions.d.ts +0 -0
  114. /package/dist/{options-manager → options/options-manager}/index.d.ts +0 -0
  115. /package/dist/{options-manager → options/options-manager}/tools.d.ts +0 -0
  116. /package/dist/{options-plugin-host → options/options-plugin-host}/index.d.ts +0 -0
  117. /package/dist/{options-plugin-host → options/options-plugin-host}/tier-mode-options/index.d.ts +0 -0
  118. /package/dist/{options-plugin-host → options/options-plugin-host}/tier-mode-options/type.d.ts +0 -0
  119. /package/dist/{options-plugin-host → options/options-plugin-host}/tier-options/index.d.ts +0 -0
  120. /package/dist/{plugins → options/plugins}/index.d.ts +0 -0
  121. /package/dist/{plugins → options/plugins}/tier-mode-options-plugin.d.ts +0 -0
  122. /package/dist/{plugins → options/plugins}/tier-options-plugin.d.ts +0 -0
  123. /package/dist/{extend → plugin-manager}/mixin.d.ts +0 -0
@@ -1,8 +1,8 @@
1
- import { PluginManager } from "../plugin-manager/PluginManager";
2
- import type { IPlugin, PluginUseArgs, PluginUseReturn } from "../plugin-manager/index";
1
+ import { PluginExtendManager } from "../plugin-manager";
2
+ import type { ExtendOptions, IPlugin, PluginUseArgs, PluginUseReturn } from "../plugin-manager/index";
3
3
  import { Destroyable } from "@gby/destroyable";
4
4
  import type { IPluginHost } from "./type";
5
- import type { ClassType } from "type-tls";
5
+ import type { AbstractConstructor, ClassType } from "type-tls";
6
6
  /**
7
7
  * 插件的宿主
8
8
  *
@@ -28,7 +28,7 @@ import type { ClassType } from "type-tls";
28
28
  * 1. 子类可以通过继承来实现自定义的 Host
29
29
  * 2. 子类可以通过继承来实现自定义的 HostClass
30
30
  */
31
- export declare class PluginHost<Host, HostClass = ClassType<Host>> extends Destroyable implements IPluginHost<Host, HostClass> {
31
+ export declare class PluginHost<Host, HostClass extends AbstractConstructor<Host> = ClassType<Host>> extends Destroyable implements IPluginHost<Host, HostClass> {
32
32
  /**
33
33
  * 是否使用独立的插件管理器
34
34
  * @defaultValue false
@@ -37,16 +37,20 @@ export declare class PluginHost<Host, HostClass = ClassType<Host>> extends Destr
37
37
  /**
38
38
  * 插件管理器
39
39
  */
40
- static get pluginManager(): PluginManager<any, any>;
41
- static _pluginManager: PluginManager<any, any>;
40
+ static get pluginManager(): PluginExtendManager<any, any>;
41
+ static _pluginManager: PluginExtendManager<any, any>;
42
42
  /**
43
43
  * 插件管理器 {@link PluginHost.pluginManager}
44
44
  */
45
- get pluginManager(): PluginManager<Host, HostClass>;
45
+ get pluginManager(): PluginExtendManager<Host, HostClass>;
46
46
  /**
47
- * {@inheritDoc PluginManager.use}
47
+ * {@inheritDoc PluginExtendManager.usePlugin}
48
48
  */
49
- static use<Plugin extends IPlugin<any, any>>(plugin: Plugin, ...args: PluginUseArgs<Plugin>): ReturnType<Plugin["onUse"]>;
49
+ static usePlugin<Plugin extends IPlugin<any, any>>(plugin: Plugin, ...args: PluginUseArgs<Plugin>): ReturnType<Plugin["onUse"]>;
50
+ /**
51
+ * {@inheritDoc PluginExtendManager.useExtend}
52
+ */
53
+ static useExtend<HostClass extends AbstractConstructor, E>(ext: ExtendOptions<HostClass, E>): boolean;
50
54
  /**
51
55
  * 需要在子类中调用
52
56
  *
@@ -59,18 +63,22 @@ export declare class PluginHost<Host, HostClass = ClassType<Host>> extends Destr
59
63
  * @param args
60
64
  * @returns
61
65
  */
62
- use<P extends IPlugin<Host, HostClass>>(plugin: P, ...args: PluginUseArgs<P>): PluginUseReturn<P>;
66
+ usePlugin<P extends IPlugin<Host, HostClass>>(plugin: P, ...args: PluginUseArgs<P>): PluginUseReturn<P>;
67
+ /**
68
+ * {@inheritDoc PluginExtendManager.useExtend}
69
+ */
70
+ useExtend<E>(ext: ExtendOptions<HostClass, E>, ...args: ConstructorParameters<HostClass>): boolean;
63
71
  /**
64
72
  * 初始化实例
65
73
  * @remarks
66
- * 会调用 {@link PluginManager.onInit}
74
+ * 会调用 {@link PluginExtendManager.onInit}
67
75
  * @param args
68
76
  */
69
- init(...args: any): Promise<void>;
77
+ init(...args: any): any;
70
78
  /**
71
79
  * 销毁实例
72
80
  * @returns
73
81
  */
74
- destroyThis(): Promise<void>;
82
+ destroyThis(): any;
75
83
  }
76
84
  //# sourceMappingURL=PluginHost.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PluginHost.d.ts","sourceRoot":"","sources":["../../src/plugin-host/PluginHost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEvF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG1C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,UAAU,CAAC,IAAI,EAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAE,SAAQ,WAAY,YAAW,WAAW,CAAC,IAAI,EAAC,SAAS,CAAC;IAClH;;;OAGG;IACH,MAAM,CAAC,qBAAqB,UAAS;IAErC;;OAEG;IACH,MAAM,KAAK,aAAa,4BAKvB;IACD,MAAM,CAAC,cAAc,0BAAoC;IAEzD;;OAEG;IACH,IAAI,aAAa,IAAI,aAAa,CAAC,IAAI,EAAC,SAAS,CAAC,CAEjD;IAED;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,MAAM,SAAS,OAAO,CAAC,GAAG,EAAC,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC;IAI1F;;;;;OAKG;IAOH;;;;;OAKG;IACH,GAAG,CAAC,CAAC,SAAS,OAAO,CAAC,IAAI,EAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAKhG;;;;;OAKG;IACH,IAAI,CAAC,GAAG,IAAI,EAAC,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhC;;;OAGG;IACY,WAAW;CAK3B"}
1
+ {"version":3,"file":"PluginHost.d.ts","sourceRoot":"","sources":["../../src/plugin-host/PluginHost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEtG,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,mBAAmB,EAAC,SAAS,EAAE,MAAM,UAAU,CAAC;AAG9D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,UAAU,CAAC,IAAI,EAAC,SAAS,SAAS,mBAAmB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAE,SAAQ,WAAY,YAAW,WAAW,CAAC,IAAI,EAAC,SAAS,CAAC;IACpJ;;;OAGG;IACH,MAAM,CAAC,qBAAqB,UAAS;IAErC;;OAEG;IACH,MAAM,KAAK,aAAa,kCAKvB;IACD,MAAM,CAAC,cAAc,gCAA0C;IAE/D;;OAEG;IACH,IAAI,aAAa,IAAI,mBAAmB,CAAC,IAAI,EAAC,SAAS,CAAC,CAEvD;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,SAAS,OAAO,CAAC,GAAG,EAAC,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC;IAIhG;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,SAAS,SAAS,mBAAmB,EAAC,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC;IAI1F;;;;;OAKG;IAOH;;;;;OAKG;IACH,SAAS,CAAC,CAAC,SAAS,OAAO,CAAC,IAAI,EAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAItG;;OAEG;IACH,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,EAAC,GAAG,IAAI,EAAC,qBAAqB,CAAC,SAAS,CAAC;IAKtF;;;;;OAKG;IACH,IAAI,CAAC,GAAG,IAAI,EAAC,GAAG,GAAE,GAAG;IAIrB;;;OAGG;IACM,WAAW;CAQrB"}
@@ -1,9 +1,9 @@
1
- import { PluginManager } from "../plugin-manager/PluginManager";
2
- import type { IPlugin, PluginUseArgs, PluginUseReturn } from "../plugin-manager/index";
1
+ import { PluginExtendManager } from "../plugin-manager";
2
+ import type { ExtendOptions, IPlugin, PluginUseArgs, PluginUseReturn } from "../plugin-manager/index";
3
3
  import { DestroyableEventEmitter } from "@gby/destroyable";
4
4
  import type { DefaultEventMap, EventMap } from "@gby/destroyable";
5
5
  import type { IPluginHost } from "./type";
6
- import type { ClassType } from "type-tls";
6
+ import type { AbstractConstructor, ClassType } from "type-tls";
7
7
  export type { DefaultEventMap, EventMap };
8
8
  /**
9
9
  * 插件的宿主
@@ -16,7 +16,7 @@ export type { DefaultEventMap, EventMap };
16
16
  * 之所以没写在该类中的函数中,是因为 `this.pluginManager.created(this)` 通常会在构建函数执行的最后时才调用;
17
17
  * 如果像下面写在该类的构建函数中,然后子类通过 `super()` 来调用,这样就会导致 `this.pluginManager.created(this)` 不是在最后的执行;
18
18
  */
19
- export declare class PluginHostEventEmitter<Host, HostClass = ClassType<Host>, EM extends EventMap<EM> = DefaultEventMap> extends DestroyableEventEmitter<EM> implements IPluginHost<Host, HostClass> {
19
+ export declare class PluginHostEventEmitter<Host, HostClass extends AbstractConstructor<Host> = ClassType<Host>, EM extends EventMap<EM> = DefaultEventMap> extends DestroyableEventEmitter<EM> implements IPluginHost<Host, HostClass> {
20
20
  /**
21
21
  * 是否使用独立的插件管理器
22
22
  * @defaultValue false
@@ -25,16 +25,20 @@ export declare class PluginHostEventEmitter<Host, HostClass = ClassType<Host>, E
25
25
  /**
26
26
  * 插件管理器
27
27
  */
28
- static get pluginManager(): PluginManager<any, any>;
29
- static _pluginManager: PluginManager<any, any>;
28
+ static get pluginManager(): PluginExtendManager<any, any>;
29
+ static _pluginManager: PluginExtendManager<any, any>;
30
30
  /**
31
31
  * 插件管理器 {@link PluginHost.pluginManager}
32
32
  */
33
- get pluginManager(): PluginManager<Host, HostClass>;
33
+ get pluginManager(): PluginExtendManager<Host, HostClass>;
34
34
  /**
35
- * {@inheritDoc PluginManager.use}
35
+ * {@inheritDoc PluginExtendManager.usePlugin}
36
36
  */
37
- static use<Plugin extends IPlugin<any, any>>(plugin: Plugin, ...args: PluginUseArgs<Plugin>): ReturnType<Plugin["onUse"]>;
37
+ static usePlugin<Plugin extends IPlugin<any, any>>(plugin: Plugin, ...args: PluginUseArgs<Plugin>): ReturnType<Plugin["onUse"]>;
38
+ /**
39
+ * {@inheritDoc PluginExtendManager.useExtend}
40
+ */
41
+ static useExtend<HostClass extends AbstractConstructor, E>(ext: ExtendOptions<HostClass, E>): boolean;
38
42
  /**
39
43
  * 需要在子类中调用
40
44
  *
@@ -47,18 +51,22 @@ export declare class PluginHostEventEmitter<Host, HostClass = ClassType<Host>, E
47
51
  * @param args
48
52
  * @returns
49
53
  */
50
- use<P extends IPlugin<Host, HostClass>>(plugin: P, ...args: PluginUseArgs<P>): PluginUseReturn<P>;
54
+ usePlugin<P extends IPlugin<Host, HostClass>>(plugin: P, ...args: PluginUseArgs<P>): PluginUseReturn<P>;
55
+ /**
56
+ * {@inheritDoc PluginExtendManager.useExtend}
57
+ */
58
+ useExtend<E>(ext: ExtendOptions<HostClass, E>, ...args: ConstructorParameters<HostClass>): boolean;
51
59
  /**
52
60
  * 初始化实例
53
61
  * @remarks
54
- * 会调用 {@link PluginManager.onInit}
62
+ * 会调用 {@link PluginExtendManager.onInit}
55
63
  * @param args
56
64
  */
57
- init(...args: any): Promise<void>;
65
+ init(...args: any): any;
58
66
  /**
59
67
  * 销毁实例
60
68
  * @returns
61
69
  */
62
- destroyThis(): Promise<void>;
70
+ destroyThis(): any;
63
71
  }
64
72
  //# sourceMappingURL=PluginHostEventEmitter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PluginHostEventEmitter.d.ts","sourceRoot":"","sources":["../../src/plugin-host/PluginHostEventEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,YAAY,EAAE,eAAe,EAAC,QAAQ,EAAC,CAAA;AAGvC;;;;;;;;;;GAUG;AACH,qBAAa,sBAAsB,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,QAAQ,CAAC,EAAE,CAAC,GAAG,eAAe,CAAE,SAAQ,uBAAuB,CAAC,EAAE,CAAE,YAAW,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC;IAC3L;;;OAGG;IACH,MAAM,CAAC,qBAAqB,UAAS;IAErC;;OAEG;IACH,MAAM,KAAK,aAAa,4BAKvB;IACD,MAAM,CAAC,cAAc,0BAAoC;IAEzD;;OAEG;IACH,IAAI,aAAa,IAAI,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAElD;IAED;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,MAAM,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC;IAI3F;;;;;OAKG;IAOH;;;;;OAKG;IACH,GAAG,CAAC,CAAC,SAAS,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAKjG;;;;;OAKG;IACH,IAAI,CAAC,GAAG,IAAI,EAAC,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhC;;;OAGG;IACY,WAAW;CAK3B"}
1
+ {"version":3,"file":"PluginHostEventEmitter.d.ts","sourceRoot":"","sources":["../../src/plugin-host/PluginHostEventEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEtG,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE/D,YAAY,EAAE,eAAe,EAAC,QAAQ,EAAC,CAAA;AAGvC;;;;;;;;;;GAUG;AACH,qBAAa,sBAAsB,CAAC,IAAI,EAAE,SAAS,SAAS,mBAAmB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,QAAQ,CAAC,EAAE,CAAC,GAAG,eAAe,CAAE,SAAQ,uBAAuB,CAAC,EAAE,CAAE,YAAW,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC;IAC7N;;;OAGG;IACH,MAAM,CAAC,qBAAqB,UAAS;IAErC;;OAEG;IACH,MAAM,KAAK,aAAa,kCAKvB;IACD,MAAM,CAAC,cAAc,gCAA0C;IAE/D;;OAEG;IACH,IAAI,aAAa,IAAI,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,CAExD;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC;IAIjG;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,SAAS,SAAS,mBAAmB,EAAC,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC;IAI1F;;;;;OAKG;IAOH;;;;;OAKG;IACH,SAAS,CAAC,CAAC,SAAS,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAIvG;;OAEG;IACH,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,EAAC,GAAG,IAAI,EAAC,qBAAqB,CAAC,SAAS,CAAC;IAKtF;;;;;OAKG;IACH,IAAI,CAAC,GAAG,IAAI,EAAC,GAAG,GAAG,GAAG;IAItB;;;OAGG;IACM,WAAW;CAQrB"}
@@ -1,8 +1,8 @@
1
- import { PluginManager } from "../plugin-manager/PluginManager";
2
- import type { IPlugin, PluginUseArgs, PluginUseReturn } from "../plugin-manager/index";
1
+ import { PluginExtendManager } from "../plugin-manager";
2
+ import type { ExtendOptions, IPlugin, PluginUseArgs, PluginUseReturn } from "../plugin-manager/index";
3
3
  import { DestroyableEventTarget } from "@gby/destroyable";
4
4
  import type { IPluginHost } from "./type";
5
- import type { ClassType } from "type-tls";
5
+ import type { AbstractConstructor, ClassType } from "type-tls";
6
6
  /**
7
7
  * 插件的宿主
8
8
  *
@@ -14,7 +14,7 @@ import type { ClassType } from "type-tls";
14
14
  * 之所以没写在该类中的函数中,是因为 `this.pluginManager.created(this)` 通常会在构建函数执行的最后时才调用;
15
15
  * 如果像下面写在该类的构建函数中,然后子类通过 `super()` 来调用,这样就会导致 `this.pluginManager.created(this)` 不是在最后的执行;
16
16
  */
17
- export declare class PluginHostEventTarget<Host, HostClass = ClassType<Host>, EM extends Record<string, any> = Record<string, any>> extends DestroyableEventTarget<EM> implements IPluginHost<Host, HostClass> {
17
+ export declare class PluginHostEventTarget<Host, HostClass extends AbstractConstructor<Host> = ClassType<Host>, EM extends Record<string, any> = Record<string, any>> extends DestroyableEventTarget<EM> implements IPluginHost<Host, HostClass> {
18
18
  /**
19
19
  * 是否使用独立的插件管理器
20
20
  * @defaultValue false
@@ -23,16 +23,20 @@ export declare class PluginHostEventTarget<Host, HostClass = ClassType<Host>, EM
23
23
  /**
24
24
  * 插件管理器
25
25
  */
26
- static get pluginManager(): PluginManager<any, any>;
27
- static _pluginManager: PluginManager<any, any>;
26
+ static get pluginManager(): PluginExtendManager<any, any>;
27
+ static _pluginManager: PluginExtendManager<any, any>;
28
28
  /**
29
29
  * 插件管理器 {@link PluginHost.pluginManager}
30
30
  */
31
- get pluginManager(): PluginManager<Host, HostClass>;
31
+ get pluginManager(): PluginExtendManager<Host, HostClass>;
32
32
  /**
33
- * {@inheritDoc PluginManager.use}
33
+ * {@inheritDoc PluginExtendManager.usePlugin}
34
34
  */
35
- static use<Plugin extends IPlugin<any, any>>(plugin: Plugin, ...args: PluginUseArgs<Plugin>): ReturnType<Plugin["onUse"]>;
35
+ static usePlugin<Plugin extends IPlugin<any, any>>(plugin: Plugin, ...args: PluginUseArgs<Plugin>): ReturnType<Plugin["onUse"]>;
36
+ /**
37
+ * {@inheritDoc PluginExtendManager.useExtend}
38
+ */
39
+ static useExtend<HostClass extends AbstractConstructor, E>(ext: ExtendOptions<HostClass, E>): boolean;
36
40
  /**
37
41
  * 需要在子类中调用
38
42
  *
@@ -45,18 +49,22 @@ export declare class PluginHostEventTarget<Host, HostClass = ClassType<Host>, EM
45
49
  * @param args
46
50
  * @returns
47
51
  */
48
- use<P extends IPlugin<Host, HostClass>>(plugin: P, ...args: PluginUseArgs<P>): PluginUseReturn<P>;
52
+ usePlugin<P extends IPlugin<Host, HostClass>>(plugin: P, ...args: PluginUseArgs<P>): PluginUseReturn<P>;
53
+ /**
54
+ * {@inheritDoc PluginExtendManager.useExtend}
55
+ */
56
+ useExtend<E>(ext: ExtendOptions<HostClass, E>, ...args: ConstructorParameters<HostClass>): boolean;
49
57
  /**
50
58
  * 初始化实例
51
59
  * @remarks
52
- * 会调用 {@link PluginManager.onInit}
60
+ * 会调用 {@link PluginExtendManager.onInit}
53
61
  * @param args
54
62
  */
55
- init(...args: any): Promise<void>;
63
+ init(...args: any): any;
56
64
  /**
57
65
  * 销毁实例
58
66
  * @returns
59
67
  */
60
- destroyThis(): Promise<void>;
68
+ destroyThis(): any;
61
69
  }
62
70
  //# sourceMappingURL=PluginHostEventTarget.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PluginHostEventTarget.d.ts","sourceRoot":"","sources":["../../src/plugin-host/PluginHostEventTarget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEvF,OAAO,EAAE,sBAAsB,EAAC,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAK1C;;;;;;;;;;GAUG;AACH,qBAAa,qBAAqB,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAE,SAAQ,sBAAsB,CAAC,EAAE,CAAE,YAAW,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC;IACpM;;;OAGG;IACH,MAAM,CAAC,qBAAqB,UAAS;IAErC;;OAEG;IACH,MAAM,KAAK,aAAa,4BAKvB;IACD,MAAM,CAAC,cAAc,0BAAoC;IAEzD;;OAEG;IACH,IAAI,aAAa,IAAI,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAElD;IAED;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,MAAM,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC;IAI3F;;;;;OAKG;IAOH;;;;;OAKG;IACH,GAAG,CAAC,CAAC,SAAS,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAKjG;;;;;OAKG;IACH,IAAI,CAAC,GAAG,IAAI,EAAC,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhC;;;OAGG;IACY,WAAW;CAK3B"}
1
+ {"version":3,"file":"PluginHostEventTarget.d.ts","sourceRoot":"","sources":["../../src/plugin-host/PluginHostEventTarget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEtG,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,mBAAmB,EAAC,SAAS,EAAE,MAAM,UAAU,CAAC;AAK9D;;;;;;;;;;GAUG;AACH,qBAAa,qBAAqB,CAAC,IAAI,EAAE,SAAS,SAAS,mBAAmB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAE,SAAQ,sBAAsB,CAAC,EAAE,CAAE,YAAW,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC;IACtO;;;OAGG;IACH,MAAM,CAAC,qBAAqB,UAAS;IAErC;;OAEG;IACH,MAAM,KAAK,aAAa,kCAKvB;IACD,MAAM,CAAC,cAAc,gCAA0C;IAE/D;;OAEG;IACH,IAAI,aAAa,IAAI,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,CAExD;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC;IAIjG;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,SAAS,SAAS,mBAAmB,EAAC,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC;IAI1F;;;;;OAKG;IAOH;;;;;OAKG;IACH,SAAS,CAAC,CAAC,SAAS,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAIvG;;OAEG;IACH,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,EAAC,GAAG,IAAI,EAAC,qBAAqB,CAAC,SAAS,CAAC;IAKtF;;;;;OAKG;IACH,IAAI,CAAC,GAAG,IAAI,EAAC,GAAG,GAAG,GAAG;IAItB;;;OAGG;IACM,WAAW;CAQrB"}
@@ -1,6 +1,6 @@
1
- import { PluginManager } from "../plugin-manager/PluginManager";
2
- import type { IPlugin, PluginUseArgs, PluginUseReturn } from "../plugin-manager/index";
3
- import type { ClassType } from "type-tls";
1
+ import { PluginExtendManager } from "../plugin-manager";
2
+ import type { ExtendOptions, IPlugin, PluginUseArgs, PluginUseReturn } from "../plugin-manager/index";
3
+ import type { AbstractConstructor, ClassType } from "type-tls";
4
4
  /**
5
5
  * 创建插件的缩主类
6
6
  *
@@ -14,11 +14,11 @@ import type { ClassType } from "type-tls";
14
14
  * @returns
15
15
  */
16
16
  export declare function createPluginHost<P extends new (...args: any) => Object>(ParentClass: P): {
17
- new <Host, HostClass = ClassType<Host, any>>(...args: any): {
17
+ new <Host, HostClass extends AbstractConstructor<Host> = ClassType<Host, any>>(...args: any): {
18
18
  /**
19
19
  * 插件管理器 {@link PluginHostSub.pluginManager}
20
20
  */
21
- get pluginManager(): PluginManager<Host, HostClass>;
21
+ get pluginManager(): PluginExtendManager<Host, HostClass>;
22
22
  /**
23
23
  * 需要在子类中调用
24
24
  *
@@ -31,19 +31,23 @@ export declare function createPluginHost<P extends new (...args: any) => Object>
31
31
  * @param args
32
32
  * @returns
33
33
  */
34
- use<P_1 extends IPlugin<Host, HostClass>>(plugin: P_1, ...args: PluginUseArgs<P_1>): PluginUseReturn<P_1>;
34
+ usePlugin<P_1 extends IPlugin<Host, HostClass>>(plugin: P_1, ...args: PluginUseArgs<P_1>): PluginUseReturn<P_1>;
35
+ /**
36
+ * {@inheritDoc PluginExtendManager.useExtend}
37
+ */
38
+ useExtend<E>(ext: ExtendOptions<HostClass, E>, ...args: ConstructorParameters<HostClass>): boolean;
35
39
  /**
36
40
  * 初始化实例
37
41
  * @remarks
38
- * 会调用 {@link PluginManager.onInit}
42
+ * 会调用 {@link PluginExtendManager.onInit}
39
43
  * @param args
40
44
  */
41
- init(...args: any): Promise<void>;
45
+ init(...args: any): any;
42
46
  /**
43
47
  * 销毁实例
44
48
  * @returns
45
49
  */
46
- destroyThis(): Promise<void>;
50
+ destroyThis(): any;
47
51
  refCount: number;
48
52
  readonly isDestroyed: boolean;
49
53
  _isDestroyed: boolean;
@@ -59,8 +63,8 @@ export declare function createPluginHost<P extends new (...args: any) => Object>
59
63
  cancelDispose<T extends import("@gby/destroyable").FunDestroyer>(fun: T): T;
60
64
  cancelDispose<T extends import("@gby/destroyable").IDestroyable>(obj: T): T;
61
65
  cancelDispose<T extends import("@gby/destroyable").IDestroyable | import("@gby/destroyable").FunDestroyer>(objOrFun: T): T;
62
- destroy(): Promise<boolean>;
63
66
  destroySync(): boolean;
67
+ destroy(): boolean | Promise<boolean>;
64
68
  constructor: Function;
65
69
  toString: (() => string) & (() => string);
66
70
  toLocaleString: (() => string) & (() => string);
@@ -77,11 +81,15 @@ export declare function createPluginHost<P extends new (...args: any) => Object>
77
81
  /**
78
82
  * 插件管理器
79
83
  */
80
- get pluginManager(): PluginManager<any, any>;
81
- _pluginManager: PluginManager<any, any>;
84
+ get pluginManager(): PluginExtendManager<any, any>;
85
+ _pluginManager: PluginExtendManager<any, any>;
86
+ /**
87
+ * {@inheritDoc PluginExtendManager.usePlugin}
88
+ */
89
+ usePlugin<Plugin extends IPlugin<any, any>>(plugin: Plugin, ...args: PluginUseArgs<Plugin>): ReturnType<Plugin["onUse"]>;
82
90
  /**
83
- * {@inheritDoc PluginManager.use}
91
+ * {@inheritDoc PluginExtendManager.useExtend}
84
92
  */
85
- use<Plugin extends IPlugin<any, any>>(plugin: Plugin, ...args: PluginUseArgs<Plugin>): ReturnType<Plugin["onUse"]>;
93
+ useExtend<HostClass extends AbstractConstructor, E>(ext: ExtendOptions<HostClass, E>): boolean;
86
94
  } & P;
87
95
  //# sourceMappingURL=createPluginHost.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createPluginHost.d.ts","sourceRoot":"","sources":["../../src/plugin-host/createPluginHost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAGvF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG1C;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,KAAK,GAAG,IAAI,EAAE,GAAG,KAAK,MAAM,EAAE,WAAW,EAAE,CAAC;SAS1D,IAAI,EAAE,SAAS;QAkBxC;;WAEG;6BACkB,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC;QAWnD;;;;;WAKG;QAMH;;;;;WAKG;wBACW,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,UAAU,GAAC,WAAW,aAAa,CAAC,GAAC,CAAC,GAAG,eAAe,CAAC,GAAC,CAAC;QAMjG;;;;;WAKG;sBACW,GAAG;QAIjB;;;WAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;IAnEH;;;OAGG;;IAGH;;OAEG;;;IAgBH;;OAEG;QACQ,MAAM,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,MAAM,WAAW,aAAa,CAAC,MAAM,CAAC;MA+C9F"}
1
+ {"version":3,"file":"createPluginHost.d.ts","sourceRoot":"","sources":["../../src/plugin-host/createPluginHost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAGtG,OAAO,KAAK,EAAE,mBAAmB,EAAG,SAAS,EAAC,MAAM,UAAU,CAAC;AAG/D;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,KAAK,GAAG,IAAI,EAAE,GAAG,KAAK,MAAM,EAAE,WAAW,EAAE,CAAC;SAS1D,IAAI,EAAE,SAAS,SAAS,mBAAmB,CAAC,IAAI,CAAC;QAkB1E;;WAEG;6BACkB,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC;QAkBzD;;;;;WAKG;QAMH;;;;;WAKG;8BACiB,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,UAAU,GAAC,WAAW,aAAa,CAAC,GAAC,CAAC,GAAG,eAAe,CAAC,GAAC,CAAC;QAKvG;;WAEG;kBACO,CAAC,6CAA2C,qBAAqB,CAAC,SAAS,CAAC;QAKtF;;;;;WAKG;sBACW,GAAG,GAAE,GAAG;QAItB;;;WAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;IAjFH;;;OAGG;;IAGH;;OAEG;;;IAgBH;;OAEG;cACc,MAAM,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,MAAM,WAAW,aAAa,CAAC,MAAM,CAAC;IAIjG;;OAEG;cACc,SAAS,SAAS,mBAAmB,EAAC,CAAC,OAAO,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC;MAyD7F"}
@@ -1,10 +1,11 @@
1
- import { PluginManager } from "../plugin-manager/PluginManager";
2
- import type { IPlugin, PluginUseArgs } from "../plugin-manager/index";
1
+ import { PluginExtendManager } from "../plugin-manager";
2
+ import type { ExtendOptions, IPlugin, PluginUseArgs } from "../plugin-manager/index";
3
3
  import type { IPluginHost, IPluginHostClass } from "./type";
4
+ import type { AbstractConstructor, Constructor } from "type-tls";
4
5
  /**
5
6
  * 将 HOST 变成插件宿主类型
6
7
  */
7
- export type BecomePluginHost<HOST extends new (...args: any) => Object> = HOST & IPluginHostClass<InstanceType<HOST> & IPluginHost<InstanceType<HOST>, HOST>>;
8
+ export type BecomePluginHost<HostClass extends AbstractConstructor<any>> = HostClass & IPluginHostClass<InstanceType<HostClass> & IPluginHost<InstanceType<HostClass>, HostClass>>;
8
9
  /**
9
10
  * 变成插件宿主
10
11
  * @remarks
@@ -18,7 +19,7 @@ export type BecomePluginHost<HOST extends new (...args: any) => Object> = HOST &
18
19
  * @param context
19
20
  * @returns
20
21
  */
21
- export declare function becomePluginHost<HOST extends new (...args: any) => Object>(target: HOST): BecomePluginHost<HOST>;
22
+ export declare function becomePluginHost<HostClass extends AbstractConstructor>(target: HostClass): BecomePluginHost<HostClass>;
22
23
  /**
23
24
  * 变成插件宿主,通过代理实现
24
25
  * @remarks
@@ -27,44 +28,42 @@ export declare function becomePluginHost<HOST extends new (...args: any) => Obje
27
28
  * @param context
28
29
  * @returns
29
30
  */
30
- export declare function becomePluginHost_Proxy<HOST extends new (...args: any) => Object>(target: HOST): BecomePluginHost<HOST>;
31
+ export declare function becomePluginHost_Proxy<HOST extends Constructor<any>>(target: HOST): BecomePluginHost<HOST>;
31
32
  /**
32
33
  * 插件缩主类的装饰器(继承版)
33
34
  * @remarks
34
35
  * 通过继承实现
35
36
  */
36
- export declare function becomePluginHost_Extends<HOST extends new (...args: any) => Object>(target: HOST): {
37
+ export declare function becomePluginHost_Extends<HostClass extends Constructor>(target: HostClass): {
37
38
  new (...args: any): {
39
+ [x: string]: any;
38
40
  /**
39
41
  * 插件管理器 {@link PluginHostExtends.pluginManager}
40
42
  */
41
- get pluginManager(): PluginManager</*elided*/ any, /*elided*/ any & HOST>;
43
+ get pluginManager(): PluginExtendManager</*elided*/ any, /*elided*/ any & HostClass>;
42
44
  /**
43
45
  * 实例的注册插件的方法
44
46
  * @param plugin
45
47
  * @param args
46
48
  * @returns
47
49
  */
48
- use<P extends IPlugin</*elided*/ any, /*elided*/ any & HOST>>(plugin: P, ...args: PluginUseArgs<P>): ReturnType<P["onUse"]>;
50
+ usePlugin<P extends IPlugin</*elided*/ any, /*elided*/ any & HostClass>>(plugin: P, ...args: PluginUseArgs<P>): ReturnType<P["onUse"]>;
51
+ /**
52
+ * {@inheritDoc PluginExtendManager.useExtend}
53
+ */
54
+ useExtend<E>(ext: ExtendOptions</*elided*/ any & HostClass, E>, ...args: ConstructorParameters</*elided*/ any & HostClass>): boolean;
49
55
  /**
50
56
  * 初始化实例
51
57
  * @remarks
52
- * 会调用 {@link PluginManager.onInit}
58
+ * 会调用 {@link PluginExtendManager.onInit}
53
59
  * @param args
54
60
  */
55
- init(...args: any): Promise<void>;
61
+ init(...args: any): any;
56
62
  /**
57
63
  * 销毁实例
58
64
  * @returns
59
65
  */
60
- destroy(): Promise<any>;
61
- constructor: Function;
62
- toString(): string;
63
- toLocaleString(): string;
64
- valueOf(): Object;
65
- hasOwnProperty(v: PropertyKey): boolean;
66
- isPrototypeOf(v: Object): boolean;
67
- propertyIsEnumerable(v: PropertyKey): boolean;
66
+ destroy(): any;
68
67
  };
69
68
  /**
70
69
  * 是否使用独立的插件管理器
@@ -74,104 +73,102 @@ export declare function becomePluginHost_Extends<HOST extends new (...args: any)
74
73
  /**
75
74
  * 插件管理器
76
75
  */
77
- get pluginManager(): PluginManager<{
76
+ get pluginManager(): PluginExtendManager<{
77
+ [x: string]: any;
78
78
  /**
79
79
  * 插件管理器 {@link PluginHostExtends.pluginManager}
80
80
  */
81
- get pluginManager(): PluginManager</*elided*/ any, /*elided*/ any & HOST>;
81
+ get pluginManager(): PluginExtendManager</*elided*/ any, /*elided*/ any & HostClass>;
82
82
  /**
83
83
  * 实例的注册插件的方法
84
84
  * @param plugin
85
85
  * @param args
86
86
  * @returns
87
87
  */
88
- use<P extends IPlugin</*elided*/ any, /*elided*/ any & HOST>>(plugin: P, ...args: PluginUseArgs<P>): ReturnType<P["onUse"]>;
88
+ usePlugin<P extends IPlugin</*elided*/ any, /*elided*/ any & HostClass>>(plugin: P, ...args: PluginUseArgs<P>): ReturnType<P["onUse"]>;
89
+ /**
90
+ * {@inheritDoc PluginExtendManager.useExtend}
91
+ */
92
+ useExtend<E>(ext: ExtendOptions</*elided*/ any & HostClass, E>, ...args: ConstructorParameters</*elided*/ any & HostClass>): boolean;
89
93
  /**
90
94
  * 初始化实例
91
95
  * @remarks
92
- * 会调用 {@link PluginManager.onInit}
96
+ * 会调用 {@link PluginExtendManager.onInit}
93
97
  * @param args
94
98
  */
95
- init(...args: any): Promise<void>;
99
+ init(...args: any): any;
96
100
  /**
97
101
  * 销毁实例
98
102
  * @returns
99
103
  */
100
- destroy(): Promise<any>;
101
- constructor: Function;
102
- toString(): string;
103
- toLocaleString(): string;
104
- valueOf(): Object;
105
- hasOwnProperty(v: PropertyKey): boolean;
106
- isPrototypeOf(v: Object): boolean;
107
- propertyIsEnumerable(v: PropertyKey): boolean;
108
- }, /*elided*/ any & HOST>;
109
- _pluginManager: PluginManager<{
104
+ destroy(): any;
105
+ }, /*elided*/ any & HostClass>;
106
+ _pluginManager: PluginExtendManager<{
107
+ [x: string]: any;
110
108
  /**
111
109
  * 插件管理器 {@link PluginHostExtends.pluginManager}
112
110
  */
113
- get pluginManager(): PluginManager</*elided*/ any, /*elided*/ any & HOST>;
111
+ get pluginManager(): PluginExtendManager</*elided*/ any, /*elided*/ any & HostClass>;
114
112
  /**
115
113
  * 实例的注册插件的方法
116
114
  * @param plugin
117
115
  * @param args
118
116
  * @returns
119
117
  */
120
- use<P extends IPlugin</*elided*/ any, /*elided*/ any & HOST>>(plugin: P, ...args: PluginUseArgs<P>): ReturnType<P["onUse"]>;
118
+ usePlugin<P extends IPlugin</*elided*/ any, /*elided*/ any & HostClass>>(plugin: P, ...args: PluginUseArgs<P>): ReturnType<P["onUse"]>;
119
+ /**
120
+ * {@inheritDoc PluginExtendManager.useExtend}
121
+ */
122
+ useExtend<E>(ext: ExtendOptions</*elided*/ any & HostClass, E>, ...args: ConstructorParameters</*elided*/ any & HostClass>): boolean;
121
123
  /**
122
124
  * 初始化实例
123
125
  * @remarks
124
- * 会调用 {@link PluginManager.onInit}
126
+ * 会调用 {@link PluginExtendManager.onInit}
125
127
  * @param args
126
128
  */
127
- init(...args: any): Promise<void>;
129
+ init(...args: any): any;
128
130
  /**
129
131
  * 销毁实例
130
132
  * @returns
131
133
  */
132
- destroy(): Promise<any>;
133
- constructor: Function;
134
- toString(): string;
135
- toLocaleString(): string;
136
- valueOf(): Object;
137
- hasOwnProperty(v: PropertyKey): boolean;
138
- isPrototypeOf(v: Object): boolean;
139
- propertyIsEnumerable(v: PropertyKey): boolean;
140
- }, /*elided*/ any & HOST>;
134
+ destroy(): any;
135
+ }, /*elided*/ any & HostClass>;
141
136
  /**
142
- * {@inheritDoc PluginManager.use}
137
+ * {@inheritDoc PluginExtendManager.usePlugin}
143
138
  */
144
- use<Plugin extends IPlugin<{
139
+ usePlugin<Plugin extends IPlugin<{
140
+ [x: string]: any;
145
141
  /**
146
142
  * 插件管理器 {@link PluginHostExtends.pluginManager}
147
143
  */
148
- get pluginManager(): PluginManager</*elided*/ any, /*elided*/ any & HOST>;
144
+ get pluginManager(): PluginExtendManager</*elided*/ any, /*elided*/ any & HostClass>;
149
145
  /**
150
146
  * 实例的注册插件的方法
151
147
  * @param plugin
152
148
  * @param args
153
149
  * @returns
154
150
  */
155
- use<P extends IPlugin</*elided*/ any, /*elided*/ any & HOST>>(plugin: P, ...args: PluginUseArgs<P>): ReturnType<P["onUse"]>;
151
+ usePlugin<P extends IPlugin</*elided*/ any, /*elided*/ any & HostClass>>(plugin: P, ...args: PluginUseArgs<P>): ReturnType<P["onUse"]>;
152
+ /**
153
+ * {@inheritDoc PluginExtendManager.useExtend}
154
+ */
155
+ useExtend<E>(ext: ExtendOptions</*elided*/ any & HostClass, E>, ...args: ConstructorParameters</*elided*/ any & HostClass>): boolean;
156
156
  /**
157
157
  * 初始化实例
158
158
  * @remarks
159
- * 会调用 {@link PluginManager.onInit}
159
+ * 会调用 {@link PluginExtendManager.onInit}
160
160
  * @param args
161
161
  */
162
- init(...args: any): Promise<void>;
162
+ init(...args: any): any;
163
163
  /**
164
164
  * 销毁实例
165
165
  * @returns
166
166
  */
167
- destroy(): Promise<any>;
168
- constructor: Function;
169
- toString(): string;
170
- toLocaleString(): string;
171
- valueOf(): Object;
172
- hasOwnProperty(v: PropertyKey): boolean;
173
- isPrototypeOf(v: Object): boolean;
174
- propertyIsEnumerable(v: PropertyKey): boolean;
175
- }, /*elided*/ any & HOST>>(plugin: Plugin, ...args: PluginUseArgs<Plugin>): ReturnType<Plugin["onUse"]>;
176
- } & HOST;
167
+ destroy(): any;
168
+ }, /*elided*/ any & HostClass>>(plugin: Plugin, ...args: PluginUseArgs<Plugin>): ReturnType<Plugin["onUse"]>;
169
+ /**
170
+ * {@inheritDoc PluginExtendManager.useExtend}
171
+ */
172
+ useExtend<E>(ext: ExtendOptions</*elided*/ any & HostClass, E>): boolean;
173
+ } & HostClass;
177
174
  //# sourceMappingURL=decorator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decorator.d.ts","sourceRoot":"","sources":["../../src/plugin-host/decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAmB,MAAM,yBAAyB,CAAC;AAEvF,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAG5D;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,IAAI,SAAS,KAAK,GAAG,IAAI,EAAE,GAAG,KAAK,MAAM,IAAI,IAAI,GAAG,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAG9J;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,SAAS,KAAK,GAAG,IAAI,EAAE,GAAG,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,GAiErE,gBAAgB,CAAC,IAAI,CAAC,CACxC;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,SAAS,KAAK,GAAG,IAAI,EAAE,GAAG,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,0BAS7F;AAGD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,SAAS,KAAK,GAAG,IAAI,EAAE,GAAG,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI;kBAkCvE,GAAG;QAdxB;;WAEG;6BACkB,aAAa,uCAA6C;QAgB/E;;;;;WAKG;YACC,CAAC,SAAS,OAAO,uCAA6C;QAKlE;;;;;WAKG;sBACiB,GAAG;QAMvB;;;WAGG;;;;;;;;;;IA9DH;;;OAGG;;IAGH;;OAEG;;QASH;;WAEG;6BACkB,aAAa,uCAA6C;QAgB/E;;;;;WAKG;YACC,CAAC,SAAS,OAAO,uCAA6C;QAKlE;;;;;WAKG;sBACiB,GAAG;QAMvB;;;WAGG;;;;;;;;;;;QA7CH;;WAEG;6BACkB,aAAa,uCAA6C;QAgB/E;;;;;WAKG;YACC,CAAC,SAAS,OAAO,uCAA6C;QAKlE;;;;;WAKG;sBACiB,GAAG;QAMvB;;;WAGG;;;;;;;;;;IAtCH;;OAEG;QACQ,MAAM,SAAS,OAAO;QAVjC;;WAEG;6BACkB,aAAa,uCAA6C;QAgB/E;;;;;WAKG;YACC,CAAC,SAAS,OAAO,uCAA6C;QAKlE;;;;;WAKG;sBACiB,GAAG;QAMvB;;;WAGG;;;;;;;;;6BAnC2E,UAAU,MAAM,WAAW,aAAa,CAAC,MAAM,CAAC;SA4CjI"}
1
+ {"version":3,"file":"decorator.d.ts","sourceRoot":"","sources":["../../src/plugin-host/decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAmB,MAAM,yBAAyB,CAAC;AAEtG,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAC,MAAM,UAAU,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,SAAS,SAAS,mBAAmB,CAAC,GAAG,CAAC,IAAI,SAAS,GAAG,gBAAgB,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AAGnL;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,SAAS,mBAAmB,EAAE,MAAM,EAAE,SAAS,GA+EtE,gBAAgB,CAAC,SAAS,CAAC,CAC7C;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,SAAS,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,0BASjF;AAGD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,SAAS,WAAW,EAAE,MAAM,EAAE,SAAS;kBAyChE,GAAG;;QArBxB;;WAEG;6BACkB,mBAAmB,4CAA6C;QAuBrF;;;;;WAKG;kBACO,CAAC,SAAS,OAAO,4CAA6C;QAIxE;;WAEG;kBACO,CAAC,8DAA0D,qBAAqB,4BAA0B;QAKpH;;;;;WAKG;sBACW,GAAG,GAAE,GAAG;QAYtB;;;WAGG;;;IAlFH;;;OAGG;;IAGH;;OAEG;;;QASH;;WAEG;6BACkB,mBAAmB,4CAA6C;QAuBrF;;;;;WAKG;kBACO,CAAC,SAAS,OAAO,4CAA6C;QAIxE;;WAEG;kBACO,CAAC,8DAA0D,qBAAqB,4BAA0B;QAKpH;;;;;WAKG;sBACW,GAAG,GAAE,GAAG;QAYtB;;;WAGG;;;;;QAjEH;;WAEG;6BACkB,mBAAmB,4CAA6C;QAuBrF;;;;;WAKG;kBACO,CAAC,SAAS,OAAO,4CAA6C;QAIxE;;WAEG;kBACO,CAAC,8DAA0D,qBAAqB,4BAA0B;QAKpH;;;;;WAKG;sBACW,GAAG,GAAE,GAAG;QAYtB;;;WAGG;;;IA1DH;;OAEG;cACc,MAAM,SAAS,OAAO;;QAVvC;;WAEG;6BACkB,mBAAmB,4CAA6C;QAuBrF;;;;;WAKG;kBACO,CAAC,SAAS,OAAO,4CAA6C;QAIxE;;WAEG;kBACO,CAAC,8DAA0D,qBAAqB,4BAA0B;QAKpH;;;;;WAKG;sBACW,GAAG,GAAE,GAAG;QAYtB;;;WAGG;;kCAvDiF,UAAU,MAAM,WAAW,aAAa,CAAC,MAAM,CAAC;IAIpI;;OAEG;cACc,CAAC,OAAO,aAAa,6BAA2B,CAAC,CAAC,GAAE,OAAO;cAiE/E"}