plugin-tls 1.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/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 +29 -251
- 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/options-manager/defaultOptions.d.ts +34 -0
- 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 +1216 -160
- package/dist/plugin-tls.iife.js +1 -0
- package/dist/plugin-tls.mjs +1011 -102
- 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 +1 -1
- package/doc/api/index.md +1 -1
- package/doc/api/plugin-tls.adddefaultoptions.md +3 -3
- package/doc/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 +16 -11
- 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/api/plugin-tls.hostinst.md +2 -2
- package/doc/api/plugin-tls.idefaultoptionshost.defaultoptions.md +1 -1
- package/doc/api/plugin-tls.idefaultoptionshost.md +1 -1
- package/doc/api/plugin-tls.iidefaultoptionshostconstructor.md +1 -1
- package/doc/api/plugin-tls.iplugin.created.md +4 -4
- package/doc/api/plugin-tls.iplugin.destroyed.md +25 -0
- package/doc/api/plugin-tls.iplugin.md +4 -3
- package/doc/api/plugin-tls.iplugin.used.md +4 -4
- package/doc/api/plugin-tls.ipluginhost.md +2 -2
- package/doc/api/plugin-tls.ipluginhost.use.md +6 -6
- package/doc/api/plugin-tls.ipluginhostconstructor.md +2 -2
- package/doc/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 +82 -6
- 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/api/plugin-tls.plugincreatedreturntype.md +3 -3
- package/doc/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 +24 -11
- package/doc/api/plugin-tls.pluginhost.pluginmanager.md +2 -2
- package/doc/api/plugin-tls.pluginhost.use.md +5 -5
- package/doc/api/plugin-tls.pluginmanager._constructor_.md +20 -0
- package/doc/api/plugin-tls.pluginmanager.created.md +4 -4
- package/doc/api/plugin-tls.pluginmanager.destroyed.md +28 -0
- package/doc/api/plugin-tls.pluginmanager.host.md +2 -2
- package/doc/api/plugin-tls.pluginmanager.instuse.md +8 -8
- package/doc/api/plugin-tls.pluginmanager.md +12 -5
- package/doc/api/plugin-tls.pluginmanager.pluginoptsmap.md +2 -2
- package/doc/api/plugin-tls.pluginmanager.plugins.md +2 -2
- package/doc/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/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/doc/api/plugin-tls.createoptionspluginhost.md +0 -29
- package/doc/api/plugin-tls.ioptionspluginhost.defaultoptions.md +0 -11
- package/doc/api/plugin-tls.ioptionspluginhost.md +0 -21
- package/doc/api/plugin-tls.ioptionspluginhostconstructor.md +0 -15
- package/doc/api/plugin-tls.optionspluginhost._defaultoptions.md +0 -11
- package/doc/api/plugin-tls.optionspluginhost.defaultoptions.md +0 -13
- package/doc/api/plugin-tls.optionspluginhost.md +0 -21
- package/doc/api/plugin-tls.pluginhost._constructor_.md +0 -13
- package/doc/api/plugin-tls.pluginoptions.md +0 -11
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { OptionsManager } from "./OptionsManager";
|
|
2
|
+
import { TierOptions } from "./TierOptions";
|
|
3
|
+
/**
|
|
4
|
+
* 模式选项
|
|
5
|
+
* @remarks
|
|
6
|
+
* 针对选项提供了模式和继承的功能;
|
|
7
|
+
*
|
|
8
|
+
* 适用以下场景:
|
|
9
|
+
* 你设计了一个支持许多选项的工具,不同场景下需要配置不同的选项值,比如有如下几个场景:
|
|
10
|
+
* - 性能模式:所有的配置项以性能为目标进行配置,关闭那些效果类的选项;
|
|
11
|
+
* - 特效模式:以高质量的渲染效果为目标进行配置,会开启所有的效果选项;
|
|
12
|
+
* - 平衡模式:兼顾性能和效果,取个折中;
|
|
13
|
+
*
|
|
14
|
+
* 并且这些模式也会一些共同的选项;
|
|
15
|
+
*
|
|
16
|
+
* 使用该类,你可以:
|
|
17
|
+
* - 设置一个基本模式:该模式提供的所有模式都会有的共用选项
|
|
18
|
+
* - 设置 性能模式、特效模式、平衡模式 继承 基本模式;
|
|
19
|
+
*/
|
|
20
|
+
export declare class ModeOptions<Mode extends string | number = string, Option extends {} = any> extends OptionsManager<Option> {
|
|
21
|
+
constructor(mode: Mode);
|
|
22
|
+
constructor(mode: Mode, options?: Option);
|
|
23
|
+
/**
|
|
24
|
+
* 模式的配置
|
|
25
|
+
*/
|
|
26
|
+
modes: Record<Mode, TierOptions<Option>>;
|
|
27
|
+
/**
|
|
28
|
+
* 当前模式
|
|
29
|
+
*/
|
|
30
|
+
get mode(): Mode;
|
|
31
|
+
set mode(value: Mode);
|
|
32
|
+
protected _mode?: Mode;
|
|
33
|
+
/**
|
|
34
|
+
* 所有的模式名字
|
|
35
|
+
*/
|
|
36
|
+
get modeNames(): Mode[];
|
|
37
|
+
protected _modeNames: Mode[] | null;
|
|
38
|
+
/**
|
|
39
|
+
* 获取所有的模式名字
|
|
40
|
+
* @returns
|
|
41
|
+
*/
|
|
42
|
+
getModeNames(): Mode[];
|
|
43
|
+
/**
|
|
44
|
+
* 判断是否有某个模式
|
|
45
|
+
* @param mode
|
|
46
|
+
* @returns
|
|
47
|
+
*/
|
|
48
|
+
hasMode(mode: string | number): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* 当前模式的选项
|
|
51
|
+
*/
|
|
52
|
+
get optionManager(): TierOptions<Option>;
|
|
53
|
+
/**
|
|
54
|
+
* 当前模式对应的选项
|
|
55
|
+
*/
|
|
56
|
+
get option(): Option;
|
|
57
|
+
get plainFullOption(): Option;
|
|
58
|
+
protected _plainFullOption: Option | null;
|
|
59
|
+
/**
|
|
60
|
+
* 更新
|
|
61
|
+
*/
|
|
62
|
+
updateFullOption(): void;
|
|
63
|
+
/**
|
|
64
|
+
* 返回已合并继承选项的选项
|
|
65
|
+
* @remarks
|
|
66
|
+
* 与继承选项只是浅合并
|
|
67
|
+
* @param mode
|
|
68
|
+
* @returns
|
|
69
|
+
*/
|
|
70
|
+
getModeOption(mode: Mode): Option | null;
|
|
71
|
+
/**
|
|
72
|
+
* 返回已合并继承选项的完整选项
|
|
73
|
+
* @remarks
|
|
74
|
+
* 与继承选项合并
|
|
75
|
+
* @param mode
|
|
76
|
+
* @returns
|
|
77
|
+
*/
|
|
78
|
+
getFullModeOption(mode: Mode): Option | null;
|
|
79
|
+
/**
|
|
80
|
+
* 给模式设置选项
|
|
81
|
+
* @param mode
|
|
82
|
+
* @param option
|
|
83
|
+
* @param deep - 是否要进行深度合并
|
|
84
|
+
* @param extend - 继承哪个模式
|
|
85
|
+
*/
|
|
86
|
+
setModeOption(mode: Mode, option: Option, deep?: boolean, extend?: Mode): Record<Mode, TierOptions<Option>>[Mode];
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=ModeOptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModeOptions.d.ts","sourceRoot":"","sources":["../../src/options-manager/ModeOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAA;AAC/C,OAAQ,EAAC,WAAW,EAAC,MAAM,eAAe,CAAA;AAG1C;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,WAAW,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAAC,MAAM,SAAS,EAAE,GAAG,GAAG,CAAE,SAAQ,cAAc,CAAC,MAAM,CAAC;gBAEtG,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,MAAM;IASxC;;OAEG;IACH,KAAK,oCAA0C;IAE/C;;OAEG;IACH,IAAI,IAAI,IAAG,IAAI,CAEd;IACD,IAAI,IAAI,CAAC,KAAK,EAHH,IAGG,EAMb;IACD,SAAS,CAAC,KAAK,CAAC,EAAC,IAAI,CAAC;IAGtB;;OAEG;IACH,IAAI,SAAS,WAEZ;IAED,SAAS,CAAC,UAAU,EAAC,IAAI,EAAE,GAAG,IAAI,CAAQ;IAG1C;;;OAGG;IACH,YAAY;IAKZ;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAC,MAAM,GAAG,MAAM;IAM5B;;OAEG;IACH,IAAI,aAAa,IAAG,WAAW,CAAC,MAAM,CAAC,CAEtC;IAID;;OAEG;IACH,IAAI,MAAM,WAET;IAED,IAAI,eAAe,WAElB;IAED,SAAS,CAAC,gBAAgB,EAAC,MAAM,GAAC,IAAI,CAAQ;IAG9C;;OAEG;IACH,gBAAgB;IAOhB;;;;;;OAMG;IACH,aAAa,CAAC,IAAI,EAAC,IAAI,GAAE,MAAM,GAAC,IAAI;IAIpC;;;;;;OAMG;IACH,iBAAiB,CAAC,IAAI,EAAC,IAAI,GAAE,MAAM,GAAC,IAAI;IAKxC;;;;;;OAMG;IACH,aAAa,CAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,IAAI,CAAC,EAAC,OAAO,EAAC,MAAM,CAAC,EAAC,IAAI;CAiBnE"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 视为未定义的选项值
|
|
3
|
+
* @remarks
|
|
4
|
+
* 当选项的值是未定义的值
|
|
5
|
+
*/
|
|
6
|
+
export declare enum UndefinedOptionValue {
|
|
7
|
+
/**
|
|
8
|
+
* 将 undefined 和 null 都视为未定义的选项
|
|
9
|
+
*/
|
|
10
|
+
UndefinedAndNull = "UndefinedAndNull",
|
|
11
|
+
/**
|
|
12
|
+
* 只将 undefined 视为未定义的选项
|
|
13
|
+
*/
|
|
14
|
+
Undefined = "Undefined",
|
|
15
|
+
/**
|
|
16
|
+
* 只将 null 视为未定义的选项
|
|
17
|
+
*/
|
|
18
|
+
Null = "Null"
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* 各种判断未定义值的函数集
|
|
22
|
+
*/
|
|
23
|
+
export declare const isUndefinedMap: {
|
|
24
|
+
UndefinedAndNull: (value: any) => boolean;
|
|
25
|
+
Undefined: (value: any) => boolean;
|
|
26
|
+
Null: (value: any) => boolean;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* 选项管理器
|
|
30
|
+
*/
|
|
31
|
+
export declare abstract class OptionsManager<Option extends {} = any> {
|
|
32
|
+
/**
|
|
33
|
+
* 选项
|
|
34
|
+
*/
|
|
35
|
+
abstract option: Option;
|
|
36
|
+
/**
|
|
37
|
+
* 是否要冻结 fullOption 的成员
|
|
38
|
+
* @remarks
|
|
39
|
+
* 只会冻结 fullOption 的直接成员的值,不会冻结 fullOption 孙子成员的值
|
|
40
|
+
*/
|
|
41
|
+
freezeMember: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* 可更新顶级成员值的完整的选项
|
|
44
|
+
* @remarks
|
|
45
|
+
* 合并后的选项;
|
|
46
|
+
* plainFullOption 的代理对象,自动监听了顶层成员的屐;所以可以更改顶级成员的值,不可以更改非顶级成员的值;
|
|
47
|
+
*/
|
|
48
|
+
fullOption: Option;
|
|
49
|
+
/**
|
|
50
|
+
* 完整的选项
|
|
51
|
+
* @remarks
|
|
52
|
+
* 合并后的选项
|
|
53
|
+
*/
|
|
54
|
+
abstract readonly plainFullOption: Option;
|
|
55
|
+
/**
|
|
56
|
+
* 更新完整的选项
|
|
57
|
+
*/
|
|
58
|
+
abstract updateFullOption(): void;
|
|
59
|
+
/**
|
|
60
|
+
* 设置选项
|
|
61
|
+
* @remarks
|
|
62
|
+
* 会将被设置的选项浅合并进当前选项中
|
|
63
|
+
* @param option
|
|
64
|
+
* @param deep - 是否要进行深度合并
|
|
65
|
+
*/
|
|
66
|
+
setOption(option: Option, deep?: boolean): void | Option;
|
|
67
|
+
/**
|
|
68
|
+
* 未定义值的类型
|
|
69
|
+
*/
|
|
70
|
+
get undefinedValue(): UndefinedOptionValue;
|
|
71
|
+
set undefinedValue(value: UndefinedOptionValue);
|
|
72
|
+
protected _undefinedValue: UndefinedOptionValue;
|
|
73
|
+
/**
|
|
74
|
+
* 未定义值的判断函数
|
|
75
|
+
*/
|
|
76
|
+
isUndefined: (value: any) => boolean;
|
|
77
|
+
/**
|
|
78
|
+
* 获取选项成员
|
|
79
|
+
* @param key
|
|
80
|
+
* @returns
|
|
81
|
+
*/
|
|
82
|
+
getMember<Key extends keyof Option>(key: Key): Option[Key] | undefined | null;
|
|
83
|
+
/**
|
|
84
|
+
* 设置选项成员
|
|
85
|
+
* @param key
|
|
86
|
+
* @param value
|
|
87
|
+
* @param deep - 是否要进行深度合并
|
|
88
|
+
*/
|
|
89
|
+
setMember<Key extends keyof Option>(key: Key, value?: Option[Key] | null, deep?: boolean): void;
|
|
90
|
+
/**
|
|
91
|
+
* 获取属性路径对应的值
|
|
92
|
+
* @param propPath
|
|
93
|
+
* @returns
|
|
94
|
+
*/
|
|
95
|
+
getValue(propPath: string[]): any;
|
|
96
|
+
/**
|
|
97
|
+
* 设置属性路径对应的值
|
|
98
|
+
* @param propPath
|
|
99
|
+
* @param value
|
|
100
|
+
* @param deep - 是否要进行深度合并
|
|
101
|
+
* @returns
|
|
102
|
+
*/
|
|
103
|
+
setValue(propPath: string[], value: any, deep?: boolean): void;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=OptionsManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OptionsManager.d.ts","sourceRoot":"","sources":["../../src/options-manager/OptionsManager.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,oBAAY,oBAAoB;IAC5B;;OAEG;IACH,gBAAgB,qBAAqB;IACrC;;OAEG;IACH,SAAS,cAAc;IACvB;;OAEG;IACH,IAAI,SAAS;CAEhB;AAED;;GAEG;AACH,eAAO,MAAM,cAAc;8BACuB,GAAG;uBAGV,GAAG;kBAGR,GAAG;CAGxC,CAAA;AAID;;GAEG;AACH,8BAAsB,cAAc,CAAC,MAAM,SAAS,EAAE,GAAG,GAAG;IAGxD;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB;;;;OAIG;IACH,YAAY,UAAQ;IAEpB;;;;;OAKG;IACH,UAAU,SAiCc;IAGxB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAE1C;;OAEG;IACH,QAAQ,CAAC,gBAAgB,IAAI,IAAI;IAEjC;;;;;;OAMG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;IAQxC;;OAEG;IACH,IAAI,cAAc,yBAEjB;IACD,IAAI,cAAc,CAAC,KAAK,sBAAA,EAGvB;IAED,SAAS,CAAC,eAAe,uBAAyC;IAElE;;OAEG;IACH,WAAW,0BAAmC;IAG9C;;;;OAIG;IACH,SAAS,CAAC,GAAG,SAAS,MAAM,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI;IAI7E;;;;;OAKG;IACH,SAAS,CAAC,GAAG,SAAS,MAAM,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO;IAiBxF;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,GAAG;IAIjC;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,OAAO;CAW1D"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { ModeOptions } from "./ModeOptions";
|
|
2
|
+
import type { TierOptions } from "./TierOptions";
|
|
3
|
+
/**
|
|
4
|
+
* 层级模式选项
|
|
5
|
+
* @remarks
|
|
6
|
+
* 即 ModeOptions 和 TierOptions 的结合
|
|
7
|
+
*/
|
|
8
|
+
export declare class TierModeOptions<Mode extends string | number = string, Option extends {} = any> extends ModeOptions<Mode, Option> {
|
|
9
|
+
constructor(mode: Mode);
|
|
10
|
+
constructor(mode: Mode, options?: Option, extend?: TierModeOptions<Mode, Option>);
|
|
11
|
+
/**
|
|
12
|
+
* 继承的选项
|
|
13
|
+
*/
|
|
14
|
+
get extends(): TierModeOptions<Mode, Option> | null;
|
|
15
|
+
set extends(value: TierModeOptions<Mode, Option> | null);
|
|
16
|
+
protected _extends: TierModeOptions<Mode, Option> | null;
|
|
17
|
+
/**
|
|
18
|
+
* 返回已合并继承选项的最终选项
|
|
19
|
+
* @remarks
|
|
20
|
+
* 与继承选项只是浅合并
|
|
21
|
+
* @param mode
|
|
22
|
+
* @returns
|
|
23
|
+
*/
|
|
24
|
+
getFullModeOption(mode: Mode): Option | null;
|
|
25
|
+
/**
|
|
26
|
+
* 获取所有的模式名字
|
|
27
|
+
* @returns
|
|
28
|
+
*/
|
|
29
|
+
getModeNames(): Mode[];
|
|
30
|
+
/**
|
|
31
|
+
* 在整个层级上判断是否有某个模式
|
|
32
|
+
* @param mode
|
|
33
|
+
* @returns
|
|
34
|
+
*/
|
|
35
|
+
hasModeOnTier(mode: string | number): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* 当前模式的选项
|
|
38
|
+
*/
|
|
39
|
+
get optionManager(): TierOptions<Option>;
|
|
40
|
+
/**
|
|
41
|
+
* 获取模式对应的选项管理器
|
|
42
|
+
* @param mode
|
|
43
|
+
* @returns
|
|
44
|
+
*/
|
|
45
|
+
getModeOptionManager(mode: Mode): TierOptions<Option> | null;
|
|
46
|
+
/**
|
|
47
|
+
* 获取选项成员
|
|
48
|
+
* @param key
|
|
49
|
+
* @returns
|
|
50
|
+
*/
|
|
51
|
+
getMember<Key extends keyof Option>(key: Key): Option[Key] | undefined | null;
|
|
52
|
+
/**
|
|
53
|
+
* 获取属性路径对应的值
|
|
54
|
+
* @param propPath
|
|
55
|
+
* @returns
|
|
56
|
+
*/
|
|
57
|
+
getValue(propPath: string[]): any;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* 层级模式选项主机装饰器
|
|
61
|
+
* @remarks
|
|
62
|
+
* 可让宿主具备层级模式选项;
|
|
63
|
+
* 需要宿主有静态的同名属性;
|
|
64
|
+
* @param target
|
|
65
|
+
* @param context
|
|
66
|
+
* @returns
|
|
67
|
+
*/
|
|
68
|
+
export declare function tierModeOptionsDecorator<This, Value>(value: ClassAccessorDecoratorTarget<This, Value>, context: ClassAccessorDecoratorContext<This, Value>): ClassAccessorDecoratorResult<This, Value>;
|
|
69
|
+
//# sourceMappingURL=TierModeOptions.d.ts.map
|
|
@@ -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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Optional } from "type-tls";
|
|
2
|
+
/**
|
|
3
|
+
* 默认选项宿主接口
|
|
4
|
+
*/
|
|
5
|
+
export interface IDefaultOptionsHost<Options> {
|
|
6
|
+
readonly defaultOptions: Options;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* 默认选项宿主的构建函数接口
|
|
10
|
+
*/
|
|
11
|
+
export interface IIDefaultOptionsHostConstructor<Options> {
|
|
12
|
+
get defaultOptions(): Options;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* 创建增加带有选项机制的装饰器
|
|
16
|
+
*
|
|
17
|
+
* @remarks
|
|
18
|
+
* 类装饰器的工厂函数
|
|
19
|
+
*
|
|
20
|
+
* @param options - 选项内容
|
|
21
|
+
* @returns
|
|
22
|
+
*/
|
|
23
|
+
export declare function addDefaultOptions<Options>(options: Options, name?: Optional<string>): <Clas extends new (...args: any) => any>(target: Clas) => void;
|
|
24
|
+
/**
|
|
25
|
+
* 创建增加带有选项机制的装饰器
|
|
26
|
+
*
|
|
27
|
+
* @remarks
|
|
28
|
+
* 静态属性装饰器
|
|
29
|
+
*
|
|
30
|
+
* @param options - 选项内容
|
|
31
|
+
* @returns
|
|
32
|
+
*/
|
|
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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"}
|