plugin-tls 4.7.0 → 5.0.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 (29) hide show
  1. package/dist/Destroyable-mrBsNabq-D6TYs3Zn.js +165 -0
  2. package/dist/Destroyable-mrBsNabq-IFFuYfKS.cjs +1 -0
  3. package/dist/index-node.cjs +1 -1
  4. package/dist/index-node.js +57 -108
  5. package/dist/index-web.cjs +1 -1
  6. package/dist/index-web.js +58 -109
  7. package/dist/options/options-plugin-host/tier-mode-options/TierModeOptionsPluginHost.d.ts +2 -2
  8. package/dist/options/options-plugin-host/tier-mode-options/TierModeOptionsPluginHost.d.ts.map +1 -1
  9. package/dist/options/options-plugin-host/tier-mode-options/createTierModeOptionsPluginHost.d.ts +3 -3
  10. package/dist/options/options-plugin-host/tier-options/TierOptionsPluginHost.d.ts +2 -2
  11. package/dist/options/options-plugin-host/tier-options/TierOptionsPluginHost.d.ts.map +1 -1
  12. package/dist/options/options-plugin-host/tier-options/createTierOptionsPluginHost.d.ts +3 -3
  13. package/dist/plugin-host/PluginHost.d.ts +5 -3
  14. package/dist/plugin-host/PluginHost.d.ts.map +1 -1
  15. package/dist/plugin-host/PluginHostEventEmitter.d.ts +2 -2
  16. package/dist/plugin-host/PluginHostEventEmitter.d.ts.map +1 -1
  17. package/dist/plugin-host/PluginHostEventTarget.d.ts +2 -2
  18. package/dist/plugin-host/PluginHostEventTarget.d.ts.map +1 -1
  19. package/dist/plugin-host/createPluginHost.d.ts +2 -2
  20. package/dist/plugin-host/decorator.d.ts +2 -2
  21. package/dist/plugin-manager/ExtendManager.d.ts +4 -4
  22. package/dist/plugin-manager/ExtendManager.d.ts.map +1 -1
  23. package/dist/plugin-manager/PluginExtendManager.d.ts +4 -4
  24. package/dist/plugin-manager/PluginExtendManager.d.ts.map +1 -1
  25. package/dist/plugin-manager/PluginManager.d.ts +4 -4
  26. package/dist/plugin-manager/PluginManager.d.ts.map +1 -1
  27. package/package.json +2 -2
  28. package/dist/Destroyable-BqvuD4gL-Cmk1ocqj.cjs +0 -1
  29. package/dist/Destroyable-BqvuD4gL-D50ZO9eN.js +0 -129
@@ -0,0 +1,165 @@
1
+ import { serialCallAllFuns as c } from "com-tools";
2
+ var l = class {
3
+ listenerMap = /* @__PURE__ */ new Map();
4
+ ignoreError = !1;
5
+ get listenerTotal() {
6
+ let e = 0;
7
+ for (let t of this.listenerMap.values()) e += t.size;
8
+ return e;
9
+ }
10
+ emit(e, ...t) {
11
+ let s = this.listenerMap.get(e);
12
+ if (s) {
13
+ if (this.ignoreError) {
14
+ for (let r of s) try {
15
+ r.apply(this, t);
16
+ } catch (n) {
17
+ console.error(n);
18
+ }
19
+ return;
20
+ }
21
+ for (let r of s) r.apply(this, t);
22
+ }
23
+ }
24
+ addListener(e, t, s) {
25
+ if (s?.aborted) return h;
26
+ let r = this.getAllListeners(e);
27
+ r.has(t) || (r.add(t), this.onCountChange({
28
+ name: e,
29
+ count: r.size,
30
+ change: 1
31
+ }));
32
+ let n = () => {
33
+ s?.removeEventListener("abort", n), this.removeListener(e, t);
34
+ };
35
+ return s?.addEventListener("abort", n, { once: !0 }), n;
36
+ }
37
+ addListenerWithTimes(e, t, s) {
38
+ let r = s?.times ?? 1;
39
+ if (r <= 0) return h;
40
+ let n = 0;
41
+ function a(...u) {
42
+ t.apply(this, u), ++n >= r && o();
43
+ }
44
+ let o = this.addListener(e, a, s?.signal);
45
+ return o;
46
+ }
47
+ removeListener(e, t) {
48
+ let s = this.listenerMap.get(e);
49
+ s?.has(t) && (s.delete(t), s.size === 0 && this.listenerMap.delete(e), this.onCountChange({
50
+ name: e,
51
+ count: s.size,
52
+ change: -1
53
+ }));
54
+ }
55
+ removeAllListeners(...e) {
56
+ let { listenerMap: t } = this;
57
+ e.length === 0 && (e = this.listenerMap.keys());
58
+ for (let s of e) {
59
+ let r = t.get(s);
60
+ if (!r) continue;
61
+ let n = r.size;
62
+ n && r.clear(), t.delete(s), this.onCountChange({
63
+ name: s,
64
+ count: 0,
65
+ change: -n
66
+ });
67
+ }
68
+ }
69
+ hasListener(e, t) {
70
+ return this.listenerMap.get(e)?.has(t) === !0;
71
+ }
72
+ getListenerCount(e) {
73
+ return this.listenerMap.get(e)?.size ?? 0;
74
+ }
75
+ onCountChange(e) {
76
+ }
77
+ getAllListeners(e) {
78
+ let t = this.listenerMap.get(e);
79
+ return t || (t = /* @__PURE__ */ new Set(), this.listenerMap.set(e, t)), t;
80
+ }
81
+ };
82
+ function h() {
83
+ }
84
+ var d = class extends l {
85
+ countChangeEvents = new l();
86
+ onCountChange(t) {
87
+ let s = this.countChangeEvents;
88
+ s.emit(t.name, t), s.emit("listenerTotal", t);
89
+ }
90
+ }, y = class extends d {
91
+ refCount = 0;
92
+ get isDestroyed() {
93
+ return this._isDestroyed;
94
+ }
95
+ _isDestroyed = !1;
96
+ get canDestroy() {
97
+ return !this.isDestroyed && this.refCount <= 0;
98
+ }
99
+ _destroyers = [];
100
+ disposeFun(e) {
101
+ return this._destroyers.push(e), e;
102
+ }
103
+ cancelDisposeFun(e) {
104
+ let t = this._destroyers.indexOf(e);
105
+ return this._destroyers.splice(t, 1), e;
106
+ }
107
+ disposeObj(e, t) {
108
+ let s = t ? function() {
109
+ return e.destroySync();
110
+ } : function() {
111
+ return e.destroy();
112
+ };
113
+ return this.disposeFun(s), e.__destroyable_destroyer = s, e;
114
+ }
115
+ cancelDisposeObj(e) {
116
+ let t = e.__destroyable_destroyer;
117
+ return t && this.cancelDisposeFun(t), e;
118
+ }
119
+ dispose(e, t) {
120
+ return typeof e == "function" ? this.disposeFun(e) : this.disposeObj(e, t);
121
+ }
122
+ cancelDispose(e) {
123
+ return typeof e == "function" ? this.cancelDisposeFun(e) : this.cancelDisposeObj(e);
124
+ }
125
+ destroyThis() {
126
+ }
127
+ destroySync() {
128
+ if (!this.canDestroy) return this.isDestroyed;
129
+ let e = this._destroyers.length;
130
+ for (; --e >= 0; ) {
131
+ let t = this._destroyers[e];
132
+ try {
133
+ t();
134
+ } catch (s) {
135
+ console.error("销毁函数在同步销毁时出错", this, t, s);
136
+ }
137
+ }
138
+ this._destroyers.length = 0;
139
+ try {
140
+ this.destroyThis();
141
+ } catch (t) {
142
+ console.error("destroyThis 在异步销毁时出错", this, t);
143
+ }
144
+ return i(this), !0;
145
+ }
146
+ destroy() {
147
+ if (!this.canDestroy) return this.isDestroyed;
148
+ let e = this._destroyers.toReversed();
149
+ e.push(this.destroyThis), this._destroyers.length = 0;
150
+ let t = c(e, this, null, (s, r) => {
151
+ console.error("销毁函数在串行销毁时出错", this, r, s);
152
+ });
153
+ return t instanceof Promise ? t.then(() => (i(this), !0)) : (i(this), !0);
154
+ }
155
+ };
156
+ function p() {
157
+ throw "已销毁";
158
+ }
159
+ function i(e) {
160
+ for (var t in e) !(t in y.prototype) && typeof e[t] == "function" && (e[t] = p);
161
+ return e._isDestroyed = !0, !0;
162
+ }
163
+ export {
164
+ i as a
165
+ };
@@ -0,0 +1 @@
1
+ "use strict";const c=require("com-tools");var l=class{listenerMap=new Map;ignoreError=!1;get listenerTotal(){let e=0;for(let t of this.listenerMap.values())e+=t.size;return e}emit(e,...t){let s=this.listenerMap.get(e);if(s){if(this.ignoreError){for(let r of s)try{r.apply(this,t)}catch(n){console.error(n)}return}for(let r of s)r.apply(this,t)}}addListener(e,t,s){if(s?.aborted)return h;let r=this.getAllListeners(e);r.has(t)||(r.add(t),this.onCountChange({name:e,count:r.size,change:1}));let n=()=>{s?.removeEventListener("abort",n),this.removeListener(e,t)};return s?.addEventListener("abort",n,{once:!0}),n}addListenerWithTimes(e,t,s){let r=s?.times??1;if(r<=0)return h;let n=0;function a(...u){t.apply(this,u),++n>=r&&o()}let o=this.addListener(e,a,s?.signal);return o}removeListener(e,t){let s=this.listenerMap.get(e);s?.has(t)&&(s.delete(t),s.size===0&&this.listenerMap.delete(e),this.onCountChange({name:e,count:s.size,change:-1}))}removeAllListeners(...e){let{listenerMap:t}=this;e.length===0&&(e=this.listenerMap.keys());for(let s of e){let r=t.get(s);if(!r)continue;let n=r.size;n&&r.clear(),t.delete(s),this.onCountChange({name:s,count:0,change:-n})}}hasListener(e,t){return this.listenerMap.get(e)?.has(t)===!0}getListenerCount(e){return this.listenerMap.get(e)?.size??0}onCountChange(e){}getAllListeners(e){let t=this.listenerMap.get(e);return t||(t=new Set,this.listenerMap.set(e,t)),t}};function h(){}var d=class extends l{countChangeEvents=new l;onCountChange(t){let s=this.countChangeEvents;s.emit(t.name,t),s.emit("listenerTotal",t)}},y=class extends d{refCount=0;get isDestroyed(){return this._isDestroyed}_isDestroyed=!1;get canDestroy(){return!this.isDestroyed&&this.refCount<=0}_destroyers=[];disposeFun(e){return this._destroyers.push(e),e}cancelDisposeFun(e){let t=this._destroyers.indexOf(e);return this._destroyers.splice(t,1),e}disposeObj(e,t){let s=t?function(){return e.destroySync()}:function(){return e.destroy()};return this.disposeFun(s),e.__destroyable_destroyer=s,e}cancelDisposeObj(e){let t=e.__destroyable_destroyer;return t&&this.cancelDisposeFun(t),e}dispose(e,t){return typeof e=="function"?this.disposeFun(e):this.disposeObj(e,t)}cancelDispose(e){return typeof e=="function"?this.cancelDisposeFun(e):this.cancelDisposeObj(e)}destroyThis(){}destroySync(){if(!this.canDestroy)return this.isDestroyed;let e=this._destroyers.length;for(;--e>=0;){let t=this._destroyers[e];try{t()}catch(s){console.error("销毁函数在同步销毁时出错",this,t,s)}}this._destroyers.length=0;try{this.destroyThis()}catch(t){console.error("destroyThis 在异步销毁时出错",this,t)}return i(this),!0}destroy(){if(!this.canDestroy)return this.isDestroyed;let e=this._destroyers.toReversed();e.push(this.destroyThis),this._destroyers.length=0;let t=c.serialCallAllFuns(e,this,null,(s,r)=>{console.error("销毁函数在串行销毁时出错",this,r,s)});return t instanceof Promise?t.then(()=>(i(this),!0)):(i(this),!0)}};function p(){throw"已销毁"}function i(e){for(var t in e)!(t in y.prototype)&&typeof e[t]=="function"&&(e[t]=p);return e._isDestroyed=!0,!0}exports.a=i;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./Destroyable-BqvuD4gL-Cmk1ocqj.cjs"),a=require("node:events"),d=require("com-tools"),s=require("./createTierModeOptionsPluginHost-DyDtXKNW.cjs");class l extends a.EventEmitter{refCount=0;get isDestroyed(){return this._isDestroyed}_isDestroyed=!1;get canDestroy(){return!this.isDestroyed&&this.refCount<=0}_destroyers=[];disposeFun(t){return this._destroyers.push(t),t}cancelDisposeFun(t){const e=this._destroyers.indexOf(t);return this._destroyers.splice(e,1),t}disposeObj(t,e){const i=e?function(){return t.destroySync()}:function(){return t.destroy()};return this.disposeFun(i),t.__destroyable_destroyer=i,t}cancelDisposeObj(t){const e=t.__destroyable_destroyer;return e&&this.cancelDisposeFun(e),t}dispose(t,e){return typeof t=="function"?this.disposeFun(t):this.disposeObj(t,e)}cancelDispose(t){return typeof t=="function"?this.cancelDisposeFun(t):this.cancelDisposeObj(t)}destroyThis(){}destroySync(){if(!this.canDestroy)return this.isDestroyed;let t=this._destroyers.length;for(;--t>=0;){const e=this._destroyers[t];try{e()}catch(i){console.error("销毁函数在同步销毁时出错",this,e,i)}}this._destroyers.length=0;try{this.destroyThis()}catch(e){console.error("destroyThis 在异步销毁时出错",this,e)}return r.i(this),!0}destroy(){if(!this.canDestroy)return this.isDestroyed;const t=this._destroyers.toReversed();t.push(this.destroyThis),this._destroyers.length=0;const e=d.serialCallAllFuns(t,this,null,(i,u)=>{console.error("销毁函数在串行销毁时出错",this,u,i)});return e instanceof Promise?e.then(()=>(r.i(this),!0)):(r.i(this),!0)}}class o extends l{static isolatedPluginManager=!1;static get pluginManager(){return this.isolatedPluginManager&&!this.hasOwnProperty("_pluginManager")&&(this._pluginManager=new s.PluginExtendManager(this,this._pluginManager)),this._pluginManager}static _pluginManager=new s.PluginExtendManager(this);get pluginManager(){return this.constructor.pluginManager}static usePlugin(t,...e){return this.pluginManager.usePlugin(t,...e)}static useExtend(t){return this.pluginManager.useExtend(t)}static hasUsed(t){return this.pluginManager.hasUsed(t)}usePlugin(t,...e){return this.pluginManager.instUsePlugin(this,t,...e)}useExtend(t,...e){return this.pluginManager.instUseExtend(this,t,...e)}init(...t){return this.pluginManager.onInit(this,...t)}destroyThis(){const t=this.pluginManager.onDestroy(this);return t instanceof Promise?t.finally(()=>super.destroyThis()):super.destroyThis()}}class h extends o{static modeOptions=new s.TierModeOptions(s.commonModeName);get modeOptions(){return this._modeOptions||(this._modeOptions=new s.TierModeOptions(s.commonModeName,void 0,this.constructor.modeOptions))}_modeOptions;get mode(){return this.modeOptions.mode}set mode(t){this.modeOptions.mode=t}get options(){return this.modeOptions.plainFullOption}constructor(t){super(),this.modeOptions.setOption(t)}}class p extends o{static defaultOptions=new s.TierOptions;get defaultOptions(){return this._defaultOptions||(this._defaultOptions=new s.TierOptions(void 0,this.constructor.defaultOptions))}_defaultOptions;constructor(t){super(),this.defaultOptions.option=t}}exports.TierModeOptionsPluginHost=s.TierModeOptionsPluginHost;exports.TierOptionsPluginHost=s.TierOptionsPluginHost;exports.commonModeName=s.commonModeName;exports.createTierModeOptionsPluginHost=s.createTierModeOptionsPluginHost;exports.createTierOptionsPluginHost=s.createTierOptionsPluginHost;exports.PluginHostEventEmitter=o;exports.TierModeOptionsPluginHostEventEmitter=h;exports.TierOptionsPluginHostEventEmitter=p;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./Destroyable-mrBsNabq-IFFuYfKS.cjs"),u=require("com-tools"),a=require("node:events"),s=require("./createTierModeOptionsPluginHost-DyDtXKNW.cjs");var l=class extends a.EventEmitter{refCount=0;get isDestroyed(){return this._isDestroyed}_isDestroyed=!1;get canDestroy(){return!this.isDestroyed&&this.refCount<=0}_destroyers=[];disposeFun(e){return this._destroyers.push(e),e}cancelDisposeFun(e){let t=this._destroyers.indexOf(e);return this._destroyers.splice(t,1),e}disposeObj(e,t){let i=t?function(){return e.destroySync()}:function(){return e.destroy()};return this.disposeFun(i),e.__destroyable_destroyer=i,e}cancelDisposeObj(e){let t=e.__destroyable_destroyer;return t&&this.cancelDisposeFun(t),e}dispose(e,t){return typeof e=="function"?this.disposeFun(e):this.disposeObj(e,t)}cancelDispose(e){return typeof e=="function"?this.cancelDisposeFun(e):this.cancelDisposeObj(e)}destroyThis(){}destroySync(){if(!this.canDestroy)return this.isDestroyed;let e=this._destroyers.length;for(;--e>=0;){let t=this._destroyers[e];try{t()}catch(i){console.error("销毁函数在同步销毁时出错",this,t,i)}}this._destroyers.length=0;try{this.destroyThis()}catch(t){console.error("destroyThis 在异步销毁时出错",this,t)}return n.a(this),!0}destroy(){if(!this.canDestroy)return this.isDestroyed;let e=this._destroyers.toReversed();e.push(this.destroyThis),this._destroyers.length=0;let t=u.serialCallAllFuns(e,this,null,(i,o)=>{console.error("销毁函数在串行销毁时出错",this,o,i)});return t instanceof Promise?t.then(()=>(n.a(this),!0)):(n.a(this),!0)}};class r extends l{static isolatedPluginManager=!1;static get pluginManager(){return this.isolatedPluginManager&&!this.hasOwnProperty("_pluginManager")&&(this._pluginManager=new s.PluginExtendManager(this,this._pluginManager)),this._pluginManager}static _pluginManager=new s.PluginExtendManager(this);get pluginManager(){return this.constructor.pluginManager}static usePlugin(t,...i){return this.pluginManager.usePlugin(t,...i)}static useExtend(t){return this.pluginManager.useExtend(t)}static hasUsed(t){return this.pluginManager.hasUsed(t)}usePlugin(t,...i){return this.pluginManager.instUsePlugin(this,t,...i)}useExtend(t,...i){return this.pluginManager.instUseExtend(this,t,...i)}init(...t){return this.pluginManager.onInit(this,...t)}destroyThis(){const t=this.pluginManager.onDestroy(this);return t instanceof Promise?t.finally(()=>super.destroyThis()):super.destroyThis()}}class d extends r{static modeOptions=new s.TierModeOptions(s.commonModeName);get modeOptions(){return this._modeOptions||(this._modeOptions=new s.TierModeOptions(s.commonModeName,void 0,this.constructor.modeOptions))}_modeOptions;get mode(){return this.modeOptions.mode}set mode(t){this.modeOptions.mode=t}get options(){return this.modeOptions.plainFullOption}constructor(t){super(),this.modeOptions.setOption(t)}}class h extends r{static defaultOptions=new s.TierOptions;get defaultOptions(){return this._defaultOptions||(this._defaultOptions=new s.TierOptions(void 0,this.constructor.defaultOptions))}_defaultOptions;constructor(t){super(),this.defaultOptions.option=t}}exports.TierModeOptionsPluginHost=s.TierModeOptionsPluginHost;exports.TierOptionsPluginHost=s.TierOptionsPluginHost;exports.commonModeName=s.commonModeName;exports.createTierModeOptionsPluginHost=s.createTierModeOptionsPluginHost;exports.createTierOptionsPluginHost=s.createTierOptionsPluginHost;exports.PluginHostEventEmitter=r;exports.TierModeOptionsPluginHostEventEmitter=d;exports.TierOptionsPluginHostEventEmitter=h;
@@ -1,126 +1,75 @@
1
- import { i as n } from "./Destroyable-BqvuD4gL-D50ZO9eN.js";
2
- import { EventEmitter as p } from "node:events";
1
+ import { a as i } from "./Destroyable-mrBsNabq-D6TYs3Zn.js";
3
2
  import { serialCallAllFuns as l } from "com-tools";
4
- import { P as r, T as o, c as u, d as a } from "./createTierModeOptionsPluginHost-D-fKYlcA.js";
5
- import { f as D, g as T, p as E, q as x } from "./createTierModeOptionsPluginHost-D-fKYlcA.js";
6
- class c extends p {
7
- /**
8
- * 引用计数
9
- * @remarks
10
- * 引用计数为 0 时,对象才会被销毁
11
- */
3
+ import { EventEmitter as h } from "node:events";
4
+ import { P as r, T as n, c as o, d as u } from "./createTierModeOptionsPluginHost-D-fKYlcA.js";
5
+ import { f as P, g as D, p as T, q as E } from "./createTierModeOptionsPluginHost-D-fKYlcA.js";
6
+ var p = class extends h {
12
7
  refCount = 0;
13
- /**
14
- * 是否已经销毁
15
- */
16
8
  get isDestroyed() {
17
9
  return this._isDestroyed;
18
10
  }
19
11
  _isDestroyed = !1;
20
- /**
21
- * 是否可以销毁
22
- */
23
12
  get canDestroy() {
24
13
  return !this.isDestroyed && this.refCount <= 0;
25
14
  }
26
- /**
27
- * 销毁者
28
- */
29
15
  _destroyers = [];
30
- /**
31
- * 添加销毁者
32
- * @param fun
33
- * @returns 返回销毁者的顺序
34
- */
35
- disposeFun(t) {
36
- return this._destroyers.push(t), t;
16
+ disposeFun(s) {
17
+ return this._destroyers.push(s), s;
37
18
  }
38
- /**
39
- * 取消销毁者函数
40
- * @param fun
41
- * @returns
42
- */
43
- cancelDisposeFun(t) {
44
- const s = this._destroyers.indexOf(t);
45
- return this._destroyers.splice(s, 1), t;
19
+ cancelDisposeFun(s) {
20
+ let t = this._destroyers.indexOf(s);
21
+ return this._destroyers.splice(t, 1), s;
46
22
  }
47
- /**
48
- * 添加销毁对象
49
- * @param obj
50
- * @param sync - 表示是否使用 `obj.destroySync()` 方法进行销毁;默认使用 `obj.destroy()` 方法进行销毁
51
- * @returns
52
- */
53
- disposeObj(t, s) {
54
- const e = s ? function() {
55
- return t.destroySync();
23
+ disposeObj(s, t) {
24
+ let e = t ? function() {
25
+ return s.destroySync();
56
26
  } : function() {
57
- return t.destroy();
27
+ return s.destroy();
58
28
  };
59
- return this.disposeFun(e), t.__destroyable_destroyer = e, t;
29
+ return this.disposeFun(e), s.__destroyable_destroyer = e, s;
60
30
  }
61
- /**
62
- * 取消销毁者函数
63
- * @param fun
64
- * @returns
65
- */
66
- cancelDisposeObj(t) {
67
- const s = t.__destroyable_destroyer;
68
- return s && this.cancelDisposeFun(s), t;
31
+ cancelDisposeObj(s) {
32
+ let t = s.__destroyable_destroyer;
33
+ return t && this.cancelDisposeFun(t), s;
69
34
  }
70
- dispose(t, s) {
71
- return typeof t == "function" ? this.disposeFun(t) : this.disposeObj(t, s);
35
+ dispose(s, t) {
36
+ return typeof s == "function" ? this.disposeFun(s) : this.disposeObj(s, t);
72
37
  }
73
- cancelDispose(t) {
74
- return typeof t == "function" ? this.cancelDisposeFun(t) : this.cancelDisposeObj(t);
38
+ cancelDispose(s) {
39
+ return typeof s == "function" ? this.cancelDisposeFun(s) : this.cancelDisposeObj(s);
75
40
  }
76
- /**
77
- * 自己的销毁方法
78
- * @remarks
79
- * 子类根据需要进行重载
80
- */
81
41
  destroyThis() {
82
42
  }
83
- /**
84
- * 同步销毁
85
- * @remarks
86
- * 会逆序依次同步调用所有销毁函数,并不会等待上一个销毁函数异步执行完成
87
- */
88
43
  destroySync() {
89
44
  if (!this.canDestroy) return this.isDestroyed;
90
- let t = this._destroyers.length;
91
- for (; --t >= 0; ) {
92
- const s = this._destroyers[t];
45
+ let s = this._destroyers.length;
46
+ for (; --s >= 0; ) {
47
+ let t = this._destroyers[s];
93
48
  try {
94
- s();
49
+ t();
95
50
  } catch (e) {
96
- console.error("销毁函数在同步销毁时出错", this, s, e);
51
+ console.error("销毁函数在同步销毁时出错", this, t, e);
97
52
  }
98
53
  }
99
54
  this._destroyers.length = 0;
100
55
  try {
101
56
  this.destroyThis();
102
- } catch (s) {
103
- console.error("destroyThis 在异步销毁时出错", this, s);
57
+ } catch (t) {
58
+ console.error("destroyThis 在异步销毁时出错", this, t);
104
59
  }
105
- return n(this), !0;
60
+ return i(this), !0;
106
61
  }
107
- /**
108
- * 串行销毁
109
- * @remarks
110
- * 会逆序依次执行销毁,并且只有上一个销毁完成之后才会执行下一个销毁
111
- * @returns 如果所有的销毁函数都是同步的,那么返回 true;如果有任何一个销毁函数是异步的,那么返回一个 Promise 对象
112
- */
113
62
  destroy() {
114
63
  if (!this.canDestroy) return this.isDestroyed;
115
- const t = this._destroyers.toReversed();
116
- t.push(this.destroyThis), this._destroyers.length = 0;
117
- const s = l(t, this, null, (e, h) => {
118
- console.error("销毁函数在串行销毁时出错", this, h, e);
64
+ let s = this._destroyers.toReversed();
65
+ s.push(this.destroyThis), this._destroyers.length = 0;
66
+ let t = l(s, this, null, (e, d) => {
67
+ console.error("销毁函数在串行销毁时出错", this, d, e);
119
68
  });
120
- return s instanceof Promise ? s.then(() => (n(this), !0)) : (n(this), !0);
69
+ return t instanceof Promise ? t.then(() => (i(this), !0)) : (i(this), !0);
121
70
  }
122
- }
123
- class d extends c {
71
+ };
72
+ class a extends p {
124
73
  /**
125
74
  * 是否使用独立的插件管理器
126
75
  * @defaultValue false
@@ -142,8 +91,8 @@ class d extends c {
142
91
  /**
143
92
  * {@inheritDoc PluginExtendManager.usePlugin}
144
93
  */
145
- static usePlugin(t, ...s) {
146
- return this.pluginManager.usePlugin(t, ...s);
94
+ static usePlugin(t, ...e) {
95
+ return this.pluginManager.usePlugin(t, ...e);
147
96
  }
148
97
  /**
149
98
  * {@inheritDoc PluginExtendManager.useExtend}
@@ -176,14 +125,14 @@ class d extends c {
176
125
  * @param args
177
126
  * @returns
178
127
  */
179
- usePlugin(t, ...s) {
180
- return this.pluginManager.instUsePlugin(this, t, ...s);
128
+ usePlugin(t, ...e) {
129
+ return this.pluginManager.instUsePlugin(this, t, ...e);
181
130
  }
182
131
  /**
183
132
  * {@inheritDoc PluginExtendManager.useExtend}
184
133
  */
185
- useExtend(t, ...s) {
186
- return this.pluginManager.instUseExtend(this, t, ...s);
134
+ useExtend(t, ...e) {
135
+ return this.pluginManager.instUseExtend(this, t, ...e);
187
136
  }
188
137
  /**
189
138
  * 初始化实例
@@ -203,16 +152,16 @@ class d extends c {
203
152
  return t instanceof Promise ? t.finally(() => super.destroyThis()) : super.destroyThis();
204
153
  }
205
154
  }
206
- class m extends d {
155
+ class f extends a {
207
156
  /**
208
157
  * 全局级别的默认选项
209
158
  */
210
- static modeOptions = new o(u);
159
+ static modeOptions = new n(o);
211
160
  /**
212
161
  * 实例级的默认选项
213
162
  */
214
163
  get modeOptions() {
215
- return this._modeOptions || (this._modeOptions = new o(u, void 0, this.constructor.modeOptions));
164
+ return this._modeOptions || (this._modeOptions = new n(o, void 0, this.constructor.modeOptions));
216
165
  }
217
166
  _modeOptions;
218
167
  get mode() {
@@ -228,16 +177,16 @@ class m extends d {
228
177
  super(), this.modeOptions.setOption(t);
229
178
  }
230
179
  }
231
- class _ extends d {
180
+ class m extends a {
232
181
  /**
233
182
  * 全局级别的默认选项
234
183
  */
235
- static defaultOptions = new a();
184
+ static defaultOptions = new u();
236
185
  /**
237
186
  * 实例级的默认选项
238
187
  */
239
188
  get defaultOptions() {
240
- return this._defaultOptions || (this._defaultOptions = new a(void 0, this.constructor.defaultOptions));
189
+ return this._defaultOptions || (this._defaultOptions = new u(void 0, this.constructor.defaultOptions));
241
190
  }
242
191
  _defaultOptions;
243
192
  constructor(t) {
@@ -245,12 +194,12 @@ class _ extends d {
245
194
  }
246
195
  }
247
196
  export {
248
- d as PluginHostEventEmitter,
249
- D as TierModeOptionsPluginHost,
250
- m as TierModeOptionsPluginHostEventEmitter,
251
- T as TierOptionsPluginHost,
252
- _ as TierOptionsPluginHostEventEmitter,
253
- u as commonModeName,
254
- E as createTierModeOptionsPluginHost,
255
- x as createTierOptionsPluginHost
197
+ a as PluginHostEventEmitter,
198
+ P as TierModeOptionsPluginHost,
199
+ f as TierModeOptionsPluginHostEventEmitter,
200
+ D as TierOptionsPluginHost,
201
+ m as TierOptionsPluginHostEventEmitter,
202
+ o as commonModeName,
203
+ T as createTierModeOptionsPluginHost,
204
+ E as createTierOptionsPluginHost
256
205
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./Destroyable-BqvuD4gL-Cmk1ocqj.cjs"),c=require("com-tools"),n=require("./createTierModeOptionsPluginHost-DyDtXKNW.cjs");if(!globalThis.CustomEvent){class i extends Event{detail;constructor(e,s){super(e,s),this.detail=s?.detail}}globalThis.CustomEvent=i}class h extends EventTarget{addEventListener(t,e,s){const r=s?.times;if(r){const o=typeof e=="function"?e:e?.handleEvent;if(o)return this.multipleListen(t,o,r)}return super.addEventListener(t,e,s),()=>{this.removeEventListener(t,e,s)}}dispatchEvent(t,e){const s=t instanceof Event?t:new CustomEvent(t,{detail:e,bubbles:!1,cancelable:!0,composed:!1});return super.dispatchEvent(s)}onceListen(t,e,s){return this.addEventListener(t,e,{...s,once:!0})}multipleListen(t,e,s){let r=0;const o=new AbortController,l=o.signal;return super.addEventListener(t,d=>{++r>=s&&o.abort(),e.call(this,d)},{signal:l}),function(){o.abort()}}}class p extends h{refCount=0;get isDestroyed(){return this._isDestroyed}_isDestroyed=!1;get canDestroy(){return!this.isDestroyed&&this.refCount<=0}_destroyers=[];disposeFun(t){return this._destroyers.push(t),t}cancelDisposeFun(t){const e=this._destroyers.indexOf(t);return this._destroyers.splice(e,1),t}disposeObj(t,e){const s=e?function(){return t.destroySync()}:function(){return t.destroy()};return this.disposeFun(s),t.__destroyable_destroyer=s,t}cancelDisposeObj(t){const e=t.__destroyable_destroyer;return e&&this.cancelDisposeFun(e),t}dispose(t,e){return typeof t=="function"?this.disposeFun(t):this.disposeObj(t,e)}cancelDispose(t){return typeof t=="function"?this.cancelDisposeFun(t):this.cancelDisposeObj(t)}destroyThis(){}destroySync(){if(!this.canDestroy)return this.isDestroyed;let t=this._destroyers.length;for(;--t>=0;){const e=this._destroyers[t];try{e()}catch(s){console.error("销毁函数在同步销毁时出错",this,e,s)}}this._destroyers.length=0;try{this.destroyThis()}catch(e){console.error("destroyThis 在异步销毁时出错",this,e)}return u.i(this),!0}destroy(){if(!this.canDestroy)return this.isDestroyed;const t=this._destroyers.toReversed();t.push(this.destroyThis),this._destroyers.length=0;const e=c.serialCallAllFuns(t,this,null,(s,r)=>{console.error("销毁函数在串行销毁时出错",this,r,s)});return e instanceof Promise?e.then(()=>(u.i(this),!0)):(u.i(this),!0)}}class a extends p{static isolatedPluginManager=!1;static get pluginManager(){return this.isolatedPluginManager&&!this.hasOwnProperty("_pluginManager")&&(this._pluginManager=new n.PluginExtendManager(this,this._pluginManager)),this._pluginManager}static _pluginManager=new n.PluginExtendManager(this);get pluginManager(){return this.constructor.pluginManager}static usePlugin(t,...e){return this.pluginManager.usePlugin(t,...e)}static useExtend(t){return this.pluginManager.useExtend(t)}static hasUsed(t){return this.pluginManager.hasUsed(t)}usePlugin(t,...e){return this.pluginManager.instUsePlugin(this,t,...e)}useExtend(t,...e){return this.pluginManager.instUseExtend(this,t,...e)}init(...t){return this.pluginManager.onInit(this,...t)}destroyThis(){const t=this.pluginManager.onDestroy(this);return t instanceof Promise?t.finally(()=>super.destroyThis()):super.destroyThis()}}class g extends a{static modeOptions=new n.TierModeOptions(n.commonModeName);get modeOptions(){return this._modeOptions||(this._modeOptions=new n.TierModeOptions(n.commonModeName,void 0,this.constructor.modeOptions))}_modeOptions;get mode(){return this.modeOptions.mode}set mode(t){this.modeOptions.mode=t}get options(){return this.modeOptions.plainFullOption}constructor(t){super(),this.modeOptions.setOption(t)}}class y extends a{static defaultOptions=new n.TierOptions;get defaultOptions(){return this._defaultOptions||(this._defaultOptions=new n.TierOptions(void 0,this.constructor.defaultOptions))}_defaultOptions;constructor(t){super(),this.defaultOptions.option=t}}exports.TierModeOptionsPluginHost=n.TierModeOptionsPluginHost;exports.TierOptionsPluginHost=n.TierOptionsPluginHost;exports.commonModeName=n.commonModeName;exports.createTierModeOptionsPluginHost=n.createTierModeOptionsPluginHost;exports.createTierOptionsPluginHost=n.createTierOptionsPluginHost;exports.PluginHostEventTarget=a;exports.TierModeOptionsPluginHostEventTarget=g;exports.TierOptionsPluginHostEventTarget=y;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./Destroyable-mrBsNabq-IFFuYfKS.cjs"),c=require("com-tools"),i=require("./createTierModeOptionsPluginHost-DyDtXKNW.cjs");if(!globalThis.CustomEvent){class e extends Event{detail;constructor(s,n){super(s,n),this.detail=n?.detail}}globalThis.CustomEvent=e}class h extends EventTarget{addEventListener(t,s,n){const o=n?.times;if(o){const r=typeof s=="function"?s:s?.handleEvent;if(r)return this.multipleListen(t,r,o)}return super.addEventListener(t,s,n),()=>{this.removeEventListener(t,s,n)}}dispatchEvent(t,s){const n=t instanceof Event?t:new CustomEvent(t,{detail:s,bubbles:!1,cancelable:!0,composed:!1});return super.dispatchEvent(n)}onceListen(t,s,n){return this.addEventListener(t,s,{...n,once:!0})}multipleListen(t,s,n){let o=0;const r=new AbortController,l=r.signal;return super.addEventListener(t,d=>{++o>=n&&r.abort(),s.call(this,d)},{signal:l}),function(){r.abort()}}}var p=class extends h{refCount=0;get isDestroyed(){return this._isDestroyed}_isDestroyed=!1;get canDestroy(){return!this.isDestroyed&&this.refCount<=0}_destroyers=[];disposeFun(e){return this._destroyers.push(e),e}cancelDisposeFun(e){let t=this._destroyers.indexOf(e);return this._destroyers.splice(t,1),e}disposeObj(e,t){let s=t?function(){return e.destroySync()}:function(){return e.destroy()};return this.disposeFun(s),e.__destroyable_destroyer=s,e}cancelDisposeObj(e){let t=e.__destroyable_destroyer;return t&&this.cancelDisposeFun(t),e}dispose(e,t){return typeof e=="function"?this.disposeFun(e):this.disposeObj(e,t)}cancelDispose(e){return typeof e=="function"?this.cancelDisposeFun(e):this.cancelDisposeObj(e)}destroyThis(){}destroySync(){if(!this.canDestroy)return this.isDestroyed;let e=this._destroyers.length;for(;--e>=0;){let t=this._destroyers[e];try{t()}catch(s){console.error("销毁函数在同步销毁时出错",this,t,s)}}this._destroyers.length=0;try{this.destroyThis()}catch(t){console.error("destroyThis 在异步销毁时出错",this,t)}return u.a(this),!0}destroy(){if(!this.canDestroy)return this.isDestroyed;let e=this._destroyers.toReversed();e.push(this.destroyThis),this._destroyers.length=0;let t=c.serialCallAllFuns(e,this,null,(s,n)=>{console.error("销毁函数在串行销毁时出错",this,n,s)});return t instanceof Promise?t.then(()=>(u.a(this),!0)):(u.a(this),!0)}};class a extends p{static isolatedPluginManager=!1;static get pluginManager(){return this.isolatedPluginManager&&!this.hasOwnProperty("_pluginManager")&&(this._pluginManager=new i.PluginExtendManager(this,this._pluginManager)),this._pluginManager}static _pluginManager=new i.PluginExtendManager(this);get pluginManager(){return this.constructor.pluginManager}static usePlugin(t,...s){return this.pluginManager.usePlugin(t,...s)}static useExtend(t){return this.pluginManager.useExtend(t)}static hasUsed(t){return this.pluginManager.hasUsed(t)}usePlugin(t,...s){return this.pluginManager.instUsePlugin(this,t,...s)}useExtend(t,...s){return this.pluginManager.instUseExtend(this,t,...s)}init(...t){return this.pluginManager.onInit(this,...t)}destroyThis(){const t=this.pluginManager.onDestroy(this);return t instanceof Promise?t.finally(()=>super.destroyThis()):super.destroyThis()}}class g extends a{static modeOptions=new i.TierModeOptions(i.commonModeName);get modeOptions(){return this._modeOptions||(this._modeOptions=new i.TierModeOptions(i.commonModeName,void 0,this.constructor.modeOptions))}_modeOptions;get mode(){return this.modeOptions.mode}set mode(t){this.modeOptions.mode=t}get options(){return this.modeOptions.plainFullOption}constructor(t){super(),this.modeOptions.setOption(t)}}class y extends a{static defaultOptions=new i.TierOptions;get defaultOptions(){return this._defaultOptions||(this._defaultOptions=new i.TierOptions(void 0,this.constructor.defaultOptions))}_defaultOptions;constructor(t){super(),this.defaultOptions.option=t}}exports.TierModeOptionsPluginHost=i.TierModeOptionsPluginHost;exports.TierOptionsPluginHost=i.TierOptionsPluginHost;exports.commonModeName=i.commonModeName;exports.createTierModeOptionsPluginHost=i.createTierModeOptionsPluginHost;exports.createTierOptionsPluginHost=i.createTierOptionsPluginHost;exports.PluginHostEventTarget=a;exports.TierModeOptionsPluginHostEventTarget=g;exports.TierOptionsPluginHostEventTarget=y;
package/dist/index-web.js CHANGED
@@ -1,15 +1,15 @@
1
- import { i as o } from "./Destroyable-BqvuD4gL-D50ZO9eN.js";
1
+ import { a as o } from "./Destroyable-mrBsNabq-D6TYs3Zn.js";
2
2
  import { serialCallAllFuns as g } from "com-tools";
3
3
  import { P as a, T as u, c as l, d } from "./createTierModeOptionsPluginHost-D-fKYlcA.js";
4
4
  import { f as P, g as D, p as b, q as x } from "./createTierModeOptionsPluginHost-D-fKYlcA.js";
5
5
  if (!globalThis.CustomEvent) {
6
- class n extends Event {
6
+ class e extends Event {
7
7
  detail;
8
- constructor(s, e) {
9
- super(s, e), this.detail = e?.detail;
8
+ constructor(s, n) {
9
+ super(s, n), this.detail = n?.detail;
10
10
  }
11
11
  }
12
- globalThis.CustomEvent = n;
12
+ globalThis.CustomEvent = e;
13
13
  }
14
14
  class y extends EventTarget {
15
15
  /**
@@ -23,20 +23,20 @@ class y extends EventTarget {
23
23
  * @param options - 选项
24
24
  * @returns 返回用于移除事件监听器的函数; 也可以通过 `EventTarget#removeEventListener` 方法移除
25
25
  */
26
- addEventListener(t, s, e) {
27
- const i = e?.times;
28
- if (i) {
29
- const r = typeof s == "function" ? s : s?.handleEvent;
30
- if (r)
31
- return this.multipleListen(t, r, i);
26
+ addEventListener(t, s, n) {
27
+ const r = n?.times;
28
+ if (r) {
29
+ const i = typeof s == "function" ? s : s?.handleEvent;
30
+ if (i)
31
+ return this.multipleListen(t, i, r);
32
32
  }
33
- return super.addEventListener(t, s, e), () => {
34
- this.removeEventListener(t, s, e);
33
+ return super.addEventListener(t, s, n), () => {
34
+ this.removeEventListener(t, s, n);
35
35
  };
36
36
  }
37
37
  dispatchEvent(t, s) {
38
- const e = t instanceof Event ? t : new CustomEvent(t, { detail: s, bubbles: !1, cancelable: !0, composed: !1 });
39
- return super.dispatchEvent(e);
38
+ const n = t instanceof Event ? t : new CustomEvent(t, { detail: s, bubbles: !1, cancelable: !0, composed: !1 });
39
+ return super.dispatchEvent(n);
40
40
  }
41
41
  /**
42
42
  * 添加一次性的事件监听器;
@@ -49,8 +49,8 @@ class y extends EventTarget {
49
49
  * @param options - 选项
50
50
  * @returns removeEventListener():void; 返回用于移除一次性事件监听器的函数; 也可以通过 EventTarget 的 removeEventListener 方法移除
51
51
  */
52
- onceListen(t, s, e) {
53
- return this.addEventListener(t, s, { ...e, once: !0 });
52
+ onceListen(t, s, n) {
53
+ return this.addEventListener(t, s, { ...n, once: !0 });
54
54
  }
55
55
  /**
56
56
  * 添加监听指定次数的事件监听器;
@@ -63,133 +63,82 @@ class y extends EventTarget {
63
63
  * @param times 需要监听的次数,如果小于 1 ,永远不会自动移除事件监听器,需要手动移除
64
64
  * @returns removeEventListener():void; 返回用于移除事件监听器的函数; 不能通过 EventTarget 的 removeEventListener 方法移除
65
65
  */
66
- multipleListen(t, s, e) {
67
- let i = 0;
68
- const r = new AbortController(), c = r.signal;
69
- return super.addEventListener(t, (p) => {
70
- ++i >= e && r.abort(), s.call(this, p);
71
- }, { signal: c }), function() {
72
- r.abort();
66
+ multipleListen(t, s, n) {
67
+ let r = 0;
68
+ const i = new AbortController(), p = i.signal;
69
+ return super.addEventListener(t, (c) => {
70
+ ++r >= n && i.abort(), s.call(this, c);
71
+ }, { signal: p }), function() {
72
+ i.abort();
73
73
  };
74
74
  }
75
75
  }
76
- class f extends y {
77
- /**
78
- * 引用计数
79
- * @remarks
80
- * 引用计数为 0 时,对象才会被销毁
81
- */
76
+ var f = class extends y {
82
77
  refCount = 0;
83
- /**
84
- * 是否已经销毁
85
- */
86
78
  get isDestroyed() {
87
79
  return this._isDestroyed;
88
80
  }
89
81
  _isDestroyed = !1;
90
- /**
91
- * 是否可以销毁
92
- */
93
82
  get canDestroy() {
94
83
  return !this.isDestroyed && this.refCount <= 0;
95
84
  }
96
- /**
97
- * 销毁者
98
- */
99
85
  _destroyers = [];
100
- /**
101
- * 添加销毁者
102
- * @param fun
103
- * @returns 返回销毁者的顺序
104
- */
105
- disposeFun(t) {
106
- return this._destroyers.push(t), t;
86
+ disposeFun(e) {
87
+ return this._destroyers.push(e), e;
107
88
  }
108
- /**
109
- * 取消销毁者函数
110
- * @param fun
111
- * @returns
112
- */
113
- cancelDisposeFun(t) {
114
- const s = this._destroyers.indexOf(t);
115
- return this._destroyers.splice(s, 1), t;
89
+ cancelDisposeFun(e) {
90
+ let t = this._destroyers.indexOf(e);
91
+ return this._destroyers.splice(t, 1), e;
116
92
  }
117
- /**
118
- * 添加销毁对象
119
- * @param obj
120
- * @param sync - 表示是否使用 `obj.destroySync()` 方法进行销毁;默认使用 `obj.destroy()` 方法进行销毁
121
- * @returns
122
- */
123
- disposeObj(t, s) {
124
- const e = s ? function() {
125
- return t.destroySync();
93
+ disposeObj(e, t) {
94
+ let s = t ? function() {
95
+ return e.destroySync();
126
96
  } : function() {
127
- return t.destroy();
97
+ return e.destroy();
128
98
  };
129
- return this.disposeFun(e), t.__destroyable_destroyer = e, t;
99
+ return this.disposeFun(s), e.__destroyable_destroyer = s, e;
130
100
  }
131
- /**
132
- * 取消销毁者函数
133
- * @param fun
134
- * @returns
135
- */
136
- cancelDisposeObj(t) {
137
- const s = t.__destroyable_destroyer;
138
- return s && this.cancelDisposeFun(s), t;
101
+ cancelDisposeObj(e) {
102
+ let t = e.__destroyable_destroyer;
103
+ return t && this.cancelDisposeFun(t), e;
139
104
  }
140
- dispose(t, s) {
141
- return typeof t == "function" ? this.disposeFun(t) : this.disposeObj(t, s);
105
+ dispose(e, t) {
106
+ return typeof e == "function" ? this.disposeFun(e) : this.disposeObj(e, t);
142
107
  }
143
- cancelDispose(t) {
144
- return typeof t == "function" ? this.cancelDisposeFun(t) : this.cancelDisposeObj(t);
108
+ cancelDispose(e) {
109
+ return typeof e == "function" ? this.cancelDisposeFun(e) : this.cancelDisposeObj(e);
145
110
  }
146
- /**
147
- * 自己的销毁方法
148
- * @remarks
149
- * 子类根据需要进行重载
150
- */
151
111
  destroyThis() {
152
112
  }
153
- /**
154
- * 同步销毁
155
- * @remarks
156
- * 会逆序依次同步调用所有销毁函数,并不会等待上一个销毁函数异步执行完成
157
- */
158
113
  destroySync() {
159
114
  if (!this.canDestroy) return this.isDestroyed;
160
- let t = this._destroyers.length;
161
- for (; --t >= 0; ) {
162
- const s = this._destroyers[t];
115
+ let e = this._destroyers.length;
116
+ for (; --e >= 0; ) {
117
+ let t = this._destroyers[e];
163
118
  try {
164
- s();
165
- } catch (e) {
166
- console.error("销毁函数在同步销毁时出错", this, s, e);
119
+ t();
120
+ } catch (s) {
121
+ console.error("销毁函数在同步销毁时出错", this, t, s);
167
122
  }
168
123
  }
169
124
  this._destroyers.length = 0;
170
125
  try {
171
126
  this.destroyThis();
172
- } catch (s) {
173
- console.error("destroyThis 在异步销毁时出错", this, s);
127
+ } catch (t) {
128
+ console.error("destroyThis 在异步销毁时出错", this, t);
174
129
  }
175
130
  return o(this), !0;
176
131
  }
177
- /**
178
- * 串行销毁
179
- * @remarks
180
- * 会逆序依次执行销毁,并且只有上一个销毁完成之后才会执行下一个销毁
181
- * @returns 如果所有的销毁函数都是同步的,那么返回 true;如果有任何一个销毁函数是异步的,那么返回一个 Promise 对象
182
- */
183
132
  destroy() {
184
133
  if (!this.canDestroy) return this.isDestroyed;
185
- const t = this._destroyers.toReversed();
186
- t.push(this.destroyThis), this._destroyers.length = 0;
187
- const s = g(t, this, null, (e, i) => {
188
- console.error("销毁函数在串行销毁时出错", this, i, e);
134
+ let e = this._destroyers.toReversed();
135
+ e.push(this.destroyThis), this._destroyers.length = 0;
136
+ let t = g(e, this, null, (s, n) => {
137
+ console.error("销毁函数在串行销毁时出错", this, n, s);
189
138
  });
190
- return s instanceof Promise ? s.then(() => (o(this), !0)) : (o(this), !0);
139
+ return t instanceof Promise ? t.then(() => (o(this), !0)) : (o(this), !0);
191
140
  }
192
- }
141
+ };
193
142
  class h extends f {
194
143
  /**
195
144
  * 是否使用独立的插件管理器
@@ -298,7 +247,7 @@ class M extends h {
298
247
  super(), this.modeOptions.setOption(t);
299
248
  }
300
249
  }
301
- class E extends h {
250
+ class v extends h {
302
251
  /**
303
252
  * 全局级别的默认选项
304
253
  */
@@ -319,7 +268,7 @@ export {
319
268
  P as TierModeOptionsPluginHost,
320
269
  M as TierModeOptionsPluginHostEventTarget,
321
270
  D as TierOptionsPluginHost,
322
- E as TierOptionsPluginHostEventTarget,
271
+ v as TierOptionsPluginHostEventTarget,
323
272
  l as commonModeName,
324
273
  b as createTierModeOptionsPluginHost,
325
274
  x as createTierOptionsPluginHost
@@ -1,6 +1,6 @@
1
1
  import type { AbstractConstructor, ClassType } from "type-tls";
2
2
  import { TierModeOptions } from "../../options-manager/TierModeOptions";
3
- import { PluginHost } from "../../../plugin-host/PluginHost";
3
+ import { PluginHost, type EventMap } from "../../../plugin-host/PluginHost";
4
4
  /**
5
5
  * 层级模式选项插件的宿主
6
6
  * @remarks
@@ -10,7 +10,7 @@ import { PluginHost } from "../../../plugin-host/PluginHost";
10
10
  * 之所以没写在该类中的函数中,是因为 `this.pluginManager.created(this)` 通常会在构建函数执行的最后时才调用;
11
11
  * 如果像下面写在该类的构建函数中,然后子类通过 `super()` 来调用,这样就会导致 `this.pluginManager.created(this)` 不是在最后的执行;
12
12
  */
13
- export declare class TierModeOptionsPluginHost<Host, HostClass extends AbstractConstructor<Host> = ClassType<Host>, Options extends {} = any, Mode extends string | number = string> extends PluginHost<Host, HostClass> {
13
+ export declare class TierModeOptionsPluginHost<Host, HostClass extends AbstractConstructor<Host> = ClassType<Host>, Options extends {} = any, Mode extends string | number = string, EM extends EventMap = any> extends PluginHost<Host, HostClass, EM> {
14
14
  /**
15
15
  * 全局级别的默认选项
16
16
  */
@@ -1 +1 @@
1
- {"version":3,"file":"TierModeOptionsPluginHost.d.ts","sourceRoot":"","sources":["../../../../src/options/options-plugin-host/tier-mode-options/TierModeOptionsPluginHost.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAC,SAAS,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAK7D;;;;;;;;GAQG;AACH,qBAAa,yBAAyB,CAAC,IAAI,EAAC,SAAS,SAAS,mBAAmB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,EAAC,OAAO,SAAS,EAAE,GAAG,GAAG,EAAE,IAAI,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,CAAG,SAAQ,UAAU,CAAC,IAAI,EAAC,SAAS,CAAC;IAC5M;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,WAAW,+BAAoD;IAE/E;;OAEG;IACH,IAAI,WAAW,mCAEd;IACD,SAAS,CAAC,YAAY,EAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAExD,IAAI,IAAI,SAEP;IACD,IAAI,IAAI,CAAC,KAAK,MAAA,EAEb;IAED,IAAI,OAAO,YAEV;gBAGW,OAAO,EAAE,OAAO;CAI7B"}
1
+ {"version":3,"file":"TierModeOptionsPluginHost.d.ts","sourceRoot":"","sources":["../../../../src/options/options-plugin-host/tier-mode-options/TierModeOptionsPluginHost.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAC,SAAS,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAK5E;;;;;;;;GAQG;AACH,qBAAa,yBAAyB,CAAC,IAAI,EAAC,SAAS,SAAS,mBAAmB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,EAAC,OAAO,SAAS,EAAE,GAAG,GAAG,EAAE,IAAI,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAAC,EAAE,SAAS,QAAQ,GAAG,GAAG,CAAG,SAAQ,UAAU,CAAC,IAAI,EAAC,SAAS,EAAC,EAAE,CAAC;IACzO;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,WAAW,+BAAoD;IAE/E;;OAEG;IACH,IAAI,WAAW,mCAEd;IACD,SAAS,CAAC,YAAY,EAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAExD,IAAI,IAAI,SAEP;IACD,IAAI,IAAI,CAAC,KAAK,MAAA,EAEb;IAED,IAAI,OAAO,YAEV;gBAGW,OAAO,EAAE,OAAO;CAI7B"}
@@ -17,7 +17,7 @@ export declare function createTierModeOptionsPluginHost<P extends new (...args:
17
17
  get mode(): Mode;
18
18
  set mode(value: Mode);
19
19
  get options(): Options;
20
- get pluginManager(): import("../../..").PluginExtendManager<Host, HostClass>;
20
+ get pluginManager(): import("../../..").PluginExtendManager<Host, HostClass, any>;
21
21
  usePlugin<P_1 extends import("../../..").AnyIPlugin<Host, HostClass>>(plugin: P_1, ...args: import("../../..").PluginUseArgs<P_1>): ReturnType<P_1["onUse"]>;
22
22
  useExtend<E extends import("../../..").AnyIExtend<HostClass>>(ext: import("../../..").ExtendOptions<HostClass, E>, ...args: ConstructorParameters<HostClass>): E;
23
23
  init(...args: any): any;
@@ -52,8 +52,8 @@ export declare function createTierModeOptionsPluginHost<P extends new (...args:
52
52
  */
53
53
  readonly modeOptions: TierModeOptions<string, Options>;
54
54
  isolatedPluginManager: boolean;
55
- get pluginManager(): import("../../..").PluginExtendManager<any, any>;
56
- _pluginManager: import("../../..").PluginExtendManager<any, any>;
55
+ get pluginManager(): import("../../..").PluginExtendManager<any, any, any>;
56
+ _pluginManager: import("../../..").PluginExtendManager<any, any, any>;
57
57
  usePlugin<HostClass extends AbstractConstructor, Plugin extends import("../../..").AnyIPlugin<InstanceType<HostClass>, HostClass>>(this: HostClass, plugin: Plugin, ...args: import("../../..").PluginUseArgs<Plugin>): any;
58
58
  useExtend<HostClass extends AbstractConstructor, E extends import("../../..").AnyIExtend<HostClass>>(this: HostClass, ext: import("../../..").ExtendOptions<HostClass, E>): E;
59
59
  hasUsed(plugin: any): boolean;
@@ -1,5 +1,5 @@
1
1
  import { TierOptions } from "../../options-manager/index";
2
- import { PluginHost } from "../../../plugin-host/PluginHost";
2
+ import { PluginHost, type EventMap } from "../../../plugin-host/PluginHost";
3
3
  import type { AbstractConstructor, ClassType } from "type-tls";
4
4
  /**
5
5
  * 层级选项插件的宿主
@@ -10,7 +10,7 @@ import type { AbstractConstructor, ClassType } from "type-tls";
10
10
  * 之所以没写在该类中的函数中,是因为 `this.pluginManager.created(this)` 通常会在构建函数执行的最后时才调用;
11
11
  * 如果像下面写在该类的构建函数中,然后子类通过 `super()` 来调用,这样就会导致 `this.pluginManager.created(this)` 不是在最后的执行;
12
12
  */
13
- export declare class TierOptionsPluginHost<Host, HostClass extends AbstractConstructor<Host> = ClassType<Host>, Options extends {} = any> extends PluginHost<Host, HostClass> {
13
+ export declare class TierOptionsPluginHost<Host, HostClass extends AbstractConstructor<Host> = ClassType<Host>, Options extends {} = any, EM extends EventMap = any> extends PluginHost<Host, HostClass, EM> {
14
14
  /**
15
15
  * 全局级别的默认选项
16
16
  */
@@ -1 +1 @@
1
- {"version":3,"file":"TierOptionsPluginHost.d.ts","sourceRoot":"","sources":["../../../../src/options/options-plugin-host/tier-options/TierOptionsPluginHost.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAC,SAAS,EAAE,MAAM,UAAU,CAAC;AAO9D;;;;;;;;GAQG;AACH,qBAAa,qBAAqB,CAAC,IAAI,EAAE,SAAS,SAAS,mBAAmB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,SAAS,EAAE,GAAG,GAAG,CAAE,SAAQ,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC;IACnK;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,cAAc,mBAA0B;IAGxD;;OAEG;IACH,IAAI,cAAc,yBAEjB;IACD,SAAS,CAAC,eAAe,EAAG,WAAW,CAAC,OAAO,CAAC,CAAC;gBAErC,OAAO,EAAE,OAAO;CAI7B"}
1
+ {"version":3,"file":"TierOptionsPluginHost.d.ts","sourceRoot":"","sources":["../../../../src/options/options-plugin-host/tier-options/TierOptionsPluginHost.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,KAAK,EAAE,mBAAmB,EAAC,SAAS,EAAE,MAAM,UAAU,CAAC;AAO9D;;;;;;;;GAQG;AACH,qBAAa,qBAAqB,CAAC,IAAI,EAAE,SAAS,SAAS,mBAAmB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,SAAS,EAAE,GAAG,GAAG,EAAC,EAAE,SAAS,QAAQ,GAAG,GAAG,CAAE,SAAQ,UAAU,CAAC,IAAI,EAAE,SAAS,EAAC,EAAE,CAAC;IAChM;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,cAAc,mBAA0B;IAGxD;;OAEG;IACH,IAAI,cAAc,yBAEjB;IACD,SAAS,CAAC,eAAe,EAAG,WAAW,CAAC,OAAO,CAAC,CAAC;gBAErC,OAAO,EAAE,OAAO;CAI7B"}
@@ -14,7 +14,7 @@ export declare function createTierOptionsPluginHost<P extends new (...args: any)
14
14
  */
15
15
  get defaultOptions(): TierOptions<Options>;
16
16
  _defaultOptions: TierOptions<Options>;
17
- get pluginManager(): import("../../..").PluginExtendManager<Host, HostClass>;
17
+ get pluginManager(): import("../../..").PluginExtendManager<Host, HostClass, any>;
18
18
  usePlugin<P_1 extends import("../../..").AnyIPlugin<Host, HostClass>>(plugin: P_1, ...args: import("../../..").PluginUseArgs<P_1>): ReturnType<P_1["onUse"]>;
19
19
  useExtend<E extends import("../../..").AnyIExtend<HostClass>>(ext: import("../../..").ExtendOptions<HostClass, E>, ...args: ConstructorParameters<HostClass>): E;
20
20
  init(...args: any): any;
@@ -49,8 +49,8 @@ export declare function createTierOptionsPluginHost<P extends new (...args: any)
49
49
  */
50
50
  readonly defaultOptions: TierOptions<Options>;
51
51
  isolatedPluginManager: boolean;
52
- get pluginManager(): import("../../..").PluginExtendManager<any, any>;
53
- _pluginManager: import("../../..").PluginExtendManager<any, any>;
52
+ get pluginManager(): import("../../..").PluginExtendManager<any, any, any>;
53
+ _pluginManager: import("../../..").PluginExtendManager<any, any, any>;
54
54
  usePlugin<HostClass extends AbstractConstructor, Plugin extends import("../../..").AnyIPlugin<InstanceType<HostClass>, HostClass>>(this: HostClass, plugin: Plugin, ...args: import("../../..").PluginUseArgs<Plugin>): any;
55
55
  useExtend<HostClass extends AbstractConstructor, E extends import("../../..").AnyIExtend<HostClass>>(this: HostClass, ext: import("../../..").ExtendOptions<HostClass, E>): E;
56
56
  hasUsed(plugin: any): boolean;
@@ -1,6 +1,8 @@
1
1
  import { PluginExtendManager } from "../plugin-manager";
2
2
  import type { ExtendOptions, AnyIExtend, AnyIPlugin, PluginUseArgs, PluginUseReturn } from "../plugin-manager/index";
3
3
  import { Destroyable } from "@gby/destroyable";
4
+ import type { EventMap } from "@gby/destroyable";
5
+ export type { EventMap };
4
6
  import type { IPluginHost } from "./type";
5
7
  import type { AbstractConstructor, ClassType } from "type-tls";
6
8
  /**
@@ -28,7 +30,7 @@ import type { AbstractConstructor, ClassType } from "type-tls";
28
30
  * 1. 子类可以通过继承来实现自定义的 Host
29
31
  * 2. 子类可以通过继承来实现自定义的 HostClass
30
32
  */
31
- export declare class PluginHost<Host, HostClass extends AbstractConstructor<Host> = ClassType<Host>> extends Destroyable implements IPluginHost<Host, HostClass> {
33
+ export declare class PluginHost<Host, HostClass extends AbstractConstructor<Host> = ClassType<Host>, EM extends EventMap = any> extends Destroyable<EM> implements IPluginHost<Host, HostClass> {
32
34
  /**
33
35
  * 是否使用独立的插件管理器
34
36
  * @defaultValue false
@@ -37,8 +39,8 @@ export declare class PluginHost<Host, HostClass extends AbstractConstructor<Host
37
39
  /**
38
40
  * 插件管理器
39
41
  */
40
- static get pluginManager(): PluginExtendManager<any, any>;
41
- static _pluginManager: PluginExtendManager<any, any>;
42
+ static get pluginManager(): PluginExtendManager<any, any, any>;
43
+ static _pluginManager: PluginExtendManager<any, any, any>;
42
44
  /**
43
45
  * 插件管理器 {@link PluginHost.pluginManager}
44
46
  */
@@ -1 +1 @@
1
- {"version":3,"file":"PluginHost.d.ts","sourceRoot":"","sources":["../../src/plugin-host/PluginHost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAC,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEpH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG/D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,UAAU,CAAC,IAAI,EAAC,SAAS,SAAS,mBAAmB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAE,SAAQ,WAAY,YAAW,WAAW,CAAC,IAAI,EAAC,SAAS,CAAC;IACpJ;;;OAGG;IACH,MAAM,CAAC,qBAAqB,UAAS;IAErC;;OAEG;IACH,MAAM,KAAK,aAAa,kCAKvB;IACD,MAAM,CAAC,cAAc,gCAA0C;IAE/D;;OAEG;IACH,IAAI,aAAa,IAAI,mBAAmB,CAAC,IAAI,EAAC,SAAS,CAAC,CAEvD;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,SAAS,SAAS,mBAAmB,EAAC,MAAM,SAAS,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,EAAC,SAAS,CAAC,EAAE,IAAI,EAAC,SAAS,EAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC;IAIlL;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,SAAS,SAAS,mBAAmB,EAAC,CAAC,SAAS,UAAU,CAAC,SAAS,CAAC,EAAE,IAAI,EAAC,SAAS,EAAC,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,GAAE,CAAC;IAI1I;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,GAAE,OAAO;IAMnC;;;;;OAKG;IAOH;;;;;OAKG;IACH,SAAS,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,EAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAIzG;;OAEG;IACH,SAAS,CAAC,CAAC,SAAS,UAAU,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,EAAC,GAAG,IAAI,EAAC,qBAAqB,CAAC,SAAS,CAAC,GAAE,CAAC;IAKvH;;;;;OAKG;IACH,IAAI,CAAC,GAAG,IAAI,EAAC,GAAG,GAAE,GAAG;IAIrB;;;OAGG;IACM,WAAW;CAQrB"}
1
+ {"version":3,"file":"PluginHost.d.ts","sourceRoot":"","sources":["../../src/plugin-host/PluginHost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAC,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEpH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,QAAQ,EAAC,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG/D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,UAAU,CAAC,IAAI,EAAC,SAAS,SAAS,mBAAmB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,QAAQ,GAAG,GAAG,CAAE,SAAQ,WAAW,CAAC,EAAE,CAAE,YAAW,WAAW,CAAC,IAAI,EAAC,SAAS,CAAC;IACnL;;;OAGG;IACH,MAAM,CAAC,qBAAqB,UAAS;IAErC;;OAEG;IACH,MAAM,KAAK,aAAa,uCAKvB;IACD,MAAM,CAAC,cAAc,qCAA0C;IAE/D;;OAEG;IACH,IAAI,aAAa,IAAI,mBAAmB,CAAC,IAAI,EAAC,SAAS,CAAC,CAEvD;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,SAAS,SAAS,mBAAmB,EAAC,MAAM,SAAS,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,EAAC,SAAS,CAAC,EAAE,IAAI,EAAC,SAAS,EAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC;IAIlL;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,SAAS,SAAS,mBAAmB,EAAC,CAAC,SAAS,UAAU,CAAC,SAAS,CAAC,EAAE,IAAI,EAAC,SAAS,EAAC,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,GAAE,CAAC;IAI1I;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,GAAE,OAAO;IAMnC;;;;;OAKG;IAOH;;;;;OAKG;IACH,SAAS,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,EAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAIzG;;OAEG;IACH,SAAS,CAAC,CAAC,SAAS,UAAU,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,EAAC,GAAG,IAAI,EAAC,qBAAqB,CAAC,SAAS,CAAC,GAAE,CAAC;IAKvH;;;;;OAKG;IACH,IAAI,CAAC,GAAG,IAAI,EAAC,GAAG,GAAE,GAAG;IAIrB;;;OAGG;IACM,WAAW;CAQrB"}
@@ -25,8 +25,8 @@ export declare class PluginHostEventEmitter<Host, HostClass extends AbstractCons
25
25
  /**
26
26
  * 插件管理器
27
27
  */
28
- static get pluginManager(): PluginExtendManager<any, any>;
29
- static _pluginManager: PluginExtendManager<any, any>;
28
+ static get pluginManager(): PluginExtendManager<any, any, any>;
29
+ static _pluginManager: PluginExtendManager<any, any, any>;
30
30
  /**
31
31
  * 插件管理器 {@link PluginHost.pluginManager}
32
32
  */
@@ -1 +1 @@
1
- {"version":3,"file":"PluginHostEventEmitter.d.ts","sourceRoot":"","sources":["../../src/plugin-host/PluginHostEventEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAErH,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE/D,YAAY,EAAE,QAAQ,EAAC,CAAA;AAGvB;;;;;;;;;;GAUG;AACH,qBAAa,sBAAsB,CAAC,IAAI,EAAE,SAAS,SAAS,mBAAmB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAE,SAAQ,uBAAuB,CAAC,EAAE,CAAE,YAAW,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC;IACjN;;;OAGG;IACH,MAAM,CAAC,qBAAqB,UAAS;IAErC;;OAEG;IACH,MAAM,KAAK,aAAa,kCAKvB;IACD,MAAM,CAAC,cAAc,gCAA0C;IAE/D;;OAEG;IACH,IAAI,aAAa,IAAI,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,CAExD;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,SAAS,SAAS,mBAAmB,EAAC,MAAM,SAAS,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,EAAC,SAAS,CAAC,EAAE,IAAI,EAAC,SAAS,EAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC;IAIlL;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,SAAS,SAAS,mBAAmB,EAAC,CAAC,SAAS,UAAU,CAAC,SAAS,CAAC,EAAE,IAAI,EAAC,SAAS,EAAC,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,GAAE,CAAC;IAI1I;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,GAAE,OAAO;IAKnC;;;;;OAKG;IAOH;;;;;OAKG;IACH,SAAS,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAI1G;;OAEG;IACH,SAAS,CAAC,CAAC,SAAS,UAAU,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,EAAC,GAAG,IAAI,EAAC,qBAAqB,CAAC,SAAS,CAAC,GAAE,CAAC;IAKvH;;;;;OAKG;IACH,IAAI,CAAC,GAAG,IAAI,EAAC,GAAG,GAAG,GAAG;IAItB;;;OAGG;IACM,WAAW;CAQrB"}
1
+ {"version":3,"file":"PluginHostEventEmitter.d.ts","sourceRoot":"","sources":["../../src/plugin-host/PluginHostEventEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAErH,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE/D,YAAY,EAAE,QAAQ,EAAC,CAAA;AAGvB;;;;;;;;;;GAUG;AACH,qBAAa,sBAAsB,CAAC,IAAI,EAAE,SAAS,SAAS,mBAAmB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAE,SAAQ,uBAAuB,CAAC,EAAE,CAAE,YAAW,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC;IACjN;;;OAGG;IACH,MAAM,CAAC,qBAAqB,UAAS;IAErC;;OAEG;IACH,MAAM,KAAK,aAAa,uCAKvB;IACD,MAAM,CAAC,cAAc,qCAA0C;IAE/D;;OAEG;IACH,IAAI,aAAa,IAAI,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,CAExD;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,SAAS,SAAS,mBAAmB,EAAC,MAAM,SAAS,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,EAAC,SAAS,CAAC,EAAE,IAAI,EAAC,SAAS,EAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC;IAIlL;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,SAAS,SAAS,mBAAmB,EAAC,CAAC,SAAS,UAAU,CAAC,SAAS,CAAC,EAAE,IAAI,EAAC,SAAS,EAAC,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,GAAE,CAAC;IAI1I;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,GAAE,OAAO;IAKnC;;;;;OAKG;IAOH;;;;;OAKG;IACH,SAAS,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAI1G;;OAEG;IACH,SAAS,CAAC,CAAC,SAAS,UAAU,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,EAAC,GAAG,IAAI,EAAC,qBAAqB,CAAC,SAAS,CAAC,GAAE,CAAC;IAKvH;;;;;OAKG;IACH,IAAI,CAAC,GAAG,IAAI,EAAC,GAAG,GAAG,GAAG;IAItB;;;OAGG;IACM,WAAW;CAQrB"}
@@ -23,8 +23,8 @@ export declare class PluginHostEventTarget<Host, HostClass extends AbstractConst
23
23
  /**
24
24
  * 插件管理器
25
25
  */
26
- static get pluginManager(): PluginExtendManager<any, any>;
27
- static _pluginManager: PluginExtendManager<any, any>;
26
+ static get pluginManager(): PluginExtendManager<any, any, any>;
27
+ static _pluginManager: PluginExtendManager<any, any, any>;
28
28
  /**
29
29
  * 插件管理器 {@link PluginHost.pluginManager}
30
30
  */
@@ -1 +1 @@
1
- {"version":3,"file":"PluginHostEventTarget.d.ts","sourceRoot":"","sources":["../../src/plugin-host/PluginHostEventTarget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAErH,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAK/D;;;;;;;;;;GAUG;AACH,qBAAa,qBAAqB,CAAC,IAAI,EAAE,SAAS,SAAS,mBAAmB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAE,SAAQ,sBAAsB,CAAC,EAAE,CAAE,YAAW,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC;IACtO;;;OAGG;IACH,MAAM,CAAC,qBAAqB,UAAS;IAErC;;OAEG;IACH,MAAM,KAAK,aAAa,kCAKvB;IACD,MAAM,CAAC,cAAc,gCAA0C;IAE/D;;OAEG;IACH,IAAI,aAAa,IAAI,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,CAExD;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,SAAS,SAAS,mBAAmB,EAAC,MAAM,SAAS,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,EAAC,SAAS,CAAC,EAAE,IAAI,EAAC,SAAS,EAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC;IAIlL;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,SAAS,SAAS,mBAAmB,EAAC,CAAC,SAAS,UAAU,CAAC,SAAS,CAAC,EAAE,IAAI,EAAC,SAAS,EAAC,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,GAAE,CAAC;IAK1I;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,GAAE,OAAO;IAKnC;;;;;OAKG;IAOH;;;;;OAKG;IACH,SAAS,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAI1G;;OAEG;IACH,SAAS,CAAC,CAAC,SAAS,UAAU,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,EAAC,GAAG,IAAI,EAAC,qBAAqB,CAAC,SAAS,CAAC,GAAE,CAAC;IAKvH;;;;;OAKG;IACH,IAAI,CAAC,GAAG,IAAI,EAAC,GAAG,GAAG,GAAG;IAItB;;;OAGG;IACM,WAAW;CAQrB"}
1
+ {"version":3,"file":"PluginHostEventTarget.d.ts","sourceRoot":"","sources":["../../src/plugin-host/PluginHostEventTarget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAErH,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAK/D;;;;;;;;;;GAUG;AACH,qBAAa,qBAAqB,CAAC,IAAI,EAAE,SAAS,SAAS,mBAAmB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAE,SAAQ,sBAAsB,CAAC,EAAE,CAAE,YAAW,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC;IACtO;;;OAGG;IACH,MAAM,CAAC,qBAAqB,UAAS;IAErC;;OAEG;IACH,MAAM,KAAK,aAAa,uCAKvB;IACD,MAAM,CAAC,cAAc,qCAA0C;IAE/D;;OAEG;IACH,IAAI,aAAa,IAAI,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,CAExD;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,SAAS,SAAS,mBAAmB,EAAC,MAAM,SAAS,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,EAAC,SAAS,CAAC,EAAE,IAAI,EAAC,SAAS,EAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC;IAIlL;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,SAAS,SAAS,mBAAmB,EAAC,CAAC,SAAS,UAAU,CAAC,SAAS,CAAC,EAAE,IAAI,EAAC,SAAS,EAAC,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,GAAE,CAAC;IAK1I;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,GAAE,OAAO;IAKnC;;;;;OAKG;IAOH;;;;;OAKG;IACH,SAAS,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAI1G;;OAEG;IACH,SAAS,CAAC,CAAC,SAAS,UAAU,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,EAAC,GAAG,IAAI,EAAC,qBAAqB,CAAC,SAAS,CAAC,GAAE,CAAC;IAKvH;;;;;OAKG;IACH,IAAI,CAAC,GAAG,IAAI,EAAC,GAAG,GAAG,GAAG;IAItB;;;OAGG;IACM,WAAW;CAQrB"}
@@ -81,8 +81,8 @@ export declare function createPluginHost<P extends new (...args: any) => Object>
81
81
  /**
82
82
  * 插件管理器
83
83
  */
84
- get pluginManager(): PluginExtendManager<any, any>;
85
- _pluginManager: PluginExtendManager<any, any>;
84
+ get pluginManager(): PluginExtendManager<any, any, any>;
85
+ _pluginManager: PluginExtendManager<any, any, any>;
86
86
  /**
87
87
  * {@inheritDoc PluginExtendManager.usePlugin}
88
88
  */
@@ -102,7 +102,7 @@ export declare function becomePluginHost_Extends<HostClass extends Constructor>(
102
102
  * @returns
103
103
  */
104
104
  destroy(): any;
105
- }, /*elided*/ any & HostClass>;
105
+ }, /*elided*/ any & HostClass, any>;
106
106
  _pluginManager: PluginExtendManager<{
107
107
  [x: string]: any;
108
108
  /**
@@ -132,7 +132,7 @@ export declare function becomePluginHost_Extends<HostClass extends Constructor>(
132
132
  * @returns
133
133
  */
134
134
  destroy(): any;
135
- }, /*elided*/ any & HostClass>;
135
+ }, /*elided*/ any & HostClass, any>;
136
136
  /**
137
137
  * {@inheritDoc PluginExtendManager.usePlugin}
138
138
  */
@@ -1,5 +1,5 @@
1
1
  import type { AbstractConstructor } from "type-tls";
2
- import { Destroyable } from "@gby/destroyable";
2
+ import { Destroyable, type EventMap } from "@gby/destroyable";
3
3
  import type { IExtend, AnyIExtend } from "./IExtend";
4
4
  import type { ExtendOptions } from "./extend";
5
5
  import type { AsyncableArray } from "./type";
@@ -11,14 +11,14 @@ import type { AsyncableArray } from "./type";
11
11
  * 支持插件的级联(通过 parent):当子类创建了子类插件管理者时,为了能让父类插件管理者的插件生效,需要将父类插件管理者设置为其 parent
12
12
  *
13
13
  */
14
- export declare class ExtendManager<HostClass extends AbstractConstructor> extends Destroyable {
14
+ export declare class ExtendManager<HostClass extends AbstractConstructor, EM extends EventMap = any> extends Destroyable<EM> {
15
15
  /**
16
16
  * 父级插件管理者
17
17
  *
18
18
  * @remarks
19
19
  * 当子类创建了子类插件管理者时,为了能让父类插件管理者的插件生效,需要将父类插件管理者设置为其 parent
20
20
  */
21
- parent?: ExtendManager<HostClass> | null;
21
+ parent?: ExtendManager<any> | null;
22
22
  /**
23
23
  * 插件的宿主
24
24
  */
@@ -31,7 +31,7 @@ export declare class ExtendManager<HostClass extends AbstractConstructor> extend
31
31
  * @param host - 插件的宿主
32
32
  * @param parent - 父级插件管理者
33
33
  */
34
- constructor(host?: HostClass, parent?: ExtendManager<HostClass> | null);
34
+ constructor(host?: HostClass, parent?: ExtendManager<any> | null);
35
35
  destroyThis(): any;
36
36
  /**
37
37
  * 是否注册了插件
@@ -1 +1 @@
1
- {"version":3,"file":"ExtendManager.d.ts","sourceRoot":"","sources":["../../src/plugin-manager/ExtendManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAE7C;;;;;;;GAOG;AACH,qBAAa,aAAa,CAAC,SAAS,SAAS,mBAAmB,CAAE,SAAQ,WAAW;IAEjF;;;;;OAKG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IAEzC;;OAEG;IACH,IAAI,EAAG,SAAS,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,OAAO,0BAAiC;IAIjD;;;OAGG;gBACS,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,GAAG,IAAI;IAQ7D,WAAW;IAMpB;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO;IAI7B;;;;OAIG;IACH,GAAG,CAAC,CAAC,SAAS,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC;IAO5E;;;;;;OAMG;IACH,OAAO,CAAC,CAAC,SAAS,UAAU,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC,GAAG,CAAC;IAO9J;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC,GAAG,cAAc;IActG;;;;;;;OAOG;IACH,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,GAAE,cAAc;IAatE;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,SAAS,CAAC,GAAE,cAAc;CAe9D"}
1
+ {"version":3,"file":"ExtendManager.d.ts","sourceRoot":"","sources":["../../src/plugin-manager/ExtendManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG9D,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAE7C;;;;;;;GAOG;AACH,qBAAa,aAAa,CAAC,SAAS,SAAS,mBAAmB,EAAC,EAAE,SAAS,QAAQ,GAAG,GAAG,CAAE,SAAQ,WAAW,CAAC,EAAE,CAAC;IAE/G;;;;;OAKG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAEnC;;OAEG;IACH,IAAI,EAAG,SAAS,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,OAAO,0BAAiC;IAIjD;;;OAGG;gBACS,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI;IAQvD,WAAW;IAMpB;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO;IAI7B;;;;OAIG;IACH,GAAG,CAAC,CAAC,SAAS,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC;IAO5E;;;;;;OAMG;IACH,OAAO,CAAC,CAAC,SAAS,UAAU,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC,GAAG,CAAC;IAO9J;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC,GAAG,cAAc;IActG;;;;;;;OAOG;IACH,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,GAAE,cAAc;IAatE;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,SAAS,CAAC,GAAE,cAAc;CAe9D"}
@@ -1,5 +1,5 @@
1
1
  import { type AbstractConstructor, type ClassType } from "type-tls";
2
- import { Destroyable } from "@gby/destroyable";
2
+ import { Destroyable, type EventMap } from "@gby/destroyable";
3
3
  import type { IExtend, AnyIExtend } from "./IExtend";
4
4
  import type { AnyIPlugin, IPlugin, PluginUseArgs, PluginUseReturn } from "./IPlugin";
5
5
  import type { ExtendOptions } from "./extend";
@@ -17,14 +17,14 @@ export declare const extendMark: unique symbol;
17
17
  * 支持插件的级联(通过 parent):当子类创建了子类插件管理者时,为了能让父类插件管理者的插件生效,需要将父类插件管理者设置为其 parent
18
18
  *
19
19
  */
20
- export declare class PluginExtendManager<Host, HostClass extends AbstractConstructor<Host> = ClassType<Host>> extends Destroyable {
20
+ export declare class PluginExtendManager<Host, HostClass extends AbstractConstructor<Host> = ClassType<Host>, EM extends EventMap = any> extends Destroyable<EM> {
21
21
  /**
22
22
  * 父级插件管理者
23
23
  *
24
24
  * @remarks
25
25
  * 当子类创建了子类插件管理者时,为了能让父类插件管理者的插件生效,需要将父类插件管理者设置为其 parent
26
26
  */
27
- parent?: PluginExtendManager<Host, HostClass> | null;
27
+ parent?: PluginExtendManager<any, any> | null;
28
28
  /**
29
29
  * 插件的宿主
30
30
  */
@@ -36,7 +36,7 @@ export declare class PluginExtendManager<Host, HostClass extends AbstractConstru
36
36
  /**
37
37
  * @param host - 插件的宿主
38
38
  */
39
- constructor(host?: HostClass, parent?: PluginExtendManager<Host, HostClass> | null);
39
+ constructor(host?: HostClass, parent?: PluginExtendManager<any, any> | null);
40
40
  destroyThis(): any;
41
41
  /**
42
42
  * 是否注册了插件 或 扩展
@@ -1 +1 @@
1
- {"version":3,"file":"PluginExtendManager.d.ts","sourceRoot":"","sources":["../../src/plugin-manager/PluginExtendManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,mBAAmB,EAAE,KAAK,SAAS,EAAiB,MAAM,UAAU,CAAC;AACrG,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAErD,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACrF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAG7C;;GAEG;AACH,eAAO,MAAM,UAAU,eAAmB,CAAC;AAG3C;;;;;;;;GAQG;AACH,qBAAa,mBAAmB,CAAC,IAAI,EAAC,SAAS,SAAS,mBAAmB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAE,SAAQ,WAAW;IAEpH;;;;;OAKG;IACH,MAAM,CAAC,EAAE,mBAAmB,CAAC,IAAI,EAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IAEpD;;OAEG;IACH,IAAI,EAAG,SAAS,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,OAAO,0DAA6D;IAG7E;;OAEG;gBACS,IAAI,CAAC,EAAE,SAAS,EAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC,IAAI,EAAC,SAAS,CAAC,GAAG,IAAI;IAQvE,WAAW;IAMpB;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,GAAG,GAAE,OAAO;IAK5B;;;;OAIG;IACH,YAAY,CAAC,MAAM,EAAE,GAAG,GAAE,GAAG;IAS7B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,OAAO,CAAC,IAAI,EAAC,SAAS,CAAC;IAOxD;;;;OAIG;IACH,SAAS,CAAC,CAAC,SAAS,UAAU,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,GAAE,CAAC;IAO9E;;;;;;OAMG;IACH,aAAa,CAAC,CAAC,SAAS,UAAU,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,EAAG,GAAG,IAAI,EAAC,qBAAqB,CAAC,SAAS,CAAC,GAAE,CAAC;IAOhK;;;;OAIG;IACH,SAAS,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,EAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,GAAG,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAOxG;;;;;;OAMG;IACH,aAAa,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,EAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAShI;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAG,GAAG,IAAI,EAAC,GAAG,GAAE,cAAc;IAarD;;;;;;;OAOG;IACH,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAC,GAAG,IAAI,EAAC,GAAG,GAAE,cAAc;IAajD;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,EAAE,IAAI,GAAE,cAAc;CAgB3C"}
1
+ {"version":3,"file":"PluginExtendManager.d.ts","sourceRoot":"","sources":["../../src/plugin-manager/PluginExtendManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,mBAAmB,EAAE,KAAK,SAAS,EAAiB,MAAM,UAAU,CAAC;AACrG,OAAO,EAAE,WAAW,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG9D,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAErD,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACrF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAG7C;;GAEG;AACH,eAAO,MAAM,UAAU,eAAmB,CAAC;AAG3C;;;;;;;;GAQG;AACH,qBAAa,mBAAmB,CAAC,IAAI,EAAC,SAAS,SAAS,mBAAmB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,EAAC,EAAE,SAAS,QAAQ,GAAG,GAAG,CAAE,SAAQ,WAAW,CAAC,EAAE,CAAC;IAElJ;;;;;OAKG;IACH,MAAM,CAAC,EAAE,mBAAmB,CAAC,GAAG,EAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAE7C;;OAEG;IACH,IAAI,EAAG,SAAS,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,OAAO,0DAA6D;IAG7E;;OAEG;gBACS,IAAI,CAAC,EAAE,SAAS,EAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC,GAAG,EAAC,GAAG,CAAC,GAAG,IAAI;IAQhE,WAAW;IAMpB;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,GAAG,GAAE,OAAO;IAK5B;;;;OAIG;IACH,YAAY,CAAC,MAAM,EAAE,GAAG,GAAE,GAAG;IAS7B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,OAAO,CAAC,IAAI,EAAC,SAAS,CAAC;IAOxD;;;;OAIG;IACH,SAAS,CAAC,CAAC,SAAS,UAAU,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,GAAE,CAAC;IAO9E;;;;;;OAMG;IACH,aAAa,CAAC,CAAC,SAAS,UAAU,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,EAAG,GAAG,IAAI,EAAC,qBAAqB,CAAC,SAAS,CAAC,GAAE,CAAC;IAOhK;;;;OAIG;IACH,SAAS,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,EAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,GAAG,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAOxG;;;;;;OAMG;IACH,aAAa,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,EAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAShI;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAG,GAAG,IAAI,EAAC,GAAG,GAAE,cAAc;IAarD;;;;;;;OAOG;IACH,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAC,GAAG,IAAI,EAAC,GAAG,GAAE,cAAc;IAajD;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,EAAE,IAAI,GAAE,cAAc;CAgB3C"}
@@ -1,6 +1,6 @@
1
1
  import { type AbstractClassType } from "type-tls";
2
2
  import type { AnyIPlugin, IPlugin, PluginUseArgs, PluginUseReturn } from "./IPlugin";
3
- import { Destroyable } from "@gby/destroyable";
3
+ import { Destroyable, type EventMap } from "@gby/destroyable";
4
4
  import type { AsyncableArray } from "./type";
5
5
  /**
6
6
  * 插件管理者
@@ -9,14 +9,14 @@ import type { AsyncableArray } from "./type";
9
9
  * 负责管理插件的注册、应用 等
10
10
  * 支持插件的级联(通过 parent):当子类创建了子类插件管理者时,为了能让父类插件管理者的插件生效,需要将父类插件管理者设置为其 parent
11
11
  */
12
- export declare class PluginManager<Host, HostClass = AbstractClassType<Host>> extends Destroyable {
12
+ export declare class PluginManager<Host, HostClass = AbstractClassType<Host>, EM extends EventMap = any> extends Destroyable<EM> {
13
13
  /**
14
14
  * 父级插件管理者
15
15
  *
16
16
  * @remarks
17
17
  * 当子类创建了子类插件管理者时,为了能让父类插件管理者的插件生效,需要将父类插件管理者设置为其 parent
18
18
  */
19
- parent?: PluginManager<Host, HostClass> | null;
19
+ parent?: PluginManager<any, any> | null;
20
20
  /**
21
21
  * 插件的宿主
22
22
  */
@@ -28,7 +28,7 @@ export declare class PluginManager<Host, HostClass = AbstractClassType<Host>> ex
28
28
  /**
29
29
  * @param host - 插件的宿主
30
30
  */
31
- constructor(host?: HostClass, parent?: PluginManager<Host, HostClass> | null);
31
+ constructor(host?: HostClass, parent?: PluginManager<any, any> | null);
32
32
  destroyThis(): any;
33
33
  /**
34
34
  * 是否注册了插件
@@ -1 +1 @@
1
- {"version":3,"file":"PluginManager.d.ts","sourceRoot":"","sources":["../../src/plugin-manager/PluginManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,iBAAiB,EAAiB,MAAM,UAAU,CAAC;AACnF,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAE7C;;;;;;GAMG;AACH,qBAAa,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAE,SAAQ,WAAW;IACrF;;;;;OAKG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC;IAG/C;;OAEG;IACH,IAAI,EAAG,SAAS,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,OAAO,qCAA4C;IAG5D;;OAEG;gBACS,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,IAAI;IAQnE,WAAW;IAOpB;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO;IAI7B;;;;OAIG;IACH,YAAY,CAAC,MAAM,EAAE,GAAG,GAAE,GAAG;IAS7B;;;;OAIG;IACH,GAAG,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAOpG;;;;;;OAMG;IACH,OAAO,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAQ3H;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,cAAc;IAYtD;;;;;;;OAOG;IACH,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAE,cAAc;IAanD;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,EAAE,IAAI,GAAE,cAAc;CAe3C"}
1
+ {"version":3,"file":"PluginManager.d.ts","sourceRoot":"","sources":["../../src/plugin-manager/PluginManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,iBAAiB,EAAiB,MAAM,UAAU,CAAC;AACnF,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAE7C;;;;;;GAMG;AACH,qBAAa,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,EAAC,EAAE,SAAS,QAAQ,GAAG,GAAG,CAAE,SAAQ,WAAW,CAAC,EAAE,CAAC;IACnH;;;;;OAKG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IAGxC;;OAEG;IACH,IAAI,EAAG,SAAS,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,OAAO,qCAA4C;IAG5D;;OAEG;gBACS,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI;IAQ5D,WAAW;IAOpB;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO;IAI7B;;;;OAIG;IACH,YAAY,CAAC,MAAM,EAAE,GAAG,GAAE,GAAG;IAS7B;;;;OAIG;IACH,GAAG,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAOpG;;;;;;OAMG;IACH,OAAO,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAQ3H;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,cAAc;IAYtD;;;;;;;OAOG;IACH,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAE,cAAc;IAanD;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,EAAE,IAAI,GAAE,cAAc;CAe3C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "plugin-tls",
3
- "version": "4.7.0",
3
+ "version": "5.0.0",
4
4
  "description": "plugin-tls 是插件系统相应的工具,可快速地让任何模块具备插件机制",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.js",
@@ -64,7 +64,7 @@
64
64
  "vite-node": "latest"
65
65
  },
66
66
  "dependencies": {
67
- "@gby/destroyable": "^4.0.0",
67
+ "@gby/destroyable": "^5.1.0",
68
68
  "com-tools": "^2.22.1",
69
69
  "deepmerge-ts": "^7.1.5",
70
70
  "type-tls": "^3.11.0"
@@ -1 +0,0 @@
1
- "use strict";const n=require("com-tools");class h{refCount=0;get isDestroyed(){return this._isDestroyed}_isDestroyed=!1;get canDestroy(){return!this.isDestroyed&&this.refCount<=0}_destroyers=[];disposeFun(e){return this._destroyers.push(e),e}cancelDisposeFun(e){const s=this._destroyers.indexOf(e);return this._destroyers.splice(s,1),e}disposeObj(e,s){const t=s?function(){return e.destroySync()}:function(){return e.destroy()};return this.disposeFun(t),e.__destroyable_destroyer=t,e}cancelDisposeObj(e){const s=e.__destroyable_destroyer;return s&&this.cancelDisposeFun(s),e}dispose(e,s){return typeof e=="function"?this.disposeFun(e):this.disposeObj(e,s)}cancelDispose(e){return typeof e=="function"?this.cancelDisposeFun(e):this.cancelDisposeObj(e)}destroyThis(){}destroySync(){if(!this.canDestroy)return this.isDestroyed;let e=this._destroyers.length;for(;--e>=0;){const s=this._destroyers[e];try{s()}catch(t){console.error("销毁函数在同步销毁时出错",this,s,t)}}this._destroyers.length=0;try{this.destroyThis()}catch(s){console.error("destroyThis 在异步销毁时出错",this,s)}return o(this),!0}destroy(){if(!this.canDestroy)return this.isDestroyed;const e=this._destroyers.toReversed();e.push(this.destroyThis),this._destroyers.length=0;const s=n.serialCallAllFuns(e,this,null,(t,i)=>{console.error("销毁函数在串行销毁时出错",this,i,t)});return s instanceof Promise?s.then(()=>(o(this),!0)):(o(this),!0)}}function c(){throw"已销毁"}function o(r){for(var e in r)!(e in h.prototype)&&typeof r[e]=="function"&&(r[e]=c);return r._isDestroyed=!0,!0}exports.i=o;
@@ -1,129 +0,0 @@
1
- import { serialCallAllFuns as n } from "com-tools";
2
- class h {
3
- /**
4
- * 引用计数
5
- * @remarks
6
- * 引用计数为 0 时,对象才会被销毁
7
- */
8
- refCount = 0;
9
- /**
10
- * 是否已经销毁
11
- */
12
- get isDestroyed() {
13
- return this._isDestroyed;
14
- }
15
- _isDestroyed = !1;
16
- /**
17
- * 是否可以销毁
18
- */
19
- get canDestroy() {
20
- return !this.isDestroyed && this.refCount <= 0;
21
- }
22
- /**
23
- * 销毁者
24
- */
25
- _destroyers = [];
26
- /**
27
- * 添加销毁者
28
- * @param fun
29
- * @returns 返回销毁者的顺序
30
- */
31
- disposeFun(e) {
32
- return this._destroyers.push(e), e;
33
- }
34
- /**
35
- * 取消销毁者函数
36
- * @param fun
37
- * @returns
38
- */
39
- cancelDisposeFun(e) {
40
- const s = this._destroyers.indexOf(e);
41
- return this._destroyers.splice(s, 1), e;
42
- }
43
- /**
44
- * 添加销毁对象
45
- * @param obj
46
- * @param sync - 表示是否使用 `obj.destroySync()` 方法进行销毁;默认使用 `obj.destroy()` 方法进行销毁
47
- * @returns
48
- */
49
- disposeObj(e, s) {
50
- const t = s ? function() {
51
- return e.destroySync();
52
- } : function() {
53
- return e.destroy();
54
- };
55
- return this.disposeFun(t), e.__destroyable_destroyer = t, e;
56
- }
57
- /**
58
- * 取消销毁者函数
59
- * @param fun
60
- * @returns
61
- */
62
- cancelDisposeObj(e) {
63
- const s = e.__destroyable_destroyer;
64
- return s && this.cancelDisposeFun(s), e;
65
- }
66
- dispose(e, s) {
67
- return typeof e == "function" ? this.disposeFun(e) : this.disposeObj(e, s);
68
- }
69
- cancelDispose(e) {
70
- return typeof e == "function" ? this.cancelDisposeFun(e) : this.cancelDisposeObj(e);
71
- }
72
- /**
73
- * 自己的销毁方法
74
- * @remarks
75
- * 子类根据需要进行重载
76
- */
77
- destroyThis() {
78
- }
79
- /**
80
- * 同步销毁
81
- * @remarks
82
- * 会逆序依次同步调用所有销毁函数,并不会等待上一个销毁函数异步执行完成
83
- */
84
- destroySync() {
85
- if (!this.canDestroy) return this.isDestroyed;
86
- let e = this._destroyers.length;
87
- for (; --e >= 0; ) {
88
- const s = this._destroyers[e];
89
- try {
90
- s();
91
- } catch (t) {
92
- console.error("销毁函数在同步销毁时出错", this, s, t);
93
- }
94
- }
95
- this._destroyers.length = 0;
96
- try {
97
- this.destroyThis();
98
- } catch (s) {
99
- console.error("destroyThis 在异步销毁时出错", this, s);
100
- }
101
- return o(this), !0;
102
- }
103
- /**
104
- * 串行销毁
105
- * @remarks
106
- * 会逆序依次执行销毁,并且只有上一个销毁完成之后才会执行下一个销毁
107
- * @returns 如果所有的销毁函数都是同步的,那么返回 true;如果有任何一个销毁函数是异步的,那么返回一个 Promise 对象
108
- */
109
- destroy() {
110
- if (!this.canDestroy) return this.isDestroyed;
111
- const e = this._destroyers.toReversed();
112
- e.push(this.destroyThis), this._destroyers.length = 0;
113
- const s = n(e, this, null, (t, i) => {
114
- console.error("销毁函数在串行销毁时出错", this, i, t);
115
- });
116
- return s instanceof Promise ? s.then(() => (o(this), !0)) : (o(this), !0);
117
- }
118
- }
119
- function c() {
120
- throw "已销毁";
121
- }
122
- function o(r) {
123
- for (var e in r)
124
- !(e in h.prototype) && typeof r[e] == "function" && (r[e] = c);
125
- return r._isDestroyed = !0, !0;
126
- }
127
- export {
128
- o as i
129
- };