plugin-tls 0.0.0 → 1.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 (210) hide show
  1. package/README.md +5 -5
  2. package/dist/extend/extend.d.ts +222 -0
  3. package/dist/extend/extend.d.ts.map +1 -0
  4. package/dist/extend/mixin.d.ts +105 -0
  5. package/dist/extend/mixin.d.ts.map +1 -0
  6. package/dist/index.d.ts +14 -4
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/options-manager/ModeOptions.d.ts +88 -0
  9. package/dist/options-manager/ModeOptions.d.ts.map +1 -0
  10. package/dist/options-manager/OptionsManager.d.ts +105 -0
  11. package/dist/options-manager/OptionsManager.d.ts.map +1 -0
  12. package/dist/options-manager/TierModeOptions.d.ts +69 -0
  13. package/dist/options-manager/TierModeOptions.d.ts.map +1 -0
  14. package/dist/options-manager/TierOptions.d.ts +48 -0
  15. package/dist/options-manager/TierOptions.d.ts.map +1 -0
  16. package/dist/{defaultOptions.d.ts → options-manager/defaultOptions.d.ts} +2 -1
  17. package/dist/options-manager/defaultOptions.d.ts.map +1 -0
  18. package/dist/options-manager/tools.d.ts +35 -0
  19. package/dist/options-manager/tools.d.ts.map +1 -0
  20. package/dist/plugin-host/PluginHost.d.ts +184 -0
  21. package/dist/plugin-host/PluginHost.d.ts.map +1 -0
  22. package/dist/plugin-host/TierModeOptionsPluginHost.d.ts +102 -0
  23. package/dist/plugin-host/TierModeOptionsPluginHost.d.ts.map +1 -0
  24. package/dist/plugin-host/TierOptionsPluginHost.d.ts +83 -0
  25. package/dist/plugin-host/TierOptionsPluginHost.d.ts.map +1 -0
  26. package/dist/plugin-manager/PluginManager.d.ts +119 -0
  27. package/dist/plugin-manager/PluginManager.d.ts.map +1 -0
  28. package/dist/plugin-manager/PluginManagerWithInit.d.ts +36 -0
  29. package/dist/plugin-manager/PluginManagerWithInit.d.ts.map +1 -0
  30. package/dist/plugin-tls.d.ts +1329 -0
  31. package/dist/plugin-tls.iife.js +1 -0
  32. package/dist/plugin-tls.mjs +1064 -0
  33. package/dist/plugin-tls.umd.js +1 -1
  34. package/dist/properties.d.ts +30 -0
  35. package/dist/properties.d.ts.map +1 -0
  36. package/dist/tsdoc-metadata.json +11 -0
  37. package/doc/{plugin-tls.adddefaultoptions.md → api/plugin-tls.adddefaultoptions.md} +3 -3
  38. package/doc/{plugin-tls.addinstoptions.md → api/plugin-tls.addinstoptions.md} +2 -2
  39. package/doc/api/plugin-tls.allfunctionapply.md +26 -0
  40. package/doc/api/plugin-tls.becomepluginhost.md +15 -0
  41. package/doc/api/plugin-tls.becomepluginhost_extends.md +38 -0
  42. package/doc/api/plugin-tls.becomepluginhost_proxy.md +29 -0
  43. package/doc/api/plugin-tls.becometiermodeoptionshost.md +15 -0
  44. package/doc/api/plugin-tls.becometieroptionshost.md +15 -0
  45. package/doc/api/plugin-tls.classextender.md +15 -0
  46. package/doc/api/plugin-tls.classextenderprivatemember._constructors.md +13 -0
  47. package/doc/api/plugin-tls.classextenderprivatemember._destroys.md +13 -0
  48. package/doc/api/plugin-tls.classextenderprivatemember.md +21 -0
  49. package/doc/api/plugin-tls.classextenderprivatememberwithinit._inits.md +13 -0
  50. package/doc/api/plugin-tls.classextenderprivatememberwithinit.md +21 -0
  51. package/doc/api/plugin-tls.classextenderwithinit.md +15 -0
  52. package/doc/api/plugin-tls.classtype._new_.md +22 -0
  53. package/doc/api/plugin-tls.classtype.md +20 -0
  54. package/doc/api/plugin-tls.commonmodename.md +18 -0
  55. package/doc/api/plugin-tls.createcallerofprivatememberofextend.md +30 -0
  56. package/doc/api/plugin-tls.createdefinemixin.md +23 -0
  57. package/doc/api/plugin-tls.createextendtarget.md +30 -0
  58. package/doc/api/plugin-tls.createextendtargetwithinit.md +30 -0
  59. package/doc/api/plugin-tls.createmixintarget.md +30 -0
  60. package/doc/api/plugin-tls.createpluginhost.md +35 -0
  61. package/doc/api/plugin-tls.createpropertysetter.md +30 -0
  62. package/doc/api/plugin-tls.createtargetextend.md +30 -0
  63. package/doc/api/plugin-tls.createtargetextendwithinit.md +30 -0
  64. package/doc/api/plugin-tls.createtargetmixin.md +30 -0
  65. package/doc/api/plugin-tls.createtiermodeoptionspluginhost.md +32 -0
  66. package/doc/api/plugin-tls.createtieroptionspluginhost.md +30 -0
  67. package/doc/api/plugin-tls.defineextend.md +35 -0
  68. package/doc/api/plugin-tls.defineextendwithinit.md +35 -0
  69. package/doc/api/plugin-tls.definemixin.md +31 -0
  70. package/doc/api/plugin-tls.extendtarget.md +31 -0
  71. package/doc/api/plugin-tls.extendtargetwithinit.md +31 -0
  72. package/doc/api/plugin-tls.formatuseparameters.md +13 -0
  73. package/doc/api/plugin-tls.formatusepluginparameters.md +15 -0
  74. package/doc/api/plugin-tls.getnormalizepluginoptions.md +15 -0
  75. package/doc/api/plugin-tls.getpluginoptions.md +15 -0
  76. package/doc/api/plugin-tls.getpropertyvalue.md +26 -0
  77. package/doc/api/plugin-tls.getpropertyvaluebypath.md +26 -0
  78. package/doc/api/plugin-tls.gettargetproperties.md +26 -0
  79. package/doc/{plugin-tls.hostinst.md → api/plugin-tls.hostinst.md} +2 -2
  80. package/doc/{plugin-tls.idefaultoptionshost.defaultoptions.md → api/plugin-tls.idefaultoptionshost.defaultoptions.md} +1 -1
  81. package/doc/{plugin-tls.idefaultoptionshost.md → api/plugin-tls.idefaultoptionshost.md} +1 -1
  82. package/doc/{plugin-tls.iidefaultoptionshostconstructor.md → api/plugin-tls.iidefaultoptionshostconstructor.md} +1 -1
  83. package/doc/{plugin-tls.iplugin.created.md → api/plugin-tls.iplugin.created.md} +4 -4
  84. package/doc/api/plugin-tls.iplugin.destroyed.md +25 -0
  85. package/doc/{plugin-tls.iplugin.md → api/plugin-tls.iplugin.md} +4 -3
  86. package/doc/{plugin-tls.iplugin.used.md → api/plugin-tls.iplugin.used.md} +4 -4
  87. package/doc/{plugin-tls.ipluginhost.md → api/plugin-tls.ipluginhost.md} +2 -2
  88. package/doc/{plugin-tls.ipluginhost.use.md → api/plugin-tls.ipluginhost.use.md} +6 -6
  89. package/doc/{plugin-tls.ipluginhostconstructor.md → api/plugin-tls.ipluginhostconstructor.md} +2 -2
  90. package/doc/{plugin-tls.ipluginhostconstructor.use.md → api/plugin-tls.ipluginhostconstructor.use.md} +6 -6
  91. package/doc/api/plugin-tls.ipluginwithinit.inited.md +25 -0
  92. package/doc/api/plugin-tls.ipluginwithinit.md +21 -0
  93. package/doc/api/plugin-tls.itiermodeoptionshost.md +21 -0
  94. package/doc/api/plugin-tls.itiermodeoptionshost.mode.md +11 -0
  95. package/doc/api/plugin-tls.itiermodeoptionshost.modeoptions.md +11 -0
  96. package/doc/api/plugin-tls.itiermodeoptionshostconstructor.md +13 -0
  97. package/doc/api/plugin-tls.itiermodeoptionspluginhost.md +15 -0
  98. package/doc/api/plugin-tls.itiermodeoptionspluginhostconstructor.md +15 -0
  99. package/doc/api/plugin-tls.itieroptionshost.defaultoptions.md +11 -0
  100. package/doc/api/plugin-tls.itieroptionshost.md +20 -0
  101. package/doc/api/plugin-tls.itieroptionshostconstructor.md +13 -0
  102. package/doc/api/plugin-tls.itieroptionspluginhost.md +15 -0
  103. package/doc/api/plugin-tls.itieroptionspluginhostconstructor.md +15 -0
  104. package/doc/api/plugin-tls.md +121 -0
  105. package/doc/api/plugin-tls.mergeproperties.md +25 -0
  106. package/doc/api/plugin-tls.mixin_4.md +33 -0
  107. package/doc/api/plugin-tls.mixintarget.md +31 -0
  108. package/doc/api/plugin-tls.modeoptions._constructor_.md +20 -0
  109. package/doc/api/plugin-tls.modeoptions._constructor__1.md +21 -0
  110. package/doc/api/plugin-tls.modeoptions._mode.md +11 -0
  111. package/doc/api/plugin-tls.modeoptions._modenames.md +11 -0
  112. package/doc/api/plugin-tls.modeoptions._plainfulloption.md +11 -0
  113. package/doc/api/plugin-tls.modeoptions.getfullmodeoption.md +29 -0
  114. package/doc/api/plugin-tls.modeoptions.getmodenames.md +18 -0
  115. package/doc/api/plugin-tls.modeoptions.getmodeoption.md +29 -0
  116. package/doc/api/plugin-tls.modeoptions.hasmode.md +25 -0
  117. package/doc/api/plugin-tls.modeoptions.md +57 -0
  118. package/doc/api/plugin-tls.modeoptions.mode.md +15 -0
  119. package/doc/api/plugin-tls.modeoptions.modenames.md +13 -0
  120. package/doc/api/plugin-tls.modeoptions.modes.md +13 -0
  121. package/doc/api/plugin-tls.modeoptions.option.md +13 -0
  122. package/doc/api/plugin-tls.modeoptions.optionmanager.md +13 -0
  123. package/doc/api/plugin-tls.modeoptions.plainfulloption.md +11 -0
  124. package/doc/api/plugin-tls.modeoptions.setmodeoption.md +27 -0
  125. package/doc/api/plugin-tls.modeoptions.updatefulloption.md +17 -0
  126. package/doc/api/plugin-tls.normalizepluginoptions.md +18 -0
  127. package/doc/api/plugin-tls.parsepropertypath.md +25 -0
  128. package/doc/{plugin-tls.plugincreatedreturntype.md → api/plugin-tls.plugincreatedreturntype.md} +3 -3
  129. package/doc/{plugin-tls.pluginhost._pluginmanager.md → api/plugin-tls.pluginhost._pluginmanager.md} +2 -2
  130. package/doc/api/plugin-tls.pluginhost.destroy.md +18 -0
  131. package/doc/api/plugin-tls.pluginhost.md +38 -0
  132. package/doc/{plugin-tls.pluginhost.pluginmanager.md → api/plugin-tls.pluginhost.pluginmanager.md} +2 -2
  133. package/doc/{plugin-tls.pluginhost.use.md → api/plugin-tls.pluginhost.use.md} +5 -5
  134. package/doc/api/plugin-tls.pluginmanager._constructor_.md +20 -0
  135. package/doc/{plugin-tls.pluginmanager.created.md → api/plugin-tls.pluginmanager.created.md} +4 -4
  136. package/doc/api/plugin-tls.pluginmanager.destroyed.md +28 -0
  137. package/doc/{plugin-tls.pluginmanager.host.md → api/plugin-tls.pluginmanager.host.md} +2 -2
  138. package/doc/api/plugin-tls.pluginmanager.instuse.md +30 -0
  139. package/doc/{plugin-tls.pluginmanager.md → api/plugin-tls.pluginmanager.md} +12 -5
  140. package/doc/{plugin-tls.pluginmanager.pluginoptsmap.md → api/plugin-tls.pluginmanager.pluginoptsmap.md} +2 -2
  141. package/doc/{plugin-tls.pluginmanager.plugins.md → api/plugin-tls.pluginmanager.plugins.md} +2 -2
  142. package/doc/{plugin-tls.pluginmanager.use.md → api/plugin-tls.pluginmanager.use.md} +6 -6
  143. package/doc/api/plugin-tls.pluginmanagerwithinit.inited.md +28 -0
  144. package/doc/api/plugin-tls.pluginmanagerwithinit.md +25 -0
  145. package/doc/{plugin-tls.pluginusereturntype.md → api/plugin-tls.pluginusereturntype.md} +3 -3
  146. package/doc/api/plugin-tls.privatememberofextend._constructor.md +32 -0
  147. package/doc/api/plugin-tls.privatememberofextend._destroy.md +25 -0
  148. package/doc/api/plugin-tls.privatememberofextend.md +21 -0
  149. package/doc/api/plugin-tls.privatememberofextendwithinit._init.md +28 -0
  150. package/doc/api/plugin-tls.privatememberofextendwithinit.md +21 -0
  151. package/doc/api/plugin-tls.replaceconstructorparameters.md +13 -0
  152. package/doc/api/plugin-tls.replaceconstructorreturn.md +13 -0
  153. package/doc/api/plugin-tls.setpropertyvalue.md +27 -0
  154. package/doc/api/plugin-tls.setpropertyvaluebypath.md +27 -0
  155. package/doc/api/plugin-tls.targetextend.md +31 -0
  156. package/doc/api/plugin-tls.targetextendwithinit.md +31 -0
  157. package/doc/api/plugin-tls.targetmixin.md +31 -0
  158. package/doc/api/plugin-tls.tiermodeoptions._constructor_.md +20 -0
  159. package/doc/api/plugin-tls.tiermodeoptions._constructor__1.md +22 -0
  160. package/doc/api/plugin-tls.tiermodeoptions._extends.md +11 -0
  161. package/doc/api/plugin-tls.tiermodeoptions.extends.md +15 -0
  162. package/doc/api/plugin-tls.tiermodeoptions.getfullmodeoption.md +29 -0
  163. package/doc/api/plugin-tls.tiermodeoptions.getmember.md +25 -0
  164. package/doc/api/plugin-tls.tiermodeoptions.getmodenames.md +18 -0
  165. package/doc/api/plugin-tls.tiermodeoptions.getmodeoptionmanager.md +25 -0
  166. package/doc/api/plugin-tls.tiermodeoptions.getvalue.md +25 -0
  167. package/doc/api/plugin-tls.tiermodeoptions.hasmodeontier.md +25 -0
  168. package/doc/api/plugin-tls.tiermodeoptions.md +45 -0
  169. package/doc/api/plugin-tls.tiermodeoptions.optionmanager.md +13 -0
  170. package/doc/api/plugin-tls.tiermodeoptionsdecorator.md +30 -0
  171. package/doc/api/plugin-tls.tiermodeoptionspluginhost._constructor_.md +20 -0
  172. package/doc/api/plugin-tls.tiermodeoptionspluginhost._modeoptions.md +11 -0
  173. package/doc/api/plugin-tls.tiermodeoptionspluginhost.md +37 -0
  174. package/doc/api/plugin-tls.tiermodeoptionspluginhost.mode.md +13 -0
  175. package/doc/api/plugin-tls.tiermodeoptionspluginhost.modeoptions.md +13 -0
  176. package/doc/api/plugin-tls.tiermodeoptionspluginhost.options.md +11 -0
  177. package/doc/api/plugin-tls.tieroptions._constructor_.md +21 -0
  178. package/doc/api/plugin-tls.tieroptions._extends.md +11 -0
  179. package/doc/api/plugin-tls.tieroptions._plainfulloption.md +11 -0
  180. package/doc/api/plugin-tls.tieroptions.extends.md +15 -0
  181. package/doc/api/plugin-tls.tieroptions.getmember.md +25 -0
  182. package/doc/api/plugin-tls.tieroptions.getvalue.md +25 -0
  183. package/doc/api/plugin-tls.tieroptions.md +37 -0
  184. package/doc/api/plugin-tls.tieroptions.option.md +13 -0
  185. package/doc/api/plugin-tls.tieroptions.plainfulloption.md +18 -0
  186. package/doc/api/plugin-tls.tieroptions.updatefulloption.md +17 -0
  187. package/doc/api/plugin-tls.tieroptionsdecorator.md +30 -0
  188. package/doc/api/plugin-tls.tieroptionspluginhost._constructor_.md +20 -0
  189. package/doc/api/plugin-tls.tieroptionspluginhost._defaultoptions.md +11 -0
  190. package/doc/api/plugin-tls.tieroptionspluginhost.defaultoptions.md +13 -0
  191. package/doc/api/plugin-tls.tieroptionspluginhost.md +35 -0
  192. package/package.json +23 -15
  193. package/dist/OptionsPluginHost.d.ts +0 -49
  194. package/dist/PluginHost.d.ts +0 -96
  195. package/dist/PluginManager.d.ts +0 -76
  196. package/dist/plugin-tls.es.js +0 -170
  197. package/doc/plugin-tls.createoptionspluginhost.md +0 -29
  198. package/doc/plugin-tls.createpluginhost.md +0 -30
  199. package/doc/plugin-tls.ioptionspluginhost.defaultoptions.md +0 -11
  200. package/doc/plugin-tls.ioptionspluginhost.md +0 -21
  201. package/doc/plugin-tls.ioptionspluginhostconstructor.md +0 -15
  202. package/doc/plugin-tls.md +0 -53
  203. package/doc/plugin-tls.optionspluginhost._defaultoptions.md +0 -11
  204. package/doc/plugin-tls.optionspluginhost.defaultoptions.md +0 -13
  205. package/doc/plugin-tls.optionspluginhost.md +0 -21
  206. package/doc/plugin-tls.pluginhost._constructor_.md +0 -13
  207. package/doc/plugin-tls.pluginhost.md +0 -25
  208. package/doc/plugin-tls.pluginmanager.instuse.md +0 -30
  209. package/doc/plugin-tls.pluginoptions.md +0 -11
  210. /package/doc/{index.md → api/index.md} +0 -0
@@ -1,96 +0,0 @@
1
- import { PluginManager, IPlugin, PluginOptions, PluginCreatedReturnType, PluginUseReturnType } from "./PluginManager";
2
- /**
3
- * 插件宿主的接口
4
- */
5
- export interface IPluginHost<HOST> {
6
- /**
7
- * PluginHost 的插件管理器
8
- */
9
- get pluginManager(): PluginManager<HOST>;
10
- /**
11
- * 实例的注册插件的方法
12
- * @param plugin
13
- * @param options
14
- * @returns
15
- */
16
- use<Options extends PluginOptions, Plugin extends IPlugin<HOST, Options>>(plugin: Plugin, options?: Options): PluginCreatedReturnType<Plugin> | undefined;
17
- }
18
- /**
19
- * 插件宿主构造函数的接口
20
- */
21
- export interface IPluginHostConstructor<HOST> {
22
- /**
23
- * PluginHost 的插件管理器
24
- */
25
- get pluginManager(): PluginManager<HOST>;
26
- /**
27
- * {@inheritDoc PluginManager.use}
28
- */
29
- use<Plugin extends IPlugin<HOST, Options>, Options>(plugin: Plugin, options: Options): PluginUseReturnType<Plugin> | undefined;
30
- }
31
- /**
32
- * 插件的宿主
33
- *
34
- * @remarks
35
- * 插件宿主 就是 拥有插件机制的宿主
36
- */
37
- export declare class PluginHost {
38
- /**
39
- * 插件管理器
40
- */
41
- static get pluginManager(): PluginManager<any>;
42
- static _pluginManager: PluginManager<any>;
43
- /**
44
- * 插件管理器 {@link PluginHost.pluginManager}
45
- */
46
- get pluginManager(): PluginManager<any>;
47
- /**
48
- * {@inheritDoc PluginManager.use}
49
- */
50
- static use<Plugin extends IPlugin<HOST, Options>, Options extends PluginOptions, HOST = typeof PluginHost>(plugin: Plugin, options: Options): ReturnType<Plugin["used"]> | undefined;
51
- constructor();
52
- /**
53
- * 实例的注册插件的方法
54
- * @param plugin
55
- * @param options
56
- * @returns
57
- */
58
- use<Options extends PluginOptions, Plugin extends IPlugin<typeof PluginHost, Options>>(plugin: Plugin, options?: Options): PluginCreatedReturnType<Plugin> | undefined;
59
- }
60
- /**
61
- * 创建插件的缩主类
62
- *
63
- * @remarks
64
- * 比 直接使用 PluginHost 提供了完善的类型推导
65
- * @returns
66
- */
67
- export declare function createPluginHost<HOST>(): {
68
- new (): {
69
- /**
70
- * 插件管理器 {@link CEarth.pluginManager}
71
- */
72
- readonly pluginManager: PluginManager<HOST>;
73
- /**
74
- * 实例的注册插件的方法
75
- * @param plugin
76
- * @param options
77
- * @returns
78
- */
79
- use<Options extends unknown, Plugin_1 extends IPlugin<HOST, Options>>(plugin: Plugin_1, options?: Options | undefined): PluginCreatedReturnType<Plugin_1> | undefined;
80
- };
81
- /**
82
- * PluginHost 的插件管理器
83
- */
84
- readonly pluginManager: PluginManager<HOST>;
85
- _pluginManager: PluginManager<HOST>;
86
- /**
87
- * {@inheritDoc PluginManager.use}
88
- */
89
- use<Options_1>(plugin: IPlugin<HOST, Options_1>, options: Options_1): any;
90
- };
91
- /**
92
- * 插件缩主类的装饰器
93
- * @param target
94
- * @returns
95
- */
96
- export declare function pluginHost<HOST extends new (...args: any) => any>(target: HOST): HOST;
@@ -1,76 +0,0 @@
1
- import { AnyFunction } from "type-tls";
2
- /**
3
- * 插件宿主的实例类型
4
- */
5
- export declare type HostInst<H> = H extends new (...args: any) => any ? InstanceType<H> : H;
6
- /**
7
- * 插件的接口
8
- *
9
- * @typeParam HOST - 插件宿主的类类型
10
- * @typeParam Options - 插件的选项类型
11
- */
12
- export interface IPlugin<HOST, Options = any> {
13
- /**
14
- * 当插件被注册时调用
15
- * @param Host - 宿主的类型
16
- * @param options - 注册插件时的选项
17
- */
18
- used(Host: HOST, options?: Options): any;
19
- /**
20
- * 当宿主实例被创建时调用
21
- * @param host - 新建的宿主实例
22
- * @param options - 注册插件时的选项
23
- */
24
- created?(host: HostInst<HOST>, options?: Options): any;
25
- }
26
- export declare type PluginOptions = any;
27
- /**
28
- * 插件的 used 方法的返回值类型
29
- */
30
- export declare type PluginUseReturnType<P extends IPlugin<any>> = ReturnType<P["used"]>;
31
- /**
32
- * 插件的 created 方法的返回值类型
33
- */
34
- export declare type PluginCreatedReturnType<P extends IPlugin<any>> = P["created"] extends AnyFunction ? ReturnType<P["created"]> : void;
35
- /**
36
- * 插件管理者
37
- *
38
- * @remarks
39
- * 负责管理插件的注册、应用 等
40
- */
41
- export declare class PluginManager<HOST> {
42
- /**
43
- * 插件的宿主
44
- */
45
- host: HOST;
46
- /**
47
- * 插件与插件选项的映射
48
- */
49
- pluginOptsMap: Map<IPlugin<HOST, any>, any>;
50
- /**
51
- * 注册的插件
52
- */
53
- plugins: IPlugin<HOST>[];
54
- /**
55
- * 使用插件、注册插件
56
- * @param plugin - 插件
57
- * @param options - 传递给插件的选项
58
- */
59
- use<Options extends PluginOptions, Plugin extends IPlugin<HOST, Options>>(plugin: Plugin, options?: Options): PluginUseReturnType<Plugin> | undefined;
60
- /**
61
- * 插件宿主创建实例时调用
62
- *
63
- * @remarks
64
- * 会调用每个插件的 {@link IPlugin.created | IPlugin.created()} 方法
65
- * @param hostInst - 插件宿主的新实例
66
- */
67
- created(hostInst: HostInst<HOST>): void;
68
- /**
69
- * 插件宿主实例的注册插件的方法
70
- *
71
- * @remarks
72
- * 会调用每个插件的 {@link IPlugin.created | IPlugin.created()} 方法
73
- * @param hostInst - 插件宿主的新实例
74
- */
75
- instUse<Options extends PluginOptions, Plugin extends IPlugin<HOST, Options>>(hostInst: HostInst<HOST>, plugin: Plugin, options?: Options): PluginCreatedReturnType<Plugin> | undefined;
76
- }
@@ -1,170 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
- var __publicField = (obj, key, value) => {
4
- __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
- return value;
6
- };
7
- import { mixinTarget, extendTarget } from "type-tls";
8
- import { deepCopy } from "@gby/deep-copy";
9
- class PluginManager {
10
- constructor() {
11
- __publicField(this, "host");
12
- __publicField(this, "pluginOptsMap", /* @__PURE__ */ new Map());
13
- __publicField(this, "plugins", []);
14
- }
15
- use(plugin, options) {
16
- const pluginOptsMap = this.pluginOptsMap;
17
- if (pluginOptsMap.has(plugin)) {
18
- return;
19
- }
20
- this.plugins.push(plugin);
21
- pluginOptsMap.set(plugin, options);
22
- return plugin.used(this.host, options);
23
- }
24
- created(hostInst) {
25
- var _a;
26
- for (const plugin of this.plugins) {
27
- const options = this.pluginOptsMap.get(plugin);
28
- (_a = plugin.created) == null ? void 0 : _a.call(plugin, hostInst, options);
29
- }
30
- }
31
- instUse(hostInst, plugin, options) {
32
- var _a;
33
- const pluginOptsMap = this.pluginOptsMap;
34
- if (pluginOptsMap.has(plugin)) {
35
- return;
36
- }
37
- this.use(plugin, options);
38
- return (_a = plugin.created) == null ? void 0 : _a.call(plugin, hostInst, options);
39
- }
40
- }
41
- class PluginHost {
42
- static get pluginManager() {
43
- let pluginManager = this._pluginManager;
44
- if (!pluginManager) {
45
- pluginManager = new PluginManager();
46
- pluginManager.host = this;
47
- this._pluginManager = pluginManager;
48
- }
49
- return pluginManager;
50
- }
51
- get pluginManager() {
52
- return this.constructor.pluginManager;
53
- }
54
- static use(plugin, options) {
55
- return this.pluginManager.use(plugin, options);
56
- }
57
- constructor() {
58
- this.pluginManager.created(this);
59
- }
60
- use(plugin, options) {
61
- return this.constructor.pluginManager.instUse(this, plugin, options);
62
- }
63
- }
64
- __publicField(PluginHost, "_pluginManager");
65
- function createPluginHost() {
66
- var _a;
67
- return _a = class {
68
- static get pluginManager() {
69
- let pluginManager = this._pluginManager;
70
- if (!pluginManager) {
71
- pluginManager = new PluginManager();
72
- pluginManager.host = this;
73
- this._pluginManager = pluginManager;
74
- }
75
- return pluginManager;
76
- }
77
- get pluginManager() {
78
- return this.constructor.pluginManager;
79
- }
80
- static use(plugin, options) {
81
- return this.pluginManager.use(plugin, options);
82
- }
83
- constructor() {
84
- this.pluginManager.created(this);
85
- }
86
- use(plugin, options) {
87
- return this.pluginManager.instUse(this, plugin, options);
88
- }
89
- }, __publicField(_a, "_pluginManager"), _a;
90
- }
91
- function pluginHost(target) {
92
- const newTarget = mixinTarget(target, {
93
- get pluginManager() {
94
- let pluginManager = this._pluginManager;
95
- if (!pluginManager) {
96
- pluginManager = new PluginManager();
97
- pluginManager.host = this;
98
- this._pluginManager = pluginManager;
99
- }
100
- return pluginManager;
101
- },
102
- use(plugin, options) {
103
- return this.pluginManager.use(plugin, options);
104
- }
105
- });
106
- mixinTarget(newTarget.prototype, {
107
- get pluginManager() {
108
- return this.constructor.pluginManager;
109
- },
110
- use(plugin, options) {
111
- return this.pluginManager.instUse(this, plugin, options);
112
- }
113
- });
114
- return new Proxy(target, {
115
- construct: function(target2, argumentsList, receiver) {
116
- const obj = new target2(...argumentsList);
117
- newTarget.pluginManager.created(this);
118
- return obj;
119
- }
120
- });
121
- }
122
- class OptionsPluginHost extends PluginHost {
123
- constructor() {
124
- super(...arguments);
125
- __publicField(this, "_defaultOptions");
126
- }
127
- get defaultOptions() {
128
- return this._defaultOptions || (this._defaultOptions = deepCopy(this.constructor.defaultOptions));
129
- }
130
- }
131
- __publicField(OptionsPluginHost, "defaultOptions", {});
132
- function createOptionsPluginHost() {
133
- var _a;
134
- const PluginHost2 = createPluginHost();
135
- return _a = class extends PluginHost2 {
136
- constructor() {
137
- super(...arguments);
138
- __publicField(this, "_defaultOptions");
139
- }
140
- get defaultOptions() {
141
- return this._defaultOptions || (this._defaultOptions = deepCopy(this.constructor.defaultOptions));
142
- }
143
- }, __publicField(_a, "defaultOptions", {}), _a;
144
- }
145
- function addDefaultOptions(options, name) {
146
- const propName = name != null ? name : "defaultOptions";
147
- const priName = `_${propName}`;
148
- return function defaultOptions(target) {
149
- const newTarget = mixinTarget(target, {
150
- get [propName]() {
151
- return options;
152
- }
153
- });
154
- extendTarget(newTarget, {
155
- get [propName]() {
156
- return this[priName] || (this[priName] = structuredClone(newTarget.defaultOptions));
157
- }
158
- });
159
- };
160
- }
161
- function addInstOptions(target, propertyKey, descriptor) {
162
- const priName = `_${propertyKey}`;
163
- extendTarget(target, {
164
- get [propertyKey]() {
165
- return this[priName] || (this[priName] = structuredClone(target[propertyKey]));
166
- }
167
- });
168
- return descriptor;
169
- }
170
- export { OptionsPluginHost, PluginHost, PluginManager, addDefaultOptions, addInstOptions, createOptionsPluginHost, createPluginHost, pluginHost };
@@ -1,29 +0,0 @@
1
- <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
-
3
- [Home](./index.md) &gt; [plugin-tls](./plugin-tls.md) &gt; [createOptionsPluginHost](./plugin-tls.createoptionspluginhost.md)
4
-
5
- ## createOptionsPluginHost() function
6
-
7
- 创建带有选项机制的插件宿主类 比 直接使用 OptionsPluginHost 提供了完善的类型推导
8
-
9
- <b>Signature:</b>
10
-
11
- ```typescript
12
- export declare function createOptionsPluginHost<HOST, Options>(): {
13
- new (): {
14
- readonly defaultOptions: Options;
15
- _defaultOptions: Options;
16
- readonly pluginManager: import("./PluginManager").PluginManager<HOST>;
17
- use<Options_1 extends unknown, Plugin_1 extends import("./PluginManager").IPlugin<HOST, Options_1>>(plugin: Plugin_1, options?: Options_1 | undefined): import("./PluginManager").PluginCreatedReturnType<Plugin_1> | undefined;
18
- };
19
- readonly defaultOptions: Options;
20
- readonly pluginManager: import("./PluginManager").PluginManager<HOST>;
21
- _pluginManager: import("./PluginManager").PluginManager<HOST>;
22
- use<Options_2>(plugin: import("./PluginManager").IPlugin<HOST, Options_2>, options: Options_2): any;
23
- };
24
- ```
25
- <b>Returns:</b>
26
-
27
- { new (): { readonly defaultOptions: Options; \_defaultOptions: Options; readonly pluginManager: import("./PluginManager").[PluginManager](./plugin-tls.pluginmanager.md)<!-- -->&lt;HOST&gt;; use&lt;Options\_1 extends unknown, Plugin\_1 extends import("./PluginManager").[IPlugin](./plugin-tls.iplugin.md)<!-- -->&lt;HOST, Options\_1&gt;&gt;(plugin: Plugin\_1, options?: Options\_1 \| undefined): import("./PluginManager").[PluginCreatedReturnType](./plugin-tls.plugincreatedreturntype.md)<!-- -->&lt;Plugin\_1&gt; \| undefined; }; readonly defaultOptions: Options; readonly pluginManager: import("./PluginManager").[PluginManager](./plugin-tls.pluginmanager.md)<!-- -->&lt;HOST&gt;; \_pluginManager: import("./PluginManager").[PluginManager](./plugin-tls.pluginmanager.md)<!-- -->&lt;HOST&gt;; use&lt;Options\_2&gt;(plugin: import("./PluginManager").[IPlugin](./plugin-tls.iplugin.md)<!-- -->&lt;HOST, Options\_2&gt;, options: Options\_2): any; }
28
-
29
-
@@ -1,30 +0,0 @@
1
- <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
-
3
- [Home](./index.md) &gt; [plugin-tls](./plugin-tls.md) &gt; [createPluginHost](./plugin-tls.createpluginhost.md)
4
-
5
- ## createPluginHost() function
6
-
7
- 创建插件的缩主类
8
-
9
- <b>Signature:</b>
10
-
11
- ```typescript
12
- export declare function createPluginHost<HOST>(): {
13
- new (): {
14
- readonly pluginManager: PluginManager<HOST>;
15
- use<Options extends unknown, Plugin_1 extends IPlugin<HOST, Options>>(plugin: Plugin_1, options?: Options | undefined): PluginCreatedReturnType<Plugin_1> | undefined;
16
- };
17
- readonly pluginManager: PluginManager<HOST>;
18
- _pluginManager: PluginManager<HOST>;
19
- use<Options_1>(plugin: IPlugin<HOST, Options_1>, options: Options_1): any;
20
- };
21
- ```
22
- <b>Returns:</b>
23
-
24
- { new (): { readonly pluginManager: [PluginManager](./plugin-tls.pluginmanager.md)<!-- -->&lt;HOST&gt;; use&lt;Options extends unknown, Plugin\_1 extends [IPlugin](./plugin-tls.iplugin.md)<!-- -->&lt;HOST, Options&gt;&gt;(plugin: Plugin\_1, options?: Options \| undefined): [PluginCreatedReturnType](./plugin-tls.plugincreatedreturntype.md)<!-- -->&lt;Plugin\_1&gt; \| undefined; }; readonly pluginManager: [PluginManager](./plugin-tls.pluginmanager.md)<!-- -->&lt;HOST&gt;; \_pluginManager: [PluginManager](./plugin-tls.pluginmanager.md)<!-- -->&lt;HOST&gt;; use&lt;Options\_1&gt;(plugin: [IPlugin](./plugin-tls.iplugin.md)<!-- -->&lt;HOST, Options\_1&gt;, options: Options\_1): any; }
25
-
26
-
27
- ## Remarks
28
-
29
- 比 直接使用 PluginHost 提供了完善的类型推导
30
-
@@ -1,11 +0,0 @@
1
- <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
-
3
- [Home](./index.md) &gt; [plugin-tls](./plugin-tls.md) &gt; [IOptionsPluginHost](./plugin-tls.ioptionspluginhost.md) &gt; [defaultOptions](./plugin-tls.ioptionspluginhost.defaultoptions.md)
4
-
5
- ## IOptionsPluginHost.defaultOptions property
6
-
7
- <b>Signature:</b>
8
-
9
- ```typescript
10
- readonly defaultOptions: Options;
11
- ```
@@ -1,21 +0,0 @@
1
- <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
-
3
- [Home](./index.md) &gt; [plugin-tls](./plugin-tls.md) &gt; [IOptionsPluginHost](./plugin-tls.ioptionspluginhost.md)
4
-
5
- ## IOptionsPluginHost interface
6
-
7
- 选项插件宿主接口
8
-
9
- <b>Signature:</b>
10
-
11
- ```typescript
12
- export interface IOptionsPluginHost<Options, HOST> extends IPluginHost<HOST>
13
- ```
14
- <b>Extends:</b> [IPluginHost](./plugin-tls.ipluginhost.md)
15
-
16
- ## Properties
17
-
18
- | Property | Modifiers | Type | Description |
19
- | --- | --- | --- | --- |
20
- | [defaultOptions](./plugin-tls.ioptionspluginhost.defaultoptions.md) | <code>readonly</code> | Options | |
21
-
@@ -1,15 +0,0 @@
1
- <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
-
3
- [Home](./index.md) &gt; [plugin-tls](./plugin-tls.md) &gt; [IOptionsPluginHostConstructor](./plugin-tls.ioptionspluginhostconstructor.md)
4
-
5
- ## IOptionsPluginHostConstructor interface
6
-
7
- 选项插件宿主的构建函数接口
8
-
9
- <b>Signature:</b>
10
-
11
- ```typescript
12
- export interface IOptionsPluginHostConstructor<Options, HOST> extends IPluginHostConstructor<HOST>
13
- ```
14
- <b>Extends:</b> [IPluginHostConstructor](./plugin-tls.ipluginhostconstructor.md)
15
-
package/doc/plugin-tls.md DELETED
@@ -1,53 +0,0 @@
1
- <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
-
3
- [Home](./index.md) &gt; [plugin-tls](./plugin-tls.md)
4
-
5
- ## plugin-tls package
6
-
7
- 插件系统
8
-
9
- ## Remarks
10
-
11
- 主要负责 SDK 的插件机制的实现 插件系统应该具备以下功能: - 注册插件 - 可扩展类的静态级功能 - 可扩展类的实例级功能 - 可自定义暴露的功能 - 可拥有私有自身的API
12
-
13
- 额外的也提供了其它的功能 - 全局选项 - 实例选项
14
-
15
- ## Classes
16
-
17
- | Class | Description |
18
- | --- | --- |
19
- | [OptionsPluginHost](./plugin-tls.optionspluginhost.md) | |
20
- | [PluginHost](./plugin-tls.pluginhost.md) | 插件的宿主 |
21
- | [PluginManager](./plugin-tls.pluginmanager.md) | 插件管理者 |
22
-
23
- ## Functions
24
-
25
- | Function | Description |
26
- | --- | --- |
27
- | [addDefaultOptions(options, name)](./plugin-tls.adddefaultoptions.md) | 创建增加带有选项机制的装饰器 |
28
- | [addInstOptions(target, propertyKey, descriptor)](./plugin-tls.addinstoptions.md) | 创建增加带有选项机制的装饰器 |
29
- | [createOptionsPluginHost()](./plugin-tls.createoptionspluginhost.md) | 创建带有选项机制的插件宿主类 比 直接使用 OptionsPluginHost 提供了完善的类型推导 |
30
- | [createPluginHost()](./plugin-tls.createpluginhost.md) | 创建插件的缩主类 |
31
- | [pluginHost(target)](./plugin-tls.pluginhost.md) | 插件缩主类的装饰器 |
32
-
33
- ## Interfaces
34
-
35
- | Interface | Description |
36
- | --- | --- |
37
- | [IDefaultOptionsHost](./plugin-tls.idefaultoptionshost.md) | 默认选项宿主接口 |
38
- | [IIDefaultOptionsHostConstructor](./plugin-tls.iidefaultoptionshostconstructor.md) | 默认选项宿主的构建函数接口 |
39
- | [IOptionsPluginHost](./plugin-tls.ioptionspluginhost.md) | 选项插件宿主接口 |
40
- | [IOptionsPluginHostConstructor](./plugin-tls.ioptionspluginhostconstructor.md) | 选项插件宿主的构建函数接口 |
41
- | [IPlugin](./plugin-tls.iplugin.md) | 插件的接口 |
42
- | [IPluginHost](./plugin-tls.ipluginhost.md) | 插件宿主的接口 |
43
- | [IPluginHostConstructor](./plugin-tls.ipluginhostconstructor.md) | 插件宿主构造函数的接口 |
44
-
45
- ## Type Aliases
46
-
47
- | Type Alias | Description |
48
- | --- | --- |
49
- | [HostInst](./plugin-tls.hostinst.md) | 插件宿主的实例类型 |
50
- | [PluginCreatedReturnType](./plugin-tls.plugincreatedreturntype.md) | 插件的 created 方法的返回值类型 |
51
- | [PluginOptions](./plugin-tls.pluginoptions.md) | |
52
- | [PluginUseReturnType](./plugin-tls.pluginusereturntype.md) | 插件的 used 方法的返回值类型 |
53
-
@@ -1,11 +0,0 @@
1
- <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
-
3
- [Home](./index.md) &gt; [plugin-tls](./plugin-tls.md) &gt; [OptionsPluginHost](./plugin-tls.optionspluginhost.md) &gt; [\_defaultOptions](./plugin-tls.optionspluginhost._defaultoptions.md)
4
-
5
- ## OptionsPluginHost.\_defaultOptions property
6
-
7
- <b>Signature:</b>
8
-
9
- ```typescript
10
- protected _defaultOptions: Options;
11
- ```
@@ -1,13 +0,0 @@
1
- <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
-
3
- [Home](./index.md) &gt; [plugin-tls](./plugin-tls.md) &gt; [OptionsPluginHost](./plugin-tls.optionspluginhost.md) &gt; [defaultOptions](./plugin-tls.optionspluginhost.defaultoptions.md)
4
-
5
- ## OptionsPluginHost.defaultOptions property
6
-
7
- 全局级别的默认选项
8
-
9
- <b>Signature:</b>
10
-
11
- ```typescript
12
- static readonly defaultOptions: any;
13
- ```
@@ -1,21 +0,0 @@
1
- <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
-
3
- [Home](./index.md) &gt; [plugin-tls](./plugin-tls.md) &gt; [OptionsPluginHost](./plugin-tls.optionspluginhost.md)
4
-
5
- ## OptionsPluginHost class
6
-
7
- <b>Signature:</b>
8
-
9
- ```typescript
10
- export declare class OptionsPluginHost<Options = any> extends PluginHost
11
- ```
12
- <b>Extends:</b> [PluginHost](./plugin-tls.pluginhost.md)
13
-
14
- ## Properties
15
-
16
- | Property | Modifiers | Type | Description |
17
- | --- | --- | --- | --- |
18
- | [\_defaultOptions](./plugin-tls.optionspluginhost._defaultoptions.md) | <code>protected</code> | Options | |
19
- | [defaultOptions](./plugin-tls.optionspluginhost.defaultoptions.md) | <code>readonly</code> | Options | 实例级的默认选项 |
20
- | [defaultOptions](./plugin-tls.optionspluginhost.defaultoptions.md) | <p><code>readonly</code></p><p><code>static</code></p> | any | 全局级别的默认选项 |
21
-
@@ -1,13 +0,0 @@
1
- <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
-
3
- [Home](./index.md) &gt; [plugin-tls](./plugin-tls.md) &gt; [PluginHost](./plugin-tls.pluginhost.md) &gt; [(constructor)](./plugin-tls.pluginhost._constructor_.md)
4
-
5
- ## PluginHost.(constructor)
6
-
7
- Constructs a new instance of the `PluginHost` class
8
-
9
- <b>Signature:</b>
10
-
11
- ```typescript
12
- constructor();
13
- ```
@@ -1,25 +0,0 @@
1
- <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
-
3
- [Home](./index.md) &gt; [plugin-tls](./plugin-tls.md) &gt; [pluginHost](./plugin-tls.pluginhost.md)
4
-
5
- ## pluginHost() function
6
-
7
- 插件缩主类的装饰器
8
-
9
- <b>Signature:</b>
10
-
11
- ```typescript
12
- export declare function pluginHost<HOST extends new (...args: any) => any>(target: HOST): HOST;
13
- ```
14
-
15
- ## Parameters
16
-
17
- | Parameter | Type | Description |
18
- | --- | --- | --- |
19
- | target | HOST | |
20
-
21
- <b>Returns:</b>
22
-
23
- HOST
24
-
25
-
@@ -1,30 +0,0 @@
1
- <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
-
3
- [Home](./index.md) &gt; [plugin-tls](./plugin-tls.md) &gt; [PluginManager](./plugin-tls.pluginmanager.md) &gt; [instUse](./plugin-tls.pluginmanager.instuse.md)
4
-
5
- ## PluginManager.instUse() method
6
-
7
- 插件宿主实例的注册插件的方法
8
-
9
- <b>Signature:</b>
10
-
11
- ```typescript
12
- instUse<Options extends PluginOptions, Plugin extends IPlugin<HOST, Options>>(hostInst: HostInst<HOST>, plugin: Plugin, options?: Options): PluginCreatedReturnType<Plugin> | undefined;
13
- ```
14
-
15
- ## Parameters
16
-
17
- | Parameter | Type | Description |
18
- | --- | --- | --- |
19
- | hostInst | [HostInst](./plugin-tls.hostinst.md)<!-- -->&lt;HOST&gt; | 插件宿主的新实例 |
20
- | plugin | Plugin | |
21
- | options | Options | <i>(Optional)</i> |
22
-
23
- <b>Returns:</b>
24
-
25
- [PluginCreatedReturnType](./plugin-tls.plugincreatedreturntype.md)<!-- -->&lt;Plugin&gt; \| undefined
26
-
27
- ## Remarks
28
-
29
- 会调用每个插件的 [IPlugin.created()](./plugin-tls.iplugin.created.md) 方法
30
-
@@ -1,11 +0,0 @@
1
- <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
-
3
- [Home](./index.md) &gt; [plugin-tls](./plugin-tls.md) &gt; [PluginOptions](./plugin-tls.pluginoptions.md)
4
-
5
- ## PluginOptions type
6
-
7
- <b>Signature:</b>
8
-
9
- ```typescript
10
- export declare type PluginOptions = any;
11
- ```
File without changes