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.
- package/README.md +5 -5
- package/dist/extend/extend.d.ts +222 -0
- package/dist/extend/extend.d.ts.map +1 -0
- package/dist/extend/mixin.d.ts +105 -0
- package/dist/extend/mixin.d.ts.map +1 -0
- package/dist/index.d.ts +14 -4
- package/dist/index.d.ts.map +1 -0
- package/dist/options-manager/ModeOptions.d.ts +88 -0
- package/dist/options-manager/ModeOptions.d.ts.map +1 -0
- package/dist/options-manager/OptionsManager.d.ts +105 -0
- package/dist/options-manager/OptionsManager.d.ts.map +1 -0
- package/dist/options-manager/TierModeOptions.d.ts +69 -0
- package/dist/options-manager/TierModeOptions.d.ts.map +1 -0
- package/dist/options-manager/TierOptions.d.ts +48 -0
- package/dist/options-manager/TierOptions.d.ts.map +1 -0
- package/dist/{defaultOptions.d.ts → options-manager/defaultOptions.d.ts} +2 -1
- package/dist/options-manager/defaultOptions.d.ts.map +1 -0
- package/dist/options-manager/tools.d.ts +35 -0
- package/dist/options-manager/tools.d.ts.map +1 -0
- package/dist/plugin-host/PluginHost.d.ts +184 -0
- package/dist/plugin-host/PluginHost.d.ts.map +1 -0
- package/dist/plugin-host/TierModeOptionsPluginHost.d.ts +102 -0
- package/dist/plugin-host/TierModeOptionsPluginHost.d.ts.map +1 -0
- package/dist/plugin-host/TierOptionsPluginHost.d.ts +83 -0
- package/dist/plugin-host/TierOptionsPluginHost.d.ts.map +1 -0
- package/dist/plugin-manager/PluginManager.d.ts +119 -0
- package/dist/plugin-manager/PluginManager.d.ts.map +1 -0
- package/dist/plugin-manager/PluginManagerWithInit.d.ts +36 -0
- package/dist/plugin-manager/PluginManagerWithInit.d.ts.map +1 -0
- package/dist/plugin-tls.d.ts +1329 -0
- package/dist/plugin-tls.iife.js +1 -0
- package/dist/plugin-tls.mjs +1064 -0
- package/dist/plugin-tls.umd.js +1 -1
- package/dist/properties.d.ts +30 -0
- package/dist/properties.d.ts.map +1 -0
- package/dist/tsdoc-metadata.json +11 -0
- package/doc/{plugin-tls.adddefaultoptions.md → api/plugin-tls.adddefaultoptions.md} +3 -3
- package/doc/{plugin-tls.addinstoptions.md → api/plugin-tls.addinstoptions.md} +2 -2
- package/doc/api/plugin-tls.allfunctionapply.md +26 -0
- package/doc/api/plugin-tls.becomepluginhost.md +15 -0
- package/doc/api/plugin-tls.becomepluginhost_extends.md +38 -0
- package/doc/api/plugin-tls.becomepluginhost_proxy.md +29 -0
- package/doc/api/plugin-tls.becometiermodeoptionshost.md +15 -0
- package/doc/api/plugin-tls.becometieroptionshost.md +15 -0
- package/doc/api/plugin-tls.classextender.md +15 -0
- package/doc/api/plugin-tls.classextenderprivatemember._constructors.md +13 -0
- package/doc/api/plugin-tls.classextenderprivatemember._destroys.md +13 -0
- package/doc/api/plugin-tls.classextenderprivatemember.md +21 -0
- package/doc/api/plugin-tls.classextenderprivatememberwithinit._inits.md +13 -0
- package/doc/api/plugin-tls.classextenderprivatememberwithinit.md +21 -0
- package/doc/api/plugin-tls.classextenderwithinit.md +15 -0
- package/doc/api/plugin-tls.classtype._new_.md +22 -0
- package/doc/api/plugin-tls.classtype.md +20 -0
- package/doc/api/plugin-tls.commonmodename.md +18 -0
- package/doc/api/plugin-tls.createcallerofprivatememberofextend.md +30 -0
- package/doc/api/plugin-tls.createdefinemixin.md +23 -0
- package/doc/api/plugin-tls.createextendtarget.md +30 -0
- package/doc/api/plugin-tls.createextendtargetwithinit.md +30 -0
- package/doc/api/plugin-tls.createmixintarget.md +30 -0
- package/doc/api/plugin-tls.createpluginhost.md +35 -0
- package/doc/api/plugin-tls.createpropertysetter.md +30 -0
- package/doc/api/plugin-tls.createtargetextend.md +30 -0
- package/doc/api/plugin-tls.createtargetextendwithinit.md +30 -0
- package/doc/api/plugin-tls.createtargetmixin.md +30 -0
- package/doc/api/plugin-tls.createtiermodeoptionspluginhost.md +32 -0
- package/doc/api/plugin-tls.createtieroptionspluginhost.md +30 -0
- package/doc/api/plugin-tls.defineextend.md +35 -0
- package/doc/api/plugin-tls.defineextendwithinit.md +35 -0
- package/doc/api/plugin-tls.definemixin.md +31 -0
- package/doc/api/plugin-tls.extendtarget.md +31 -0
- package/doc/api/plugin-tls.extendtargetwithinit.md +31 -0
- package/doc/api/plugin-tls.formatuseparameters.md +13 -0
- package/doc/api/plugin-tls.formatusepluginparameters.md +15 -0
- package/doc/api/plugin-tls.getnormalizepluginoptions.md +15 -0
- package/doc/api/plugin-tls.getpluginoptions.md +15 -0
- package/doc/api/plugin-tls.getpropertyvalue.md +26 -0
- package/doc/api/plugin-tls.getpropertyvaluebypath.md +26 -0
- package/doc/api/plugin-tls.gettargetproperties.md +26 -0
- package/doc/{plugin-tls.hostinst.md → api/plugin-tls.hostinst.md} +2 -2
- package/doc/{plugin-tls.idefaultoptionshost.defaultoptions.md → api/plugin-tls.idefaultoptionshost.defaultoptions.md} +1 -1
- package/doc/{plugin-tls.idefaultoptionshost.md → api/plugin-tls.idefaultoptionshost.md} +1 -1
- package/doc/{plugin-tls.iidefaultoptionshostconstructor.md → api/plugin-tls.iidefaultoptionshostconstructor.md} +1 -1
- package/doc/{plugin-tls.iplugin.created.md → api/plugin-tls.iplugin.created.md} +4 -4
- package/doc/api/plugin-tls.iplugin.destroyed.md +25 -0
- package/doc/{plugin-tls.iplugin.md → api/plugin-tls.iplugin.md} +4 -3
- package/doc/{plugin-tls.iplugin.used.md → api/plugin-tls.iplugin.used.md} +4 -4
- package/doc/{plugin-tls.ipluginhost.md → api/plugin-tls.ipluginhost.md} +2 -2
- package/doc/{plugin-tls.ipluginhost.use.md → api/plugin-tls.ipluginhost.use.md} +6 -6
- package/doc/{plugin-tls.ipluginhostconstructor.md → api/plugin-tls.ipluginhostconstructor.md} +2 -2
- package/doc/{plugin-tls.ipluginhostconstructor.use.md → api/plugin-tls.ipluginhostconstructor.use.md} +6 -6
- package/doc/api/plugin-tls.ipluginwithinit.inited.md +25 -0
- package/doc/api/plugin-tls.ipluginwithinit.md +21 -0
- package/doc/api/plugin-tls.itiermodeoptionshost.md +21 -0
- package/doc/api/plugin-tls.itiermodeoptionshost.mode.md +11 -0
- package/doc/api/plugin-tls.itiermodeoptionshost.modeoptions.md +11 -0
- package/doc/api/plugin-tls.itiermodeoptionshostconstructor.md +13 -0
- package/doc/api/plugin-tls.itiermodeoptionspluginhost.md +15 -0
- package/doc/api/plugin-tls.itiermodeoptionspluginhostconstructor.md +15 -0
- package/doc/api/plugin-tls.itieroptionshost.defaultoptions.md +11 -0
- package/doc/api/plugin-tls.itieroptionshost.md +20 -0
- package/doc/api/plugin-tls.itieroptionshostconstructor.md +13 -0
- package/doc/api/plugin-tls.itieroptionspluginhost.md +15 -0
- package/doc/api/plugin-tls.itieroptionspluginhostconstructor.md +15 -0
- package/doc/api/plugin-tls.md +121 -0
- package/doc/api/plugin-tls.mergeproperties.md +25 -0
- package/doc/api/plugin-tls.mixin_4.md +33 -0
- package/doc/api/plugin-tls.mixintarget.md +31 -0
- package/doc/api/plugin-tls.modeoptions._constructor_.md +20 -0
- package/doc/api/plugin-tls.modeoptions._constructor__1.md +21 -0
- package/doc/api/plugin-tls.modeoptions._mode.md +11 -0
- package/doc/api/plugin-tls.modeoptions._modenames.md +11 -0
- package/doc/api/plugin-tls.modeoptions._plainfulloption.md +11 -0
- package/doc/api/plugin-tls.modeoptions.getfullmodeoption.md +29 -0
- package/doc/api/plugin-tls.modeoptions.getmodenames.md +18 -0
- package/doc/api/plugin-tls.modeoptions.getmodeoption.md +29 -0
- package/doc/api/plugin-tls.modeoptions.hasmode.md +25 -0
- package/doc/api/plugin-tls.modeoptions.md +57 -0
- package/doc/api/plugin-tls.modeoptions.mode.md +15 -0
- package/doc/api/plugin-tls.modeoptions.modenames.md +13 -0
- package/doc/api/plugin-tls.modeoptions.modes.md +13 -0
- package/doc/api/plugin-tls.modeoptions.option.md +13 -0
- package/doc/api/plugin-tls.modeoptions.optionmanager.md +13 -0
- package/doc/api/plugin-tls.modeoptions.plainfulloption.md +11 -0
- package/doc/api/plugin-tls.modeoptions.setmodeoption.md +27 -0
- package/doc/api/plugin-tls.modeoptions.updatefulloption.md +17 -0
- package/doc/api/plugin-tls.normalizepluginoptions.md +18 -0
- package/doc/api/plugin-tls.parsepropertypath.md +25 -0
- package/doc/{plugin-tls.plugincreatedreturntype.md → api/plugin-tls.plugincreatedreturntype.md} +3 -3
- package/doc/{plugin-tls.pluginhost._pluginmanager.md → api/plugin-tls.pluginhost._pluginmanager.md} +2 -2
- package/doc/api/plugin-tls.pluginhost.destroy.md +18 -0
- package/doc/api/plugin-tls.pluginhost.md +38 -0
- package/doc/{plugin-tls.pluginhost.pluginmanager.md → api/plugin-tls.pluginhost.pluginmanager.md} +2 -2
- package/doc/{plugin-tls.pluginhost.use.md → api/plugin-tls.pluginhost.use.md} +5 -5
- package/doc/api/plugin-tls.pluginmanager._constructor_.md +20 -0
- package/doc/{plugin-tls.pluginmanager.created.md → api/plugin-tls.pluginmanager.created.md} +4 -4
- package/doc/api/plugin-tls.pluginmanager.destroyed.md +28 -0
- package/doc/{plugin-tls.pluginmanager.host.md → api/plugin-tls.pluginmanager.host.md} +2 -2
- package/doc/api/plugin-tls.pluginmanager.instuse.md +30 -0
- package/doc/{plugin-tls.pluginmanager.md → api/plugin-tls.pluginmanager.md} +12 -5
- package/doc/{plugin-tls.pluginmanager.pluginoptsmap.md → api/plugin-tls.pluginmanager.pluginoptsmap.md} +2 -2
- package/doc/{plugin-tls.pluginmanager.plugins.md → api/plugin-tls.pluginmanager.plugins.md} +2 -2
- package/doc/{plugin-tls.pluginmanager.use.md → api/plugin-tls.pluginmanager.use.md} +6 -6
- package/doc/api/plugin-tls.pluginmanagerwithinit.inited.md +28 -0
- package/doc/api/plugin-tls.pluginmanagerwithinit.md +25 -0
- package/doc/{plugin-tls.pluginusereturntype.md → api/plugin-tls.pluginusereturntype.md} +3 -3
- package/doc/api/plugin-tls.privatememberofextend._constructor.md +32 -0
- package/doc/api/plugin-tls.privatememberofextend._destroy.md +25 -0
- package/doc/api/plugin-tls.privatememberofextend.md +21 -0
- package/doc/api/plugin-tls.privatememberofextendwithinit._init.md +28 -0
- package/doc/api/plugin-tls.privatememberofextendwithinit.md +21 -0
- package/doc/api/plugin-tls.replaceconstructorparameters.md +13 -0
- package/doc/api/plugin-tls.replaceconstructorreturn.md +13 -0
- package/doc/api/plugin-tls.setpropertyvalue.md +27 -0
- package/doc/api/plugin-tls.setpropertyvaluebypath.md +27 -0
- package/doc/api/plugin-tls.targetextend.md +31 -0
- package/doc/api/plugin-tls.targetextendwithinit.md +31 -0
- package/doc/api/plugin-tls.targetmixin.md +31 -0
- package/doc/api/plugin-tls.tiermodeoptions._constructor_.md +20 -0
- package/doc/api/plugin-tls.tiermodeoptions._constructor__1.md +22 -0
- package/doc/api/plugin-tls.tiermodeoptions._extends.md +11 -0
- package/doc/api/plugin-tls.tiermodeoptions.extends.md +15 -0
- package/doc/api/plugin-tls.tiermodeoptions.getfullmodeoption.md +29 -0
- package/doc/api/plugin-tls.tiermodeoptions.getmember.md +25 -0
- package/doc/api/plugin-tls.tiermodeoptions.getmodenames.md +18 -0
- package/doc/api/plugin-tls.tiermodeoptions.getmodeoptionmanager.md +25 -0
- package/doc/api/plugin-tls.tiermodeoptions.getvalue.md +25 -0
- package/doc/api/plugin-tls.tiermodeoptions.hasmodeontier.md +25 -0
- package/doc/api/plugin-tls.tiermodeoptions.md +45 -0
- package/doc/api/plugin-tls.tiermodeoptions.optionmanager.md +13 -0
- package/doc/api/plugin-tls.tiermodeoptionsdecorator.md +30 -0
- package/doc/api/plugin-tls.tiermodeoptionspluginhost._constructor_.md +20 -0
- package/doc/api/plugin-tls.tiermodeoptionspluginhost._modeoptions.md +11 -0
- package/doc/api/plugin-tls.tiermodeoptionspluginhost.md +37 -0
- package/doc/api/plugin-tls.tiermodeoptionspluginhost.mode.md +13 -0
- package/doc/api/plugin-tls.tiermodeoptionspluginhost.modeoptions.md +13 -0
- package/doc/api/plugin-tls.tiermodeoptionspluginhost.options.md +11 -0
- package/doc/api/plugin-tls.tieroptions._constructor_.md +21 -0
- package/doc/api/plugin-tls.tieroptions._extends.md +11 -0
- package/doc/api/plugin-tls.tieroptions._plainfulloption.md +11 -0
- package/doc/api/plugin-tls.tieroptions.extends.md +15 -0
- package/doc/api/plugin-tls.tieroptions.getmember.md +25 -0
- package/doc/api/plugin-tls.tieroptions.getvalue.md +25 -0
- package/doc/api/plugin-tls.tieroptions.md +37 -0
- package/doc/api/plugin-tls.tieroptions.option.md +13 -0
- package/doc/api/plugin-tls.tieroptions.plainfulloption.md +18 -0
- package/doc/api/plugin-tls.tieroptions.updatefulloption.md +17 -0
- package/doc/api/plugin-tls.tieroptionsdecorator.md +30 -0
- package/doc/api/plugin-tls.tieroptionspluginhost._constructor_.md +20 -0
- package/doc/api/plugin-tls.tieroptionspluginhost._defaultoptions.md +11 -0
- package/doc/api/plugin-tls.tieroptionspluginhost.defaultoptions.md +13 -0
- package/doc/api/plugin-tls.tieroptionspluginhost.md +35 -0
- package/package.json +23 -15
- package/dist/OptionsPluginHost.d.ts +0 -49
- package/dist/PluginHost.d.ts +0 -96
- package/dist/PluginManager.d.ts +0 -76
- package/dist/plugin-tls.es.js +0 -170
- package/doc/plugin-tls.createoptionspluginhost.md +0 -29
- package/doc/plugin-tls.createpluginhost.md +0 -30
- package/doc/plugin-tls.ioptionspluginhost.defaultoptions.md +0 -11
- package/doc/plugin-tls.ioptionspluginhost.md +0 -21
- package/doc/plugin-tls.ioptionspluginhostconstructor.md +0 -15
- package/doc/plugin-tls.md +0 -53
- package/doc/plugin-tls.optionspluginhost._defaultoptions.md +0 -11
- package/doc/plugin-tls.optionspluginhost.defaultoptions.md +0 -13
- package/doc/plugin-tls.optionspluginhost.md +0 -21
- package/doc/plugin-tls.pluginhost._constructor_.md +0 -13
- package/doc/plugin-tls.pluginhost.md +0 -25
- package/doc/plugin-tls.pluginmanager.instuse.md +0 -30
- package/doc/plugin-tls.pluginoptions.md +0 -11
- /package/doc/{index.md → api/index.md} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TierModeOptions.d.ts","sourceRoot":"","sources":["../../src/options-manager/TierModeOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,eAAe,CAAA;AAI9C;;;;GAIG;AACH,qBAAa,eAAe,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,MAAM,SAAS,EAAE,GAAG,GAAG,CAAE,SAAQ,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC;gBAE9G,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,MAAM,EAAC,MAAM,CAAC,EAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC;IAQ9E;;OAEG;IACH,IAAI,OAAO,yCAEV;IACD,IAAI,OAAO,CAAC,KAAK,sCAAA,EAGhB;IACD,SAAS,CAAC,QAAQ,EAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,GAAC,IAAI,CAAQ;IAG7D;;;;;;OAMG;IACM,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAC,IAAI;IAanD;;;OAGG;IACM,YAAY,IAAG,IAAI,EAAE;IAU9B;;;;OAIG;IACH,aAAa,CAAC,IAAI,EAAC,MAAM,GAAG,MAAM,GAAE,OAAO;IAM3C;;OAEG;IACH,IAAa,aAAa,IAAG,WAAW,CAAC,MAAM,CAAC,CAE/C;IACD;;;;OAIG;IACH,oBAAoB,CAAC,IAAI,EAAC,IAAI,GAAE,WAAW,CAAC,MAAM,CAAC,GAAC,IAAI;IAQxD;;;;OAIG;IACM,SAAS,CAAC,GAAG,SAAS,MAAM,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI;IAWtF;;;;OAIG;IACM,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,GAAG;CAW7C;AAMD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAC,KAAK,EAC/C,KAAK,EAAE,4BAA4B,CAAC,IAAI,EAAC,KAAK,CAAC,EAC/C,OAAO,EAAC,6BAA6B,CAAC,IAAI,EAAC,KAAK,CAAC,GACjD,4BAA4B,CAAC,IAAI,EAAC,KAAK,CAAC,CAS3C"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { OptionsManager } from "./OptionsManager";
|
|
2
|
+
export declare class TierOptions<Option extends {} = any> extends OptionsManager<Option> {
|
|
3
|
+
constructor(option?: Option, extend?: TierOptions<Option>);
|
|
4
|
+
/**
|
|
5
|
+
* 继承的选项
|
|
6
|
+
*/
|
|
7
|
+
get extends(): TierOptions<Option> | null;
|
|
8
|
+
set extends(value: TierOptions<Option> | null);
|
|
9
|
+
protected _extends: TierOptions<Option> | null;
|
|
10
|
+
/**
|
|
11
|
+
* 选项
|
|
12
|
+
*/
|
|
13
|
+
option: Option;
|
|
14
|
+
/**
|
|
15
|
+
* 获取完整的选项
|
|
16
|
+
* @remarks
|
|
17
|
+
* 会与继承来的选项进行合并
|
|
18
|
+
*/
|
|
19
|
+
get plainFullOption(): Option;
|
|
20
|
+
protected _plainFullOption: Option | null;
|
|
21
|
+
/**
|
|
22
|
+
* 更新
|
|
23
|
+
*/
|
|
24
|
+
updateFullOption(): void;
|
|
25
|
+
/**
|
|
26
|
+
* 获取选项成员
|
|
27
|
+
* @param key
|
|
28
|
+
* @returns
|
|
29
|
+
*/
|
|
30
|
+
getMember<Key extends keyof Option>(key: Key): Option[Key] | undefined | null;
|
|
31
|
+
/**
|
|
32
|
+
* 获取属性路径对应的值
|
|
33
|
+
* @param propPath
|
|
34
|
+
* @returns
|
|
35
|
+
*/
|
|
36
|
+
getValue(propPath: string[]): any;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* 层级选项主机装饰器
|
|
40
|
+
* @remarks
|
|
41
|
+
* 可让宿主具备层级选项;
|
|
42
|
+
* 需要宿主有静态的同名属性;
|
|
43
|
+
* @param target
|
|
44
|
+
* @param context
|
|
45
|
+
* @returns
|
|
46
|
+
*/
|
|
47
|
+
export declare function tierOptionsDecorator<This, Value>(value: ClassAccessorDecoratorTarget<This, Value>, context: ClassAccessorDecoratorContext<This, Value>): ClassAccessorDecoratorResult<This, Value>;
|
|
48
|
+
//# sourceMappingURL=TierOptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TierOptions.d.ts","sourceRoot":"","sources":["../../src/options-manager/TierOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAA;AAI/C,qBAAa,WAAW,CAAC,MAAM,SAAS,EAAE,GAAG,GAAG,CAAE,SAAQ,cAAc,CAAC,MAAM,CAAC;gBAChE,MAAM,CAAC,EAAC,MAAM,EAAC,MAAM,CAAC,EAAC,WAAW,CAAC,MAAM,CAAC;IAStD;;OAEG;IACH,IAAI,OAAO,+BAEV;IACD,IAAI,OAAO,CAAC,KAAK,4BAAA,EAGhB;IACD,SAAS,CAAC,QAAQ,EAAC,WAAW,CAAC,MAAM,CAAC,GAAC,IAAI,CAAQ;IAEnD;;OAEG;IACH,MAAM,SAAgB;IAGtB;;;;OAIG;IACH,IAAI,eAAe,IAAG,MAAM,CAW3B;IACD,SAAS,CAAC,gBAAgB,EAAC,MAAM,GAAC,IAAI,CAAQ;IAG9C;;OAEG;IACH,gBAAgB;IAMhB;;;;OAIG;IACM,SAAS,CAAC,GAAG,SAAS,MAAM,MAAM,EAAE,GAAG,EAAC,GAAG,GAAE,MAAM,CAAC,GAAG,CAAC,GAAC,SAAS,GAAC,IAAI;IAWhF;;;;OAIG;IACM,QAAQ,CAAC,QAAQ,EAAC,MAAM,EAAE,GAAE,GAAG;CAU3C;AASD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAC,KAAK,EAC3C,KAAK,EAAE,4BAA4B,CAAC,IAAI,EAAC,KAAK,CAAC,EAC/C,OAAO,EAAC,6BAA6B,CAAC,IAAI,EAAC,KAAK,CAAC,GACjD,4BAA4B,CAAC,IAAI,EAAC,KAAK,CAAC,CAS3C"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Optional } from "type-tls";
|
|
1
|
+
import type { Optional } from "type-tls";
|
|
2
2
|
/**
|
|
3
3
|
* 默认选项宿主接口
|
|
4
4
|
*/
|
|
@@ -31,3 +31,4 @@ export declare function addDefaultOptions<Options>(options: Options, name?: Opti
|
|
|
31
31
|
* @returns
|
|
32
32
|
*/
|
|
33
33
|
export declare function addInstOptions<Clas extends new (...args: any) => any>(target: Clas, propertyKey: string, descriptor: PropertyDescriptor): PropertyDescriptor;
|
|
34
|
+
//# sourceMappingURL=defaultOptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultOptions.d.ts","sourceRoot":"","sources":["../../src/options-manager/defaultOptions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,UAAU,CAAA;AAItC;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAAC,OAAO;IACxC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,+BAA+B,CAAC,OAAO;IACpD,IAAI,cAAc,IAAI,OAAO,CAAC;CACjC;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,+BAGtB,GAAG,KAAK,GAAG,wBAkBxE;AAKD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,IAAI,SAAS,KAAK,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,sBAYvI"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 解析属性路径为属性列表
|
|
3
|
+
* @param propPath
|
|
4
|
+
* @returns
|
|
5
|
+
*/
|
|
6
|
+
export declare function parsePropertyPath(propPath: string): string[];
|
|
7
|
+
/**
|
|
8
|
+
* 通过key列表获取对象中对应属性的值
|
|
9
|
+
* @param obj
|
|
10
|
+
* @param props
|
|
11
|
+
* @returns
|
|
12
|
+
*/
|
|
13
|
+
export declare function getPropertyValue(obj: any, props: string[]): any;
|
|
14
|
+
/**
|
|
15
|
+
* 获取对象的属性路径对应的属性值
|
|
16
|
+
* @param obj
|
|
17
|
+
* @param propPath
|
|
18
|
+
* @returns
|
|
19
|
+
*/
|
|
20
|
+
export declare function getPropertyValueByPath(obj: any, propPath: string): any;
|
|
21
|
+
/**
|
|
22
|
+
* 通过属性路径列表设置对象中对应属性的值
|
|
23
|
+
* @param obj
|
|
24
|
+
* @param props
|
|
25
|
+
* @returns
|
|
26
|
+
*/
|
|
27
|
+
export declare function setPropertyValue(obj: any, props: string[], value: any): any;
|
|
28
|
+
/**
|
|
29
|
+
* 获取对象的属性路径对应的属性值
|
|
30
|
+
* @param obj
|
|
31
|
+
* @param propPath
|
|
32
|
+
* @returns
|
|
33
|
+
*/
|
|
34
|
+
export declare function setPropertyValueByPath(obj: any, propPath: string, value: any): any;
|
|
35
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/options-manager/tools.ts"],"names":[],"mappings":"AACA;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAC,MAAM,YAMhD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAC,KAAK,EAAC,MAAM,EAAE,OAMvD;AAGD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAC,QAAQ,EAAC,MAAM,OAE9D;AAKD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAC,KAAK,EAAC,MAAM,EAAE,EAAC,KAAK,EAAC,GAAG,OAoBjE;AAMD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAC,QAAQ,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,OAExE"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { PluginManager } from "../plugin-manager/PluginManager";
|
|
2
|
+
import type { IPlugin, PluginCreatedReturnType, PluginUseReturnType, GetNormalizePluginOptions, FormatUsePluginParameters } from "../plugin-manager/PluginManager";
|
|
3
|
+
import type { ReplaceConstructorReturn } from "../extend/mixin";
|
|
4
|
+
/**
|
|
5
|
+
* 插件宿主的接口
|
|
6
|
+
*
|
|
7
|
+
* @typeParam HostClassType 插件宿主类的类型
|
|
8
|
+
*/
|
|
9
|
+
export interface IPluginHost<HostClassType extends IPluginHostConstructor<any, Plugin>, Plugin extends IPlugin<HostClassType, any> = IPlugin<HostClassType, any>> {
|
|
10
|
+
/**
|
|
11
|
+
* PluginHost 的插件管理器
|
|
12
|
+
*/
|
|
13
|
+
get pluginManager(): HostClassType["pluginManager"];
|
|
14
|
+
/**
|
|
15
|
+
* 实例的注册插件的方法
|
|
16
|
+
* @param plugin
|
|
17
|
+
* @param options
|
|
18
|
+
* @returns
|
|
19
|
+
*/
|
|
20
|
+
use<P extends Plugin>(plugin: P, options: GetNormalizePluginOptions<P>): PluginCreatedReturnType<P> | void;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* 插件宿主构造函数的接口
|
|
24
|
+
* @typeParam HostClassType 插件宿主类的类型
|
|
25
|
+
*/
|
|
26
|
+
export interface IPluginHostConstructor<HostClassType, Plugin extends IPlugin<HostClassType, any> = IPlugin<HostClassType, any>> {
|
|
27
|
+
/**
|
|
28
|
+
* PluginHost 的插件管理器
|
|
29
|
+
*/
|
|
30
|
+
get pluginManager(): PluginManager<HostClassType, Plugin>;
|
|
31
|
+
/**
|
|
32
|
+
* {@inheritDoc PluginManager.use}
|
|
33
|
+
*/
|
|
34
|
+
use<P extends Plugin>(plugin: P, options: GetNormalizePluginOptions<P>): PluginUseReturnType<P> | void;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* 插件的宿主
|
|
38
|
+
*
|
|
39
|
+
* @remarks
|
|
40
|
+
* 插件宿主 就是 拥有插件机制的宿主
|
|
41
|
+
*
|
|
42
|
+
* 子类需要在构建函数中调用 `this.pluginManager.created(this);`
|
|
43
|
+
*
|
|
44
|
+
* 之所以没写在该类中的函数中,是因为 `this.pluginManager.created(this)` 通常会在构建函数执行的最后时才调用;
|
|
45
|
+
* 如果像下面写在该类的构建函数中,然后子类通过 `super()` 来调用,这样就会导致 `this.pluginManager.created(this)` 不是在最后的执行;
|
|
46
|
+
*/
|
|
47
|
+
export declare class PluginHost<Plugin extends IPlugin<typeof PluginHost, any> = IPlugin<typeof PluginHost, any>> {
|
|
48
|
+
/**
|
|
49
|
+
* 插件管理器
|
|
50
|
+
*/
|
|
51
|
+
static get pluginManager(): PluginManager<any, IPlugin<any, any>>;
|
|
52
|
+
protected static _pluginManager: PluginManager<any>;
|
|
53
|
+
/**
|
|
54
|
+
* 插件管理器 {@link PluginHost.pluginManager}
|
|
55
|
+
*/
|
|
56
|
+
get pluginManager(): PluginManager<any, IPlugin<any, any>>;
|
|
57
|
+
/**
|
|
58
|
+
* {@inheritDoc PluginManager.use}
|
|
59
|
+
*/
|
|
60
|
+
static use<Plugin extends IPlugin<typeof PluginHost, any>>(plugin: Plugin, ...options: FormatUsePluginParameters<Plugin>): void | ReturnType<Plugin["used"]>;
|
|
61
|
+
/**
|
|
62
|
+
* 需要在子类中调用
|
|
63
|
+
*
|
|
64
|
+
* 之所以没写在该类中的函数中,是因为 `this.pluginManager.created(this)` 通常会在构建函数执行的最后时才调用;
|
|
65
|
+
* 如果像下面写在该类的构建函数中,然后子类通过 `super()` 来调用,这样就会导致 `this.pluginManager.created(this)` 不是在最后的执行;
|
|
66
|
+
*/
|
|
67
|
+
/**
|
|
68
|
+
* 实例的注册插件的方法
|
|
69
|
+
* @param plugin
|
|
70
|
+
* @param options
|
|
71
|
+
* @returns
|
|
72
|
+
*/
|
|
73
|
+
use<P extends Plugin>(plugin: P, ...options: FormatUsePluginParameters<P>): PluginCreatedReturnType<P> | void;
|
|
74
|
+
/**
|
|
75
|
+
* 销毁实例
|
|
76
|
+
* @returns
|
|
77
|
+
*/
|
|
78
|
+
destroy(): void;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* 创建插件的缩主类
|
|
82
|
+
*
|
|
83
|
+
* @remarks
|
|
84
|
+
* 比 直接使用 PluginHost 提供了完善的类型推导
|
|
85
|
+
*
|
|
86
|
+
* 子类需要在构建函数中调用 `this.pluginManager.created(this);`
|
|
87
|
+
*
|
|
88
|
+
* 之所以没写在该类中的函数中,是因为 `this.pluginManager.created(this)` 通常会在构建函数执行的最后时才调用;
|
|
89
|
+
* 如果像下面写在该类的构建函数中,然后子类通过 `super()` 来调用,这样就会导致 `this.pluginManager.created(this)` 不是在最后的执行;
|
|
90
|
+
* @returns
|
|
91
|
+
*/
|
|
92
|
+
export declare function createPluginHost<HOST, Plugin extends IPlugin<HOST, any> = IPlugin<HOST, any>>(): {
|
|
93
|
+
new (): {
|
|
94
|
+
/**
|
|
95
|
+
* 插件管理器 {@link CEarth.pluginManager}
|
|
96
|
+
*/
|
|
97
|
+
readonly pluginManager: PluginManager<any, IPlugin<any, any>>;
|
|
98
|
+
/**
|
|
99
|
+
/**
|
|
100
|
+
* 实例的注册插件的方法
|
|
101
|
+
* @param plugin
|
|
102
|
+
* @param options
|
|
103
|
+
* @returns
|
|
104
|
+
*/
|
|
105
|
+
use<P extends Plugin>(plugin: P, ...options: FormatUsePluginParameters<P>): void | PluginCreatedReturnType<P>;
|
|
106
|
+
/**
|
|
107
|
+
* 销毁实例
|
|
108
|
+
* @returns
|
|
109
|
+
*/
|
|
110
|
+
destroy(): void;
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* PluginHost 的插件管理器
|
|
114
|
+
*/
|
|
115
|
+
readonly pluginManager: PluginManager<typeof PluginHost & HOST, Plugin>;
|
|
116
|
+
_pluginManager: PluginManager<typeof PluginHost & HOST, Plugin>;
|
|
117
|
+
/**
|
|
118
|
+
* {@inheritDoc PluginManager.use}
|
|
119
|
+
*/
|
|
120
|
+
use<P_1 extends Plugin>(plugin: P_1, ...options: FormatUsePluginParameters<P_1>): void | ReturnType<P_1["used"]>;
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* 将 HOST 变成插件宿主类型
|
|
124
|
+
*/
|
|
125
|
+
export type BecomePluginHost<HOST extends new (...args: any) => any, Plugin extends IPlugin<HOST, any> = IPlugin<HOST, any>> = HOST & IPluginHostConstructor<HOST & IPluginHostConstructor<HOST, Plugin>, Plugin> & ReplaceConstructorReturn<HOST, InstanceType<HOST> & IPluginHost<HOST & IPluginHostConstructor<HOST & IPluginHostConstructor<HOST, Plugin>, Plugin>>>;
|
|
126
|
+
/**
|
|
127
|
+
* 变成插件宿主
|
|
128
|
+
* @remarks
|
|
129
|
+
* 也可作为装饰器
|
|
130
|
+
*
|
|
131
|
+
* 子类需要在构建函数中调用 `this.pluginManager.created(this);`
|
|
132
|
+
*
|
|
133
|
+
* 之所以没写在该类中的函数中,是因为 `this.pluginManager.created(this)` 通常会在构建函数执行的最后时才调用;
|
|
134
|
+
* 如果像下面写在该类的构建函数中,然后子类通过 `super()` 来调用,这样就会导致 `this.pluginManager.created(this)` 不是在最后的执行;
|
|
135
|
+
* @param target
|
|
136
|
+
* @param context
|
|
137
|
+
* @returns
|
|
138
|
+
*/
|
|
139
|
+
export declare function becomePluginHost<HOST extends new (...args: any) => any, Plugin extends IPlugin<HOST, any> = IPlugin<HOST, any>>(target: HOST): BecomePluginHost<HOST, Plugin>;
|
|
140
|
+
/**
|
|
141
|
+
* 变成插件宿主
|
|
142
|
+
* @remarks
|
|
143
|
+
* 也可作为装饰器
|
|
144
|
+
* @param target
|
|
145
|
+
* @param context
|
|
146
|
+
* @returns
|
|
147
|
+
*/
|
|
148
|
+
export declare function becomePluginHost_Proxy<HOST extends new (...args: any) => any, Plugin extends IPlugin<HOST, any> = IPlugin<HOST, any>>(target: HOST): HOST;
|
|
149
|
+
/**
|
|
150
|
+
* 插件缩主类的装饰器(继承版)
|
|
151
|
+
* @remarks
|
|
152
|
+
* 通过继承实现
|
|
153
|
+
*/
|
|
154
|
+
export declare function becomePluginHost_Extends<HOST extends new (...args: any) => any>(target: HOST): {
|
|
155
|
+
new (...args: any): {
|
|
156
|
+
[x: string]: any;
|
|
157
|
+
/**
|
|
158
|
+
* 插件管理器 {@link PluginHost.pluginManager}
|
|
159
|
+
*/
|
|
160
|
+
readonly pluginManager: PluginManager<any & HOST, IPlugin<any & HOST, any>>;
|
|
161
|
+
/**
|
|
162
|
+
* 实例的注册插件的方法
|
|
163
|
+
* @param plugin
|
|
164
|
+
* @param options
|
|
165
|
+
* @returns
|
|
166
|
+
*/
|
|
167
|
+
use<Plugin_1 extends IPlugin<any & HOST, any>>(plugin: Plugin_1, ...options: FormatUsePluginParameters<Plugin_1>): void | PluginCreatedReturnType<Plugin_1>;
|
|
168
|
+
/**
|
|
169
|
+
* 销毁实例
|
|
170
|
+
* @returns
|
|
171
|
+
*/
|
|
172
|
+
destroy(): void;
|
|
173
|
+
};
|
|
174
|
+
/**
|
|
175
|
+
* 插件管理器
|
|
176
|
+
*/
|
|
177
|
+
readonly pluginManager: PluginManager<any & HOST, IPlugin<any & HOST, any>>;
|
|
178
|
+
_pluginManager: PluginManager<any & HOST, IPlugin<any & HOST, any>>;
|
|
179
|
+
/**
|
|
180
|
+
* {@inheritDoc PluginManager.use}
|
|
181
|
+
*/
|
|
182
|
+
use<Plugin_2 extends IPlugin<any & HOST, any>>(plugin: Plugin_2, ...options: FormatUsePluginParameters<Plugin_2>): void | ReturnType<Plugin_2["used"]>;
|
|
183
|
+
} & HOST;
|
|
184
|
+
//# sourceMappingURL=PluginHost.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PluginHost.d.ts","sourceRoot":"","sources":["../../src/plugin-host/PluginHost.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { PluginHost } from "./PluginHost";
|
|
2
|
+
import type { IPluginHost, IPluginHostConstructor } from "./PluginHost";
|
|
3
|
+
import { TierModeOptions } from "../options-manager/TierModeOptions";
|
|
4
|
+
import { type ReplaceConstructorReturn } from "../extend/mixin";
|
|
5
|
+
/**
|
|
6
|
+
* 选项宿主接口
|
|
7
|
+
*/
|
|
8
|
+
export interface ITierModeOptionsHost<Options extends {} = any, Mode extends string | number = string> {
|
|
9
|
+
readonly modeOptions: TierModeOptions<Mode, Options>;
|
|
10
|
+
mode: Mode;
|
|
11
|
+
get options(): Options;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* 选项宿主的构建函数接口
|
|
15
|
+
*/
|
|
16
|
+
export interface ITierModeOptionsHostConstructor<Options extends {} = any, Mode extends string | number = string> {
|
|
17
|
+
get modeOptions(): TierModeOptions<Mode, Options>;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* 选项插件宿主接口
|
|
21
|
+
*/
|
|
22
|
+
export type ITierModeOptionsPluginHost<HostClassType extends ITierModeOptionsPluginHostConstructor<any>, Options extends {} = any, Mode extends string | number = string> = IPluginHost<HostClassType> & ITierModeOptionsHost<Options, Mode>;
|
|
23
|
+
/**
|
|
24
|
+
* 选项插件宿主的构建函数接口
|
|
25
|
+
*/
|
|
26
|
+
export type ITierModeOptionsPluginHostConstructor<HostClassType, Options extends {} = any, Mode extends string | number = string> = IPluginHostConstructor<HostClassType> & ITierModeOptionsHostConstructor<Options, Mode>;
|
|
27
|
+
/**
|
|
28
|
+
* 一般模式的名字
|
|
29
|
+
* @remarks
|
|
30
|
+
* 一般模式,其它模式可以继承该模式
|
|
31
|
+
*/
|
|
32
|
+
export declare const commonModeName = "common";
|
|
33
|
+
/**
|
|
34
|
+
* 层级模式选项插件的宿主
|
|
35
|
+
* @remarks
|
|
36
|
+
*
|
|
37
|
+
* 子类需要在构建函数中调用 `this.pluginManager.created(this);`
|
|
38
|
+
*
|
|
39
|
+
* 之所以没写在该类中的函数中,是因为 `this.pluginManager.created(this)` 通常会在构建函数执行的最后时才调用;
|
|
40
|
+
* 如果像下面写在该类的构建函数中,然后子类通过 `super()` 来调用,这样就会导致 `this.pluginManager.created(this)` 不是在最后的执行;
|
|
41
|
+
*/
|
|
42
|
+
export declare class TierModeOptionsPluginHost<Options extends {} = any, Mode extends string | number = string> extends PluginHost {
|
|
43
|
+
/**
|
|
44
|
+
* 全局级别的默认选项
|
|
45
|
+
*/
|
|
46
|
+
static readonly modeOptions: TierModeOptions<string, any>;
|
|
47
|
+
/**
|
|
48
|
+
* 实例级的默认选项
|
|
49
|
+
*/
|
|
50
|
+
get modeOptions(): TierModeOptions<Mode, Options>;
|
|
51
|
+
protected _modeOptions: TierModeOptions<Mode, Options>;
|
|
52
|
+
get mode(): Mode;
|
|
53
|
+
set mode(value: Mode);
|
|
54
|
+
get options(): Options;
|
|
55
|
+
constructor(options: Options);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* 创建带有选项机制的插件宿主类
|
|
59
|
+
* @remakers
|
|
60
|
+
* 比 直接使用 ModeOptionsPluginHost 提供了完善的类型推导
|
|
61
|
+
*
|
|
62
|
+
* @returns
|
|
63
|
+
*/
|
|
64
|
+
export declare function createTierModeOptionsPluginHost<HOST, Options extends {}, Mode extends string | number = string>(): {
|
|
65
|
+
new (options: Options): {
|
|
66
|
+
/**
|
|
67
|
+
* 实例级的默认选项
|
|
68
|
+
*/
|
|
69
|
+
readonly modeOptions: TierModeOptions<Mode, Options>;
|
|
70
|
+
_modeOptions: TierModeOptions<Mode, Options>;
|
|
71
|
+
mode: Mode;
|
|
72
|
+
readonly options: Options;
|
|
73
|
+
/**
|
|
74
|
+
* 使 host 变成 层级选项的宿主类型
|
|
75
|
+
* @param host
|
|
76
|
+
* @param context
|
|
77
|
+
* @returns
|
|
78
|
+
*/
|
|
79
|
+
readonly pluginManager: import("..").PluginManager<any, import("..").IPlugin<any, any>>;
|
|
80
|
+
use<P extends import("..").IPlugin<HOST, any>>(plugin: P, ...options: import("..").FormatUsePluginParameters<P>): void | import("..").PluginCreatedReturnType<P>;
|
|
81
|
+
destroy(): void;
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* 全局级别的默认选项
|
|
85
|
+
*/
|
|
86
|
+
readonly modeOptions: TierModeOptions<string, Options>;
|
|
87
|
+
readonly pluginManager: import("..").PluginManager<typeof import("./PluginHost").PluginHost & HOST, import("..").IPlugin<HOST, any>>;
|
|
88
|
+
_pluginManager: import("..").PluginManager<typeof import("./PluginHost").PluginHost & HOST, import("..").IPlugin<HOST, any>>;
|
|
89
|
+
use<P_1 extends import("..").IPlugin<HOST, any>>(plugin: P_1, ...options: import("..").FormatUsePluginParameters<P_1>): void | ReturnType<P_1["used"]>;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* 使 HOST 变成 层级选项的宿主类型
|
|
93
|
+
*/
|
|
94
|
+
export type BecomeTierModeOptionsHost<HOST extends new (...args: any) => any, Options extends {} = any, Mode extends string | number = string> = HOST & ITierModeOptionsHostConstructor<Options, Mode> & ReplaceConstructorReturn<HOST, InstanceType<HOST> & ITierModeOptionsHost<Options, Mode>>;
|
|
95
|
+
/**
|
|
96
|
+
* 使 host 变成 层级选项的宿主类型
|
|
97
|
+
* @param host
|
|
98
|
+
* @param context
|
|
99
|
+
* @returns
|
|
100
|
+
*/
|
|
101
|
+
export declare function becomeTierModeOptionsHost<HOST extends new (...args: any) => any, Mode extends string | number, Options extends {}>(host: HOST, mode: Mode, options?: Options): BecomeTierModeOptionsHost<HOST, Options, Mode>;
|
|
102
|
+
//# sourceMappingURL=TierModeOptionsPluginHost.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TierModeOptionsPluginHost.d.ts","sourceRoot":"","sources":["../../src/plugin-host/TierModeOptionsPluginHost.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { PluginHost } from "./PluginHost";
|
|
2
|
+
import type { IPluginHost, IPluginHostConstructor } from "./PluginHost";
|
|
3
|
+
import { TierOptions } from "../options-manager/TierOptions";
|
|
4
|
+
import { type ReplaceConstructorReturn } from "../extend/mixin";
|
|
5
|
+
/**
|
|
6
|
+
* 选项插件宿主接口
|
|
7
|
+
*/
|
|
8
|
+
export interface ITierOptionsHost<Options extends {} = any> {
|
|
9
|
+
readonly defaultOptions: TierOptions<Options>;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* 选项插件宿主的构建函数接口
|
|
13
|
+
*/
|
|
14
|
+
export interface ITierOptionsHostConstructor<Options extends {} = any> {
|
|
15
|
+
get defaultOptions(): TierOptions<Options>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* 选项插件宿主接口
|
|
19
|
+
*/
|
|
20
|
+
export type ITierOptionsPluginHost<HostClassType extends ITierOptionsPluginHostConstructor<any>, Options extends {} = any> = IPluginHost<HostClassType> & ITierOptionsHost<Options>;
|
|
21
|
+
/**
|
|
22
|
+
* 选项插件宿主的构建函数接口
|
|
23
|
+
*/
|
|
24
|
+
export type ITierOptionsPluginHostConstructor<HostClassType, Options extends {} = any> = IPluginHostConstructor<HostClassType> & ITierOptionsHostConstructor<Options>;
|
|
25
|
+
/**
|
|
26
|
+
* 层级选项插件的宿主
|
|
27
|
+
* @remarks
|
|
28
|
+
*
|
|
29
|
+
* 子类需要在构建函数中调用 `this.pluginManager.created(this);`
|
|
30
|
+
*
|
|
31
|
+
* 之所以没写在该类中的函数中,是因为 `this.pluginManager.created(this)` 通常会在构建函数执行的最后时才调用;
|
|
32
|
+
* 如果像下面写在该类的构建函数中,然后子类通过 `super()` 来调用,这样就会导致 `this.pluginManager.created(this)` 不是在最后的执行;
|
|
33
|
+
*/
|
|
34
|
+
export declare class TierOptionsPluginHost<Options extends {} = any> extends PluginHost {
|
|
35
|
+
/**
|
|
36
|
+
* 全局级别的默认选项
|
|
37
|
+
*/
|
|
38
|
+
static readonly defaultOptions: TierOptions<any>;
|
|
39
|
+
/**
|
|
40
|
+
* 实例级的默认选项
|
|
41
|
+
*/
|
|
42
|
+
get defaultOptions(): TierOptions<Options>;
|
|
43
|
+
protected _defaultOptions: TierOptions<Options>;
|
|
44
|
+
constructor(options: Options);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* 创建带有选项机制的插件宿主类
|
|
48
|
+
* @remakers
|
|
49
|
+
* 比 直接使用 OptionsPluginHost 提供了完善的类型推导
|
|
50
|
+
*
|
|
51
|
+
* @returns
|
|
52
|
+
*/
|
|
53
|
+
export declare function createTierOptionsPluginHost<HOST, Options extends {}>(): {
|
|
54
|
+
new (options: Options): {
|
|
55
|
+
/**
|
|
56
|
+
* 实例级的默认选项
|
|
57
|
+
*/
|
|
58
|
+
readonly defaultOptions: TierOptions<Options>;
|
|
59
|
+
_defaultOptions: TierOptions<Options>;
|
|
60
|
+
readonly pluginManager: import("..").PluginManager<any, import("..").IPlugin<any, any>>;
|
|
61
|
+
use<P extends import("..").IPlugin<HOST, any>>(plugin: P, ...options: import("..").FormatUsePluginParameters<P>): void | import("..").PluginCreatedReturnType<P>;
|
|
62
|
+
destroy(): void;
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* 全局级别的默认选项
|
|
66
|
+
*/
|
|
67
|
+
readonly defaultOptions: TierOptions<Options>;
|
|
68
|
+
readonly pluginManager: import("..").PluginManager<typeof import("./PluginHost").PluginHost & HOST, import("..").IPlugin<HOST, any>>;
|
|
69
|
+
_pluginManager: import("..").PluginManager<typeof import("./PluginHost").PluginHost & HOST, import("..").IPlugin<HOST, any>>;
|
|
70
|
+
use<P_1 extends import("..").IPlugin<HOST, any>>(plugin: P_1, ...options: import("..").FormatUsePluginParameters<P_1>): void | ReturnType<P_1["used"]>;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* 使 HOST 变成 层级选项的宿主类型
|
|
74
|
+
*/
|
|
75
|
+
export type BecomeTierOptionsHost<HOST extends new (...args: any) => any, Options extends {} = any> = HOST & ITierOptionsHostConstructor<Options> & ReplaceConstructorReturn<HOST, InstanceType<HOST> & ITierOptionsHost<Options>>;
|
|
76
|
+
/**
|
|
77
|
+
* 使 host 变成 层级选项的宿主类型
|
|
78
|
+
* @param host
|
|
79
|
+
* @param context
|
|
80
|
+
* @returns
|
|
81
|
+
*/
|
|
82
|
+
export declare function becomeTierOptionsHost<HOST extends new (...args: any) => any, Options extends {} = any>(host: HOST, option?: Options): BecomeTierOptionsHost<HOST, any>;
|
|
83
|
+
//# sourceMappingURL=TierOptionsPluginHost.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TierOptionsPluginHost.d.ts","sourceRoot":"","sources":["../../src/plugin-host/TierOptionsPluginHost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,UAAU,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAG,WAAW,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAC5D,OAAO,EAAE,KAAK,wBAAwB,EAAe,MAAM,iBAAiB,CAAC;AAI7E;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,OAAO,SAAS,EAAE,GAAG,GAAG;IACxD,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B,CAAC,OAAO,SAAS,EAAE,GAAG,GAAG;IACnE,IAAI,cAAc,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;CAC5C;AAID;;GAEG;AACH,MAAM,MAAM,sBAAsB,CAAC,aAAa,SAAS,iCAAiC,CAAC,GAAG,CAAC,EAAE,OAAO,SAAS,EAAE,GAAG,GAAG,IAAI,WAAW,CAAC,aAAa,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAEpL;;GAEG;AACH,MAAM,MAAM,iCAAiC,CAAC,aAAa,EAAE,OAAO,SAAS,EAAE,GAAG,GAAG,IAAI,sBAAsB,CAAC,aAAa,CAAC,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;AAItK;;;;;;;;GAQG;AACH,qBAAa,qBAAqB,CAAC,OAAO,SAAS,EAAE,GAAG,GAAG,CAAE,SAAQ,UAAU;IAC7E;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,cAAc,mBAA0B;IAGxD;;OAEG;IACH,IAAI,cAAc,yBAKjB;IACD,SAAS,CAAC,eAAe,EAAG,WAAW,CAAC,OAAO,CAAC,CAAC;gBAErC,OAAO,EAAE,OAAO;CAI7B;AAGD;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,OAAO,SAAS,EAAE;kBAoB3C,OAAO;QAX5B;;WAEG;;yBAOe,YAAY,OAAO,CAAC;;;;;IAftC;;OAEG;;;;;EAoBN;AAGD;;GAEG;AACH,MAAM,MAAM,qBAAqB,CAAC,IAAI,SAAS,KAAK,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,EAAE,OAAO,SAAS,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,2BAA2B,CAAC,OAAO,CAAC,GAAG,wBAAwB,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;AAInO;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,SAAS,KAAK,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,EAAE,OAAO,SAAS,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI,EAAC,MAAM,CAAC,EAAC,OAAO,oCAqBjI"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { AnyFunction } from "type-tls";
|
|
2
|
+
/**
|
|
3
|
+
* 插件宿主的实例类型
|
|
4
|
+
*/
|
|
5
|
+
export type HostInst<H> = H extends new (...args: any) => any ? InstanceType<H> : H;
|
|
6
|
+
/**
|
|
7
|
+
* 格式化 use 方法的参数列表
|
|
8
|
+
*/
|
|
9
|
+
export type FormatUseParameters<Options> = Options extends never | void | undefined ? [] : [Options];
|
|
10
|
+
/**
|
|
11
|
+
* 格式化 use 方法的参数列表
|
|
12
|
+
*/
|
|
13
|
+
export type FormatUsePluginParameters<Plugin> = GetPluginOptions<Plugin> extends never | void | undefined ? [] : [GetPluginOptions<Plugin>];
|
|
14
|
+
/**
|
|
15
|
+
* 将选项格式成方法的参数类型
|
|
16
|
+
* @remarks
|
|
17
|
+
* 如果是 never|void|undefined 类型,则会被转为 void
|
|
18
|
+
*/
|
|
19
|
+
export type NormalizePluginOptions<Options> = Options extends never | void | undefined ? void : Options;
|
|
20
|
+
/**
|
|
21
|
+
* 插件的接口
|
|
22
|
+
*
|
|
23
|
+
* @typeParam HOST - 插件宿主的类类型
|
|
24
|
+
* @typeParam Options - 插件的选项类型
|
|
25
|
+
*/
|
|
26
|
+
export interface IPlugin<HOST, Options = void> {
|
|
27
|
+
/**
|
|
28
|
+
* 当插件被注册时调用
|
|
29
|
+
* @param Host - 宿主的类型
|
|
30
|
+
* @param options - 注册插件时的选项
|
|
31
|
+
*/
|
|
32
|
+
used(Host: HOST, ...options: FormatUseParameters<Options>): any;
|
|
33
|
+
/**
|
|
34
|
+
* 当宿主实例被创建时调用
|
|
35
|
+
* @param host - 新建的宿主实例
|
|
36
|
+
* @param options - 注册插件时的选项
|
|
37
|
+
*/
|
|
38
|
+
created?(host: HostInst<HOST>, ...options: FormatUseParameters<Options>): any;
|
|
39
|
+
/**
|
|
40
|
+
* 当宿主实例被销毁时调用
|
|
41
|
+
* @param host - 被销毁的宿主实例
|
|
42
|
+
* @param options - 注册插件时的选项
|
|
43
|
+
*/
|
|
44
|
+
destroyed?(host: HostInst<HOST>, ...options: FormatUseParameters<Options>): any;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* 获取插件的选项类型
|
|
48
|
+
*/
|
|
49
|
+
export type GetPluginOptions<Plugin> = Plugin extends IPlugin<any, infer Options> ? Options : never;
|
|
50
|
+
/**
|
|
51
|
+
* 获取规范化的插件选项
|
|
52
|
+
*/
|
|
53
|
+
export type GetNormalizePluginOptions<Plugin> = NormalizePluginOptions<GetPluginOptions<Plugin>>;
|
|
54
|
+
/**
|
|
55
|
+
* 插件的 used 方法的返回值类型
|
|
56
|
+
*/
|
|
57
|
+
export type PluginUseReturnType<P extends IPlugin<any, any>> = ReturnType<P["used"]>;
|
|
58
|
+
/**
|
|
59
|
+
* 插件的 created 方法的返回值类型
|
|
60
|
+
*/
|
|
61
|
+
export type PluginCreatedReturnType<P extends IPlugin<any, any>> = P["created"] extends AnyFunction ? ReturnType<P["created"]> : void;
|
|
62
|
+
/**
|
|
63
|
+
* 插件管理者
|
|
64
|
+
*
|
|
65
|
+
* @remarks
|
|
66
|
+
* 负责管理插件的注册、应用 等
|
|
67
|
+
*
|
|
68
|
+
* @typeParam HostClassType 插件宿主类的类型
|
|
69
|
+
*
|
|
70
|
+
*/
|
|
71
|
+
export declare class PluginManager<HostClassType, Plugin extends IPlugin<HostClassType, any> = IPlugin<HostClassType, any>> {
|
|
72
|
+
/**
|
|
73
|
+
* 插件的宿主
|
|
74
|
+
*/
|
|
75
|
+
host: HostClassType;
|
|
76
|
+
/**
|
|
77
|
+
* 插件与插件选项的映射
|
|
78
|
+
*/
|
|
79
|
+
readonly pluginOptsMap: Map<Plugin, any>;
|
|
80
|
+
/**
|
|
81
|
+
* 注册的插件
|
|
82
|
+
*/
|
|
83
|
+
readonly plugins: Plugin[];
|
|
84
|
+
/**
|
|
85
|
+
* @param host - 插件的宿主
|
|
86
|
+
*/
|
|
87
|
+
constructor(host?: HostClassType);
|
|
88
|
+
/**
|
|
89
|
+
* 使用插件、注册插件
|
|
90
|
+
* @param plugin - 插件
|
|
91
|
+
* @param options - 传递给插件的选项
|
|
92
|
+
*/
|
|
93
|
+
use<P extends Plugin>(plugin: P, ...options: FormatUsePluginParameters<P>): PluginUseReturnType<P> | void;
|
|
94
|
+
/**
|
|
95
|
+
* 插件宿主创建实例时调用
|
|
96
|
+
*
|
|
97
|
+
* @remarks
|
|
98
|
+
* 会调用每个插件的 {@link IPlugin.created} 方法
|
|
99
|
+
* @param hostInst - 插件宿主的新实例
|
|
100
|
+
*/
|
|
101
|
+
created(hostInst: HostInst<HostClassType>): void;
|
|
102
|
+
/**
|
|
103
|
+
* 插件宿主被销毁时调用
|
|
104
|
+
*
|
|
105
|
+
* @remarks
|
|
106
|
+
* 会调用每个插件的 {@link IPlugin.destroyed} 方法
|
|
107
|
+
* @param hostInst - 被销毁的插件实例
|
|
108
|
+
*/
|
|
109
|
+
destroyed(hostInst: HostInst<HostClassType>): void;
|
|
110
|
+
/**
|
|
111
|
+
* 插件宿主实例的注册插件的方法
|
|
112
|
+
*
|
|
113
|
+
* @remarks
|
|
114
|
+
* 会调用每个插件的 {@link IPlugin.use | IPlugin.created()} 方法
|
|
115
|
+
* @param hostInst - 插件宿主的新实例
|
|
116
|
+
*/
|
|
117
|
+
instUse<P extends Plugin>(hostInst: HostInst<HostClassType>, plugin: P, ...options: FormatUsePluginParameters<P>): PluginCreatedReturnType<P> | void;
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=PluginManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PluginManager.d.ts","sourceRoot":"","sources":["../../src/plugin-manager/PluginManager.ts"],"names":[],"mappings":"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"}
|