@gby/destroyable 3.4.1 → 3.6.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/Destroyable.d.ts +8 -5
- package/dist/Destroyable.d.ts.map +1 -1
- package/dist/DestroyableEventEmitter.d.ts +8 -5
- package/dist/DestroyableEventEmitter.d.ts.map +1 -1
- package/dist/DestroyableEventTarget-D6QEuQ_5.cjs +1 -0
- package/dist/{DestroyableEventTarget-DFVzomDG.js → DestroyableEventTarget-DdEIvJNx.js} +91 -119
- package/dist/DestroyableEventTarget.d.ts +8 -5
- package/dist/DestroyableEventTarget.d.ts.map +1 -1
- package/dist/createDestroyableSubClass.d.ts +8 -7
- package/dist/createDestroyableSubClass.d.ts.map +1 -1
- package/dist/index-web.cjs +1 -1
- package/dist/index-web.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +31 -39
- package/dist/type.d.ts +7 -4
- package/dist/type.d.ts.map +1 -1
- package/package.json +3 -2
- package/dist/DestroyableEventTarget-DSGfqvV0.cjs +0 -1
package/dist/Destroyable.d.ts
CHANGED
|
@@ -62,17 +62,20 @@ export declare class Destroyable implements IDestroyable {
|
|
|
62
62
|
* @remarks
|
|
63
63
|
* 子类根据需要进行重载
|
|
64
64
|
*/
|
|
65
|
-
destroyThis():
|
|
65
|
+
destroyThis(): any;
|
|
66
66
|
/**
|
|
67
|
-
*
|
|
67
|
+
* 同步销毁
|
|
68
|
+
* @remarks
|
|
69
|
+
* 会逆序依次同步调用所有销毁函数,并不会等待上一个销毁函数异步执行完成
|
|
68
70
|
*/
|
|
69
71
|
destroySync(): boolean;
|
|
70
72
|
/**
|
|
71
|
-
*
|
|
73
|
+
* 串行销毁
|
|
72
74
|
* @remarks
|
|
73
|
-
*
|
|
75
|
+
* 会逆序依次执行销毁,并且只有上一个销毁完成之后才会执行下一个销毁
|
|
76
|
+
* @returns 如果所有的销毁函数都是同步的,那么返回 true;如果有任何一个销毁函数是异步的,那么返回一个 Promise 对象
|
|
74
77
|
*/
|
|
75
|
-
destroy(): Promise<boolean>;
|
|
78
|
+
destroy(): boolean | Promise<boolean>;
|
|
76
79
|
}
|
|
77
80
|
/**
|
|
78
81
|
* 调用已销对象的时抛出错误
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Destroyable.d.ts","sourceRoot":"","sources":["../src/Destroyable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAMzD;;GAEG;AACH,qBAAa,WAAY,YAAW,YAAY;IAE5C;;;;OAIG;IACH,QAAQ,SAAK;IAEb;;OAEG;IACH,IAAI,WAAW,YAEd;IACD,YAAY,UAAS;IAErB;;OAEG;IACH,IAAI,UAAU,YAEb;IAED;;OAEG;IACH,WAAW,EAAE,YAAY,EAAE,CAAM;IAEjC;;;;OAIG;IACH,UAAU,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAK7C;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAMnD;;;;;OAKG;IACH,UAAU,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,CAAC;IAQ7D;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IASnD;;;OAGG;IACH,OAAO,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAC1C,OAAO,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,CAAC;IAClE,OAAO,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,CAAC;IAStF,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAChD,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAChD,aAAa,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC;IAapE;;;;OAIG;IACH,WAAW,IAAI,
|
|
1
|
+
{"version":3,"file":"Destroyable.d.ts","sourceRoot":"","sources":["../src/Destroyable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAMzD;;GAEG;AACH,qBAAa,WAAY,YAAW,YAAY;IAE5C;;;;OAIG;IACH,QAAQ,SAAK;IAEb;;OAEG;IACH,IAAI,WAAW,YAEd;IACD,YAAY,UAAS;IAErB;;OAEG;IACH,IAAI,UAAU,YAEb;IAED;;OAEG;IACH,WAAW,EAAE,YAAY,EAAE,CAAM;IAEjC;;;;OAIG;IACH,UAAU,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAK7C;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAMnD;;;;;OAKG;IACH,UAAU,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,CAAC;IAQ7D;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IASnD;;;OAGG;IACH,OAAO,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAC1C,OAAO,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,CAAC;IAClE,OAAO,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,CAAC;IAStF,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAChD,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAChD,aAAa,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC;IAapE;;;;OAIG;IACH,WAAW,IAAI,GAAG;IAKlB;;;;OAIG;IACH,WAAW;IA6BX;;;;;OAKG;IACH,OAAO;CAuBV;AAKD;;GAEG;AACH,wBAAgB,gBAAgB,SAE/B;AAKD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,GAAG,WASxC;AAKD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,WAYtD"}
|
|
@@ -65,16 +65,19 @@ export declare class DestroyableEventEmitter<EM extends EventMap<EM> = DefaultEv
|
|
|
65
65
|
* @remarks
|
|
66
66
|
* 子类根据需要进行重载
|
|
67
67
|
*/
|
|
68
|
-
destroyThis():
|
|
68
|
+
destroyThis(): any;
|
|
69
69
|
/**
|
|
70
|
-
*
|
|
70
|
+
* 同步销毁
|
|
71
|
+
* @remarks
|
|
72
|
+
* 会逆序依次同步调用所有销毁函数,并不会等待上一个销毁函数异步执行完成
|
|
71
73
|
*/
|
|
72
74
|
destroySync(): boolean;
|
|
73
75
|
/**
|
|
74
|
-
*
|
|
76
|
+
* 串行销毁
|
|
75
77
|
* @remarks
|
|
76
|
-
*
|
|
78
|
+
* 会逆序依次执行销毁,并且只有上一个销毁完成之后才会执行下一个销毁
|
|
79
|
+
* @returns 如果所有的销毁函数都是同步的,那么返回 true;如果有任何一个销毁函数是异步的,那么返回一个 Promise 对象
|
|
77
80
|
*/
|
|
78
|
-
destroy(): Promise<boolean>;
|
|
81
|
+
destroy(): boolean | Promise<boolean>;
|
|
79
82
|
}
|
|
80
83
|
//# sourceMappingURL=DestroyableEventEmitter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DestroyableEventEmitter.d.ts","sourceRoot":"","sources":["../src/DestroyableEventEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"DestroyableEventEmitter.d.ts","sourceRoot":"","sources":["../src/DestroyableEventEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,eAAe,CAAC;AACnE,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,CAAC,CAAC;AAEtC;;GAEG;AACH,qBAAa,uBAAuB,CAAC,EAAE,SAAS,QAAQ,CAAC,EAAE,CAAC,GAAG,eAAe,CAAE,SAAQ,YAAY,CAAC,EAAE,CAAE,YAAW,YAAY;IAE5H;;;;OAIG;IACH,QAAQ,SAAK;IAEb;;OAEG;IACH,IAAI,WAAW,YAEd;IACD,YAAY,UAAS;IAErB;;OAEG;IACH,IAAI,UAAU,YAEb;IAED;;OAEG;IACH,WAAW,EAAE,YAAY,EAAE,CAAM;IAEjC;;;;OAIG;IACH,UAAU,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAK7C;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAMnD;;;;;OAKG;IACH,UAAU,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,CAAC;IAQ7D;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IASnD;;;OAGG;IACH,OAAO,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAC1C,OAAO,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,CAAC;IAClE,OAAO,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,CAAC;IAStF,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAChD,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAChD,aAAa,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC;IAgBpE;;;;OAIG;IACH,WAAW,IAAI,GAAG;IAKlB;;;;OAIG;IACH,WAAW;IA6BX;;;;;OAKG;IACH,OAAO;CAwBV"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var a=Object.defineProperty;var f=(i,s,e)=>s in i?a(i,s,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[s]=e;var n=(i,s,e)=>f(i,typeof s!="symbol"?s+"":s,e);const d=require("com-tools"),D=require("@gby/event-bus");class c{constructor(){n(this,"refCount",0);n(this,"_isDestroyed",!1);n(this,"_destroyers",[])}get isDestroyed(){return this._isDestroyed}get canDestroy(){return!this.isDestroyed&&this.refCount<=0}disposeFun(s){return this._destroyers.push(s),s}cancelDisposeFun(s){const e=this._destroyers.indexOf(s);return this._destroyers.splice(e,1),s}disposeObj(s,e){const r=e?function(){return s.destroySync()}:function(){return s.destroy()};return this.disposeFun(r),s.__destroyable_destroyer=r,s}cancelDisposeObj(s){const e=s.__destroyable_destroyer;return e&&this.cancelDisposeFun(e),s}dispose(s,e){return typeof s=="function"?this.disposeFun(s):this.disposeObj(s,e)}cancelDispose(s){return typeof s=="function"?this.cancelDisposeFun(s):this.cancelDisposeObj(s)}destroyThis(){}destroySync(){if(!this.canDestroy)return this.isDestroyed;let s=this._destroyers.length;for(;--s>=0;){const e=this._destroyers[s];try{e()}catch(r){console.error("销毁函数在同步销毁时出错",this,e,r)}}this._destroyers.length=0;try{this.destroyThis()}catch(e){console.error("destroyThis 在异步销毁时出错",this,e)}return h(this),!0}destroy(){if(!this.canDestroy)return this.isDestroyed;const s=this._destroyers.toReversed();s.push(this.destroyThis),this._destroyers.length=0;const e=d.serialCallAllFuns(s,this,null,(r,t)=>{console.error("销毁函数在串行销毁时出错",this,t,r)});return e instanceof Promise?e.then(()=>(h(this),!0)):(h(this),!0)}}function u(){throw"已销毁"}function p(i){for(var s in i)typeof i[s]=="function"&&(i[s]=u);return i._isDestroyed=!0,!0}function h(i){for(var s in i)!(s in c.prototype)&&typeof i[s]=="function"&&(i[s]=u);return i._isDestroyed=!0,!0}function _(i){class s extends i{constructor(){super(...arguments);n(this,"refCount",0);n(this,"_isDestroyed",!1);n(this,"_destroyers",[])}get isDestroyed(){return this._isDestroyed}get canDestroy(){return!this.isDestroyed&&this.refCount<=0}disposeFun(t){return this._destroyers.push(t),t}cancelDisposeFun(t){const o=this._destroyers.indexOf(t);return this._destroyers.splice(o,1),t}disposeObj(t,o){const y=o?function(){return t.destroySync()}:function(){return t.destroy()};return this.disposeFun(y),t.__destroyable_destroyer=y,t}cancelDisposeObj(t){const o=t.__destroyable_destroyer;return o&&this.cancelDisposeFun(o),t}dispose(t,o){return typeof t=="function"?this.disposeFun(t):this.disposeObj(t,o)}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 o=this._destroyers[t];try{o()}catch(y){console.error("销毁函数在同步销毁时出错",this,o,y)}}this._destroyers.length=0;try{this.destroyThis()}catch(o){console.error("destroyThis 在异步销毁时出错",this,o)}return h(this),!0}destroy(){if(!this.canDestroy)return this.isDestroyed;const t=this._destroyers.toReversed();t.push(this.destroyThis),this._destroyers.length=0;const o=d.serialCallAllFuns(t,this,null,(y,l)=>{console.error("销毁函数在串行销毁时出错",this,l,y)});return o instanceof Promise?o.then(()=>(h(this),!0)):(h(this),!0)}}return s}class g extends D.EventBus{constructor(){super(...arguments);n(this,"refCount",0);n(this,"_isDestroyed",!1);n(this,"_destroyers",[])}get isDestroyed(){return this._isDestroyed}get canDestroy(){return!this.isDestroyed&&this.refCount<=0}disposeFun(e){return this._destroyers.push(e),e}cancelDisposeFun(e){const r=this._destroyers.indexOf(e);return this._destroyers.splice(r,1),e}disposeObj(e,r){const t=r?function(){return e.destroySync()}:function(){return e.destroy()};return this.disposeFun(t),e.__destroyable_destroyer=t,e}cancelDisposeObj(e){const r=e.__destroyable_destroyer;return r&&this.cancelDisposeFun(r),e}dispose(e,r){return typeof e=="function"?this.disposeFun(e):this.disposeObj(e,r)}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 r=this._destroyers[e];try{r()}catch(t){console.error("销毁函数在同步销毁时出错",this,r,t)}}this._destroyers.length=0;try{this.destroyThis()}catch(r){console.error("destroyThis 在异步销毁时出错",this,r)}return h(this),!0}destroy(){if(!this.canDestroy)return this.isDestroyed;const e=this._destroyers.toReversed();e.push(this.destroyThis),this._destroyers.length=0;const r=d.serialCallAllFuns(e,this,null,(t,o)=>{console.error("销毁函数在串行销毁时出错",this,o,t)});return r instanceof Promise?r.then(()=>(h(this),!0)):(h(this),!0)}}exports.Destroyable=c;exports.DestroyableEventTarget=g;exports.createDestroyableSubClass=_;exports.destroyDestroyable=h;exports.destroyObject=p;exports.throwOnDestroyed=u;
|
|
@@ -1,20 +1,21 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
import {
|
|
5
|
-
|
|
1
|
+
var l = Object.defineProperty;
|
|
2
|
+
var a = (i, s, e) => s in i ? l(i, s, { enumerable: !0, configurable: !0, writable: !0, value: e }) : i[s] = e;
|
|
3
|
+
var n = (i, s, e) => a(i, typeof s != "symbol" ? s + "" : s, e);
|
|
4
|
+
import { serialCallAllFuns as y } from "com-tools";
|
|
5
|
+
import { EventBus as f } from "@gby/event-bus";
|
|
6
|
+
class p {
|
|
6
7
|
constructor() {
|
|
7
8
|
/**
|
|
8
9
|
* 引用计数
|
|
9
10
|
* @remarks
|
|
10
11
|
* 引用计数为 0 时,对象才会被销毁
|
|
11
12
|
*/
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
n(this, "refCount", 0);
|
|
14
|
+
n(this, "_isDestroyed", !1);
|
|
14
15
|
/**
|
|
15
16
|
* 销毁者
|
|
16
17
|
*/
|
|
17
|
-
|
|
18
|
+
n(this, "_destroyers", []);
|
|
18
19
|
}
|
|
19
20
|
/**
|
|
20
21
|
* 是否已经销毁
|
|
@@ -82,7 +83,9 @@ class l {
|
|
|
82
83
|
destroyThis() {
|
|
83
84
|
}
|
|
84
85
|
/**
|
|
85
|
-
*
|
|
86
|
+
* 同步销毁
|
|
87
|
+
* @remarks
|
|
88
|
+
* 会逆序依次同步调用所有销毁函数,并不会等待上一个销毁函数异步执行完成
|
|
86
89
|
*/
|
|
87
90
|
destroySync() {
|
|
88
91
|
if (!this.canDestroy) return this.isDestroyed;
|
|
@@ -101,50 +104,39 @@ class l {
|
|
|
101
104
|
} catch (e) {
|
|
102
105
|
console.error("destroyThis 在异步销毁时出错", this, e);
|
|
103
106
|
}
|
|
104
|
-
return
|
|
107
|
+
return h(this), !0;
|
|
105
108
|
}
|
|
106
109
|
/**
|
|
107
|
-
*
|
|
110
|
+
* 串行销毁
|
|
108
111
|
* @remarks
|
|
109
|
-
*
|
|
112
|
+
* 会逆序依次执行销毁,并且只有上一个销毁完成之后才会执行下一个销毁
|
|
113
|
+
* @returns 如果所有的销毁函数都是同步的,那么返回 true;如果有任何一个销毁函数是异步的,那么返回一个 Promise 对象
|
|
110
114
|
*/
|
|
111
|
-
|
|
115
|
+
destroy() {
|
|
112
116
|
if (!this.canDestroy) return this.isDestroyed;
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
} catch (r) {
|
|
120
|
-
console.error("销毁函数在异步销毁时出错", this, e, r);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
this._destroyers.length = 0;
|
|
124
|
-
try {
|
|
125
|
-
const e = this.destroyThis();
|
|
126
|
-
e && e instanceof Promise && await e;
|
|
127
|
-
} catch (e) {
|
|
128
|
-
console.error("destroyThis 在异步销毁时出错", this, e);
|
|
129
|
-
}
|
|
130
|
-
return y(this), !0;
|
|
117
|
+
const s = this._destroyers.toReversed();
|
|
118
|
+
s.push(this.destroyThis), this._destroyers.length = 0;
|
|
119
|
+
const e = y(s, this, null, (r, t) => {
|
|
120
|
+
console.error("销毁函数在串行销毁时出错", this, t, r);
|
|
121
|
+
});
|
|
122
|
+
return e instanceof Promise ? e.then(() => (h(this), !0)) : (h(this), !0);
|
|
131
123
|
}
|
|
132
124
|
}
|
|
133
|
-
function
|
|
125
|
+
function u() {
|
|
134
126
|
throw "已销毁";
|
|
135
127
|
}
|
|
136
|
-
function
|
|
137
|
-
for (var s in
|
|
138
|
-
typeof
|
|
139
|
-
return
|
|
128
|
+
function T(i) {
|
|
129
|
+
for (var s in i)
|
|
130
|
+
typeof i[s] == "function" && (i[s] = u);
|
|
131
|
+
return i._isDestroyed = !0, !0;
|
|
140
132
|
}
|
|
141
|
-
function
|
|
142
|
-
for (var s in
|
|
143
|
-
!(s in
|
|
144
|
-
return
|
|
133
|
+
function h(i) {
|
|
134
|
+
for (var s in i)
|
|
135
|
+
!(s in p.prototype) && typeof i[s] == "function" && (i[s] = u);
|
|
136
|
+
return i._isDestroyed = !0, !0;
|
|
145
137
|
}
|
|
146
|
-
function
|
|
147
|
-
class s extends
|
|
138
|
+
function x(i) {
|
|
139
|
+
class s extends i {
|
|
148
140
|
constructor() {
|
|
149
141
|
super(...arguments);
|
|
150
142
|
/**
|
|
@@ -152,12 +144,12 @@ function D(o) {
|
|
|
152
144
|
* @remarks
|
|
153
145
|
* 引用计数为 0 时,对象才会被销毁
|
|
154
146
|
*/
|
|
155
|
-
|
|
156
|
-
|
|
147
|
+
n(this, "refCount", 0);
|
|
148
|
+
n(this, "_isDestroyed", !1);
|
|
157
149
|
/**
|
|
158
150
|
* 销毁者
|
|
159
151
|
*/
|
|
160
|
-
|
|
152
|
+
n(this, "_destroyers", []);
|
|
161
153
|
}
|
|
162
154
|
/**
|
|
163
155
|
* 是否已经销毁
|
|
@@ -185,8 +177,8 @@ function D(o) {
|
|
|
185
177
|
* @returns
|
|
186
178
|
*/
|
|
187
179
|
cancelDisposeFun(t) {
|
|
188
|
-
const
|
|
189
|
-
return this._destroyers.splice(
|
|
180
|
+
const o = this._destroyers.indexOf(t);
|
|
181
|
+
return this._destroyers.splice(o, 1), t;
|
|
190
182
|
}
|
|
191
183
|
/**
|
|
192
184
|
* 添加销毁对象
|
|
@@ -194,13 +186,13 @@ function D(o) {
|
|
|
194
186
|
* @param sync - 表示是否使用 `obj.destroySync()` 方法进行销毁;默认使用 `obj.destroy()` 方法进行销毁
|
|
195
187
|
* @returns
|
|
196
188
|
*/
|
|
197
|
-
disposeObj(t,
|
|
198
|
-
const
|
|
189
|
+
disposeObj(t, o) {
|
|
190
|
+
const d = o ? function() {
|
|
199
191
|
return t.destroySync();
|
|
200
192
|
} : function() {
|
|
201
193
|
return t.destroy();
|
|
202
194
|
};
|
|
203
|
-
return this.disposeFun(
|
|
195
|
+
return this.disposeFun(d), t.__destroyable_destroyer = d, t;
|
|
204
196
|
}
|
|
205
197
|
/**
|
|
206
198
|
* 取消销毁者函数
|
|
@@ -208,11 +200,11 @@ function D(o) {
|
|
|
208
200
|
* @returns
|
|
209
201
|
*/
|
|
210
202
|
cancelDisposeObj(t) {
|
|
211
|
-
const
|
|
212
|
-
return
|
|
203
|
+
const o = t.__destroyable_destroyer;
|
|
204
|
+
return o && this.cancelDisposeFun(o), t;
|
|
213
205
|
}
|
|
214
|
-
dispose(t,
|
|
215
|
-
return typeof t == "function" ? this.disposeFun(t) : this.disposeObj(t,
|
|
206
|
+
dispose(t, o) {
|
|
207
|
+
return typeof t == "function" ? this.disposeFun(t) : this.disposeObj(t, o);
|
|
216
208
|
}
|
|
217
209
|
cancelDispose(t) {
|
|
218
210
|
return typeof t == "function" ? this.cancelDisposeFun(t) : this.cancelDisposeObj(t);
|
|
@@ -225,59 +217,48 @@ function D(o) {
|
|
|
225
217
|
destroyThis() {
|
|
226
218
|
}
|
|
227
219
|
/**
|
|
228
|
-
*
|
|
220
|
+
* 同步销毁
|
|
229
221
|
* @remarks
|
|
230
|
-
*
|
|
222
|
+
* 会逆序依次同步调用所有销毁函数,并不会等待上一个销毁函数异步执行完成
|
|
231
223
|
*/
|
|
232
|
-
|
|
224
|
+
destroySync() {
|
|
233
225
|
if (!this.canDestroy) return this.isDestroyed;
|
|
234
226
|
let t = this._destroyers.length;
|
|
235
227
|
for (; --t >= 0; ) {
|
|
236
|
-
const
|
|
228
|
+
const o = this._destroyers[t];
|
|
237
229
|
try {
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
console.error("销毁函数在异步销毁时出错", this, i, n);
|
|
230
|
+
o();
|
|
231
|
+
} catch (d) {
|
|
232
|
+
console.error("销毁函数在同步销毁时出错", this, o, d);
|
|
242
233
|
}
|
|
243
234
|
}
|
|
244
235
|
this._destroyers.length = 0;
|
|
245
236
|
try {
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
console.error("destroyThis 在异步销毁时出错", this, i);
|
|
237
|
+
this.destroyThis();
|
|
238
|
+
} catch (o) {
|
|
239
|
+
console.error("destroyThis 在异步销毁时出错", this, o);
|
|
250
240
|
}
|
|
251
|
-
return
|
|
241
|
+
return h(this), !0;
|
|
252
242
|
}
|
|
253
243
|
/**
|
|
254
|
-
*
|
|
244
|
+
* 串行销毁
|
|
255
245
|
* @remarks
|
|
256
|
-
*
|
|
246
|
+
* 会逆序依次执行销毁,并且只有上一个销毁完成之后才会执行下一个销毁
|
|
247
|
+
* @returns 如果所有的销毁函数都是同步的,那么返回 true;如果有任何一个销毁函数是异步的,那么返回一个 Promise 对象
|
|
257
248
|
*/
|
|
258
|
-
|
|
249
|
+
destroy() {
|
|
259
250
|
if (!this.canDestroy) return this.isDestroyed;
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
console.error("销毁函数在同步销毁时出错", this, i, n);
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
this._destroyers.length = 0;
|
|
270
|
-
try {
|
|
271
|
-
this.destroyThis();
|
|
272
|
-
} catch (i) {
|
|
273
|
-
console.error("destroyThis 在异步销毁时出错", this, i);
|
|
274
|
-
}
|
|
275
|
-
return y(this), !0;
|
|
251
|
+
const t = this._destroyers.toReversed();
|
|
252
|
+
t.push(this.destroyThis), this._destroyers.length = 0;
|
|
253
|
+
const o = y(t, this, null, (d, c) => {
|
|
254
|
+
console.error("销毁函数在串行销毁时出错", this, c, d);
|
|
255
|
+
});
|
|
256
|
+
return o instanceof Promise ? o.then(() => (h(this), !0)) : (h(this), !0);
|
|
276
257
|
}
|
|
277
258
|
}
|
|
278
259
|
return s;
|
|
279
260
|
}
|
|
280
|
-
class
|
|
261
|
+
class C extends f {
|
|
281
262
|
constructor() {
|
|
282
263
|
super(...arguments);
|
|
283
264
|
/**
|
|
@@ -285,12 +266,12 @@ class g extends a {
|
|
|
285
266
|
* @remarks
|
|
286
267
|
* 引用计数为 0 时,对象才会被销毁
|
|
287
268
|
*/
|
|
288
|
-
|
|
289
|
-
|
|
269
|
+
n(this, "refCount", 0);
|
|
270
|
+
n(this, "_isDestroyed", !1);
|
|
290
271
|
/**
|
|
291
272
|
* 销毁者
|
|
292
273
|
*/
|
|
293
|
-
|
|
274
|
+
n(this, "_destroyers", []);
|
|
294
275
|
}
|
|
295
276
|
/**
|
|
296
277
|
* 是否已经销毁
|
|
@@ -358,7 +339,9 @@ class g extends a {
|
|
|
358
339
|
destroyThis() {
|
|
359
340
|
}
|
|
360
341
|
/**
|
|
361
|
-
*
|
|
342
|
+
* 同步销毁
|
|
343
|
+
* @remarks
|
|
344
|
+
* 会逆序依次同步调用所有销毁函数,并不会等待上一个销毁函数异步执行完成
|
|
362
345
|
*/
|
|
363
346
|
destroySync() {
|
|
364
347
|
if (!this.canDestroy) return this.isDestroyed;
|
|
@@ -377,40 +360,29 @@ class g extends a {
|
|
|
377
360
|
} catch (r) {
|
|
378
361
|
console.error("destroyThis 在异步销毁时出错", this, r);
|
|
379
362
|
}
|
|
380
|
-
return
|
|
363
|
+
return h(this), !0;
|
|
381
364
|
}
|
|
382
365
|
/**
|
|
383
|
-
*
|
|
366
|
+
* 串行销毁
|
|
384
367
|
* @remarks
|
|
385
|
-
*
|
|
368
|
+
* 会逆序依次执行销毁,并且只有上一个销毁完成之后才会执行下一个销毁
|
|
369
|
+
* @returns 如果所有的销毁函数都是同步的,那么返回 true;如果有任何一个销毁函数是异步的,那么返回一个 Promise 对象
|
|
386
370
|
*/
|
|
387
|
-
|
|
371
|
+
destroy() {
|
|
388
372
|
if (!this.canDestroy) return this.isDestroyed;
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
} catch (t) {
|
|
396
|
-
console.error("销毁函数在异步销毁时出错", this, r, t);
|
|
397
|
-
}
|
|
398
|
-
}
|
|
399
|
-
this._destroyers.length = 0;
|
|
400
|
-
try {
|
|
401
|
-
const r = this.destroyThis();
|
|
402
|
-
r && r instanceof Promise && await r;
|
|
403
|
-
} catch (r) {
|
|
404
|
-
console.error("destroyThis 在异步销毁时出错", this, r);
|
|
405
|
-
}
|
|
406
|
-
return y(this), !0;
|
|
373
|
+
const e = this._destroyers.toReversed();
|
|
374
|
+
e.push(this.destroyThis), this._destroyers.length = 0;
|
|
375
|
+
const r = y(e, this, null, (t, o) => {
|
|
376
|
+
console.error("销毁函数在串行销毁时出错", this, o, t);
|
|
377
|
+
});
|
|
378
|
+
return r instanceof Promise ? r.then(() => (h(this), !0)) : (h(this), !0);
|
|
407
379
|
}
|
|
408
380
|
}
|
|
409
381
|
export {
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
382
|
+
p as D,
|
|
383
|
+
h as a,
|
|
384
|
+
C as b,
|
|
385
|
+
x as c,
|
|
386
|
+
T as d,
|
|
387
|
+
u as t
|
|
416
388
|
};
|
|
@@ -63,16 +63,19 @@ export declare class DestroyableEventTarget<EM extends Record<string, any> = Rec
|
|
|
63
63
|
* @remarks
|
|
64
64
|
* 子类根据需要进行重载
|
|
65
65
|
*/
|
|
66
|
-
destroyThis():
|
|
66
|
+
destroyThis(): any;
|
|
67
67
|
/**
|
|
68
|
-
*
|
|
68
|
+
* 同步销毁
|
|
69
|
+
* @remarks
|
|
70
|
+
* 会逆序依次同步调用所有销毁函数,并不会等待上一个销毁函数异步执行完成
|
|
69
71
|
*/
|
|
70
72
|
destroySync(): boolean;
|
|
71
73
|
/**
|
|
72
|
-
*
|
|
74
|
+
* 串行销毁
|
|
73
75
|
* @remarks
|
|
74
|
-
*
|
|
76
|
+
* 会逆序依次执行销毁,并且只有上一个销毁完成之后才会执行下一个销毁
|
|
77
|
+
* @returns 如果所有的销毁函数都是同步的,那么返回 true;如果有任何一个销毁函数是异步的,那么返回一个 Promise 对象
|
|
75
78
|
*/
|
|
76
|
-
destroy(): Promise<boolean>;
|
|
79
|
+
destroy(): boolean | Promise<boolean>;
|
|
77
80
|
}
|
|
78
81
|
//# sourceMappingURL=DestroyableEventTarget.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DestroyableEventTarget.d.ts","sourceRoot":"","sources":["../src/DestroyableEventTarget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEzD,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"DestroyableEventTarget.d.ts","sourceRoot":"","sources":["../src/DestroyableEventTarget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEzD,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAIxC;;GAEG;AACH,qBAAa,sBAAsB,CAAC,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAE,SAAQ,QAAQ,CAAC,EAAE,CAAE,YAAW,YAAY;IAElI;;;;OAIG;IACH,QAAQ,SAAK;IAEb;;OAEG;IACH,IAAI,WAAW,YAEd;IACD,YAAY,UAAS;IAErB;;OAEG;IACH,IAAI,UAAU,YAEb;IAED;;OAEG;IACH,WAAW,EAAE,YAAY,EAAE,CAAM;IAEjC;;;;OAIG;IACH,UAAU,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAK7C;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAMnD;;;;;OAKG;IACH,UAAU,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,CAAC;IAQ7D;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IASnD;;;OAGG;IACH,OAAO,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAC1C,OAAO,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,CAAC;IAClE,OAAO,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,CAAC;IAStF,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAChD,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAChD,aAAa,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC;IAapE;;;;OAIG;IACH,WAAW,IAAI,GAAG;IAKlB;;;;OAIG;IACH,WAAW;IA6BX;;;;;OAKG;IACH,OAAO;CAuBV"}
|
|
@@ -67,19 +67,20 @@ export declare function createDestroyableSubClass<P extends new (...args: any) =
|
|
|
67
67
|
* @remarks
|
|
68
68
|
* 子类根据需要进行重载
|
|
69
69
|
*/
|
|
70
|
-
destroyThis():
|
|
70
|
+
destroyThis(): any;
|
|
71
71
|
/**
|
|
72
|
-
*
|
|
72
|
+
* 同步销毁
|
|
73
73
|
* @remarks
|
|
74
|
-
*
|
|
74
|
+
* 会逆序依次同步调用所有销毁函数,并不会等待上一个销毁函数异步执行完成
|
|
75
75
|
*/
|
|
76
|
-
|
|
76
|
+
destroySync(): boolean;
|
|
77
77
|
/**
|
|
78
|
-
*
|
|
78
|
+
* 串行销毁
|
|
79
79
|
* @remarks
|
|
80
|
-
*
|
|
80
|
+
* 会逆序依次执行销毁,并且只有上一个销毁完成之后才会执行下一个销毁
|
|
81
|
+
* @returns 如果所有的销毁函数都是同步的,那么返回 true;如果有任何一个销毁函数是异步的,那么返回一个 Promise 对象
|
|
81
82
|
*/
|
|
82
|
-
|
|
83
|
+
destroy(): boolean | Promise<boolean>;
|
|
83
84
|
constructor: Function;
|
|
84
85
|
toString(): string;
|
|
85
86
|
toLocaleString(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createDestroyableSubClass.d.ts","sourceRoot":"","sources":["../src/createDestroyableSubClass.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAC,YAAY,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"createDestroyableSubClass.d.ts","sourceRoot":"","sources":["../src/createDestroyableSubClass.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAC,YAAY,EAAE,MAAM,QAAQ,CAAC;AAIxD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,KAAK,GAAG,IAAI,EAAE,GAAG,KAAK,MAAM,EAAE,WAAW,EAAE,CAAC;kBAA9B,GAAG;QAQ7D;;;;WAIG;;QAGH;;WAEG;;;QAMH;;WAEG;;QAMH;;WAEG;qBACU,YAAY,EAAE;QAE3B;;;;WAIG;mBACQ,CAAC,SAAS,YAAY,OAAO,CAAC,GAAG,CAAC;QAK7C;;;;WAIG;yBACc,CAAC,SAAS,YAAY,OAAO,CAAC,GAAG,CAAC;QAMnD;;;;;WAKG;mBACQ,CAAC,SAAS,YAAY,OAAO,CAAC,SAAS,OAAO,GAAG,CAAC;QAQ7D;;;;WAIG;yBACc,CAAC,SAAS,YAAY,OAAO,CAAC,GAAG,CAAC;QASnD;;;WAGG;gBACK,CAAC,SAAS,YAAY,OAAO,CAAC,GAAG,CAAC;gBAClC,CAAC,SAAS,YAAY,OAAO,CAAC,iBAAiB,OAAO,GAAG,CAAC;gBAC1D,CAAC,SAAS,YAAY,GAAG,YAAY,YAAY,CAAC,iBAAiB,OAAO,GAAG,CAAC;sBASxE,CAAC,SAAS,YAAY,OAAO,CAAC,GAAG,CAAC;sBAClC,CAAC,SAAS,YAAY,OAAO,CAAC,GAAG,CAAC;sBAClC,CAAC,SAAS,YAAY,GAAG,YAAY,YAAY,CAAC,GAAG,CAAC;QAcpE;;;;WAIG;uBACY,GAAG;QAQlB;;;;WAIG;;QA2BF;;;;;WAKG;;;;;;;;;;MAgCX;AAMD;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,WAAW,SAAS,KAAK,GAAG,IAAI,EAAE,GAAG,KAAK,MAAM,IAAI,UAAU,CAAC,OAAO,yBAAyB,CAAC,WAAW,CAAC,CAAC,CAAC;AAE9I;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,WAAW,SAAS,KAAK,GAAG,IAAI,EAAE,GAAG,KAAK,MAAM,IAAI,YAAY,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC"}
|
package/dist/index-web.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./DestroyableEventTarget-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./DestroyableEventTarget-D6QEuQ_5.cjs");exports.Destroyable=e.Destroyable;exports.DestroyableEventTarget=e.DestroyableEventTarget;exports.createDestroyableSubClass=e.createDestroyableSubClass;exports.destroyDestroyable=e.destroyDestroyable;exports.destroyObject=e.destroyObject;exports.throwOnDestroyed=e.throwOnDestroyed;
|
package/dist/index-web.js
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var d=Object.defineProperty;var c=(o,r,e)=>r in o?d(o,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[r]=e;var n=(o,r,e)=>c(o,typeof r!="symbol"?r+"":r,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("./DestroyableEventTarget-D6QEuQ_5.cjs"),l=require("node:events"),h=require("com-tools");class u extends l.EventEmitter{constructor(){super(...arguments);n(this,"refCount",0);n(this,"_isDestroyed",!1);n(this,"_destroyers",[])}get isDestroyed(){return this._isDestroyed}get canDestroy(){return!this.isDestroyed&&this.refCount<=0}disposeFun(e){return this._destroyers.push(e),e}cancelDisposeFun(e){const t=this._destroyers.indexOf(e);return this._destroyers.splice(t,1),e}disposeObj(e,t){const i=t?function(){return e.destroySync()}:function(){return e.destroy()};return this.disposeFun(i),e.__destroyable_destroyer=i,e}cancelDisposeObj(e){const 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;){const 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 s.destroyDestroyable(this),!0}destroy(){if(!this.canDestroy)return this.isDestroyed;const e=this._destroyers.toReversed();e.push(this.destroyThis),this._destroyers.length=0;const t=h.serialCallAllFuns(e,this,null,(i,y)=>{console.error("销毁函数在串行销毁时出错",this,y,i)});return t instanceof Promise?t.then(()=>(s.destroyDestroyable(this),!0)):(s.destroyDestroyable(this),!0)}}exports.Destroyable=s.Destroyable;exports.DestroyableEventTarget=s.DestroyableEventTarget;exports.createDestroyableSubClass=s.createDestroyableSubClass;exports.destroyDestroyable=s.destroyDestroyable;exports.destroyObject=s.destroyObject;exports.throwOnDestroyed=s.throwOnDestroyed;exports.DestroyableEventEmitter=u;
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var i = (
|
|
4
|
-
import { a as n } from "./DestroyableEventTarget-
|
|
5
|
-
import { D as
|
|
6
|
-
import { EventEmitter as
|
|
7
|
-
|
|
1
|
+
var d = Object.defineProperty;
|
|
2
|
+
var h = (r, t, e) => t in r ? d(r, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[t] = e;
|
|
3
|
+
var i = (r, t, e) => h(r, typeof t != "symbol" ? t + "" : t, e);
|
|
4
|
+
import { a as n } from "./DestroyableEventTarget-DdEIvJNx.js";
|
|
5
|
+
import { D as b, b as g, c as x, d as E, t as T } from "./DestroyableEventTarget-DdEIvJNx.js";
|
|
6
|
+
import { EventEmitter as c } from "node:events";
|
|
7
|
+
import { serialCallAllFuns as u } from "com-tools";
|
|
8
|
+
class f extends c {
|
|
8
9
|
constructor() {
|
|
9
10
|
super(...arguments);
|
|
10
11
|
/**
|
|
@@ -55,12 +56,12 @@ class u extends d {
|
|
|
55
56
|
* @returns
|
|
56
57
|
*/
|
|
57
58
|
disposeObj(e, s) {
|
|
58
|
-
const
|
|
59
|
+
const o = s ? function() {
|
|
59
60
|
return e.destroySync();
|
|
60
61
|
} : function() {
|
|
61
62
|
return e.destroy();
|
|
62
63
|
};
|
|
63
|
-
return this.disposeFun(
|
|
64
|
+
return this.disposeFun(o), e.__destroyable_destroyer = o, e;
|
|
64
65
|
}
|
|
65
66
|
/**
|
|
66
67
|
* 取消销毁者函数
|
|
@@ -85,7 +86,9 @@ class u extends d {
|
|
|
85
86
|
destroyThis() {
|
|
86
87
|
}
|
|
87
88
|
/**
|
|
88
|
-
*
|
|
89
|
+
* 同步销毁
|
|
90
|
+
* @remarks
|
|
91
|
+
* 会逆序依次同步调用所有销毁函数,并不会等待上一个销毁函数异步执行完成
|
|
89
92
|
*/
|
|
90
93
|
destroySync() {
|
|
91
94
|
if (!this.canDestroy) return this.isDestroyed;
|
|
@@ -94,8 +97,8 @@ class u extends d {
|
|
|
94
97
|
const s = this._destroyers[e];
|
|
95
98
|
try {
|
|
96
99
|
s();
|
|
97
|
-
} catch (
|
|
98
|
-
console.error("销毁函数在同步销毁时出错", this, s,
|
|
100
|
+
} catch (o) {
|
|
101
|
+
console.error("销毁函数在同步销毁时出错", this, s, o);
|
|
99
102
|
}
|
|
100
103
|
}
|
|
101
104
|
this._destroyers.length = 0;
|
|
@@ -107,38 +110,27 @@ class u extends d {
|
|
|
107
110
|
return n(this), !0;
|
|
108
111
|
}
|
|
109
112
|
/**
|
|
110
|
-
*
|
|
113
|
+
* 串行销毁
|
|
111
114
|
* @remarks
|
|
112
|
-
*
|
|
115
|
+
* 会逆序依次执行销毁,并且只有上一个销毁完成之后才会执行下一个销毁
|
|
116
|
+
* @returns 如果所有的销毁函数都是同步的,那么返回 true;如果有任何一个销毁函数是异步的,那么返回一个 Promise 对象
|
|
113
117
|
*/
|
|
114
|
-
|
|
118
|
+
destroy() {
|
|
115
119
|
if (!this.canDestroy) return this.isDestroyed;
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
} catch (t) {
|
|
123
|
-
console.error("销毁函数在异步销毁时出错", this, s, t);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
this._destroyers.length = 0;
|
|
127
|
-
try {
|
|
128
|
-
const s = this.destroyThis();
|
|
129
|
-
s && s instanceof Promise && await s;
|
|
130
|
-
} catch (s) {
|
|
131
|
-
console.error("destroyThis 在异步销毁时出错", this, s);
|
|
132
|
-
}
|
|
133
|
-
return n(this), !0;
|
|
120
|
+
const e = this._destroyers.toReversed();
|
|
121
|
+
e.push(this.destroyThis), this._destroyers.length = 0;
|
|
122
|
+
const s = u(e, this, null, (o, y) => {
|
|
123
|
+
console.error("销毁函数在串行销毁时出错", this, y, o);
|
|
124
|
+
});
|
|
125
|
+
return s instanceof Promise ? s.then(() => (n(this), !0)) : (n(this), !0);
|
|
134
126
|
}
|
|
135
127
|
}
|
|
136
128
|
export {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
129
|
+
b as Destroyable,
|
|
130
|
+
f as DestroyableEventEmitter,
|
|
131
|
+
g as DestroyableEventTarget,
|
|
132
|
+
x as createDestroyableSubClass,
|
|
141
133
|
n as destroyDestroyable,
|
|
142
|
-
|
|
143
|
-
|
|
134
|
+
E as destroyObject,
|
|
135
|
+
T as throwOnDestroyed
|
|
144
136
|
};
|
package/dist/type.d.ts
CHANGED
|
@@ -48,13 +48,16 @@ export interface IDestroyable {
|
|
|
48
48
|
cancelDispose<T extends IDestroyable>(obj: T): T;
|
|
49
49
|
cancelDispose<T extends IDestroyable | FunDestroyer>(objOrFun: T): T;
|
|
50
50
|
/**
|
|
51
|
-
*
|
|
51
|
+
* 串行销毁
|
|
52
52
|
* @remarks
|
|
53
|
-
*
|
|
53
|
+
* 会逆序依次执行销毁,并且只有上一个销毁完成之后才会执行下一个销毁
|
|
54
|
+
* @returns 如果所有的销毁函数都是同步的,那么返回 true;如果有任何一个销毁函数是异步的,那么返回一个 Promise 对象
|
|
54
55
|
*/
|
|
55
|
-
destroy(): Promise<boolean>;
|
|
56
|
+
destroy(): boolean | Promise<boolean>;
|
|
56
57
|
/**
|
|
57
|
-
*
|
|
58
|
+
* 同步销毁
|
|
59
|
+
* @remarks
|
|
60
|
+
* 会逆序依次同步调用所有销毁函数,并不会等待上一个销毁函数异步执行完成
|
|
58
61
|
*/
|
|
59
62
|
destroySync(): boolean;
|
|
60
63
|
}
|
package/dist/type.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../src/type.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC;AAQtC;;GAEG;AACH,MAAM,WAAW,YAAY;IAEzB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,UAAU,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAE9C;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAEpD;;;;;OAKG;IACH,UAAU,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,EAAC,IAAI,CAAC,EAAC,OAAO,GAAG,CAAC,CAAC;IAE5D;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAEpD;;;OAGG;IACH,OAAO,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,EAAC,YAAY,CAAC,EAAC,OAAO,GAAG,CAAC,CAAA;IAChE,OAAO,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,QAAQ,EAAE,CAAC,EAAC,YAAY,CAAC,EAAC,OAAO,GAAG,CAAC,CAAC;IAGrF,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IACjD,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;IAChD,aAAa,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;IAGrE
|
|
1
|
+
{"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../src/type.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC;AAQtC;;GAEG;AACH,MAAM,WAAW,YAAY;IAEzB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,UAAU,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAE9C;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAEpD;;;;;OAKG;IACH,UAAU,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,EAAC,IAAI,CAAC,EAAC,OAAO,GAAG,CAAC,CAAC;IAE5D;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAEpD;;;OAGG;IACH,OAAO,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,EAAC,YAAY,CAAC,EAAC,OAAO,GAAG,CAAC,CAAA;IAChE,OAAO,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,QAAQ,EAAE,CAAC,EAAC,YAAY,CAAC,EAAC,OAAO,GAAG,CAAC,CAAC;IAGrF,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IACjD,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;IAChD,aAAa,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;IAGrE;;;;;OAKG;IACH,OAAO,IAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAGvC;;;;OAIG;IACH,WAAW,IAAG,OAAO,CAAC;CAEzB;AAKD;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,KAAK,GAAG,IAAI,EAAE,GAAG,KAAK,YAAY,CAAC;AAGxE;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC,KAAK,GAAG,IAAI,EAAE,GAAG,GAAE,YAAY,CAAC;CACnC;AAGD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,KAAK,GAAG,IAAI,EAAE,GAAG,GAAE,YAAY,CAAC;IAChC,SAAS,EAAC,YAAY,CAAC;CAC1B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gby/destroyable",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.6.0",
|
|
4
4
|
"description": "@gby/destroyable 提供了用于构建可销毁对象的类的基类,用于使得地管理可销毁对象的生命周期",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -55,7 +55,8 @@
|
|
|
55
55
|
"vite-node": "latest"
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
|
-
"@gby/event-bus": "^1.2.3"
|
|
58
|
+
"@gby/event-bus": "^1.2.3",
|
|
59
|
+
"com-tools": "^2.21.1"
|
|
59
60
|
},
|
|
60
61
|
"scripts": {
|
|
61
62
|
"serve": "vite",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var u=Object.defineProperty;var a=(o,s,e)=>s in o?u(o,s,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[s]=e;var y=(o,s,e)=>a(o,typeof s!="symbol"?s+"":s,e);const l=require("@gby/event-bus");class d{constructor(){y(this,"refCount",0);y(this,"_isDestroyed",!1);y(this,"_destroyers",[])}get isDestroyed(){return this._isDestroyed}get canDestroy(){return!this.isDestroyed&&this.refCount<=0}disposeFun(s){return this._destroyers.push(s),s}cancelDisposeFun(s){const e=this._destroyers.indexOf(s);return this._destroyers.splice(e,1),s}disposeObj(s,e){const r=e?function(){return s.destroySync()}:function(){return s.destroy()};return this.disposeFun(r),s.__destroyable_destroyer=r,s}cancelDisposeObj(s){const e=s.__destroyable_destroyer;return e&&this.cancelDisposeFun(e),s}dispose(s,e){return typeof s=="function"?this.disposeFun(s):this.disposeObj(s,e)}cancelDispose(s){return typeof s=="function"?this.cancelDisposeFun(s):this.cancelDisposeObj(s)}destroyThis(){}destroySync(){if(!this.canDestroy)return this.isDestroyed;let s=this._destroyers.length;for(;--s>=0;){const e=this._destroyers[s];try{e()}catch(r){console.error("销毁函数在同步销毁时出错",this,e,r)}}this._destroyers.length=0;try{this.destroyThis()}catch(e){console.error("destroyThis 在异步销毁时出错",this,e)}return c(this),!0}async destroy(){if(!this.canDestroy)return this.isDestroyed;let s=this._destroyers.length;for(;--s>=0;){const e=this._destroyers[s];try{const r=e();r&&r instanceof Promise&&await r}catch(r){console.error("销毁函数在异步销毁时出错",this,e,r)}}this._destroyers.length=0;try{const e=this.destroyThis();e&&e instanceof Promise&&await e}catch(e){console.error("destroyThis 在异步销毁时出错",this,e)}return c(this),!0}}function h(){throw"已销毁"}function f(o){for(var s in o)typeof o[s]=="function"&&(o[s]=h);return o._isDestroyed=!0,!0}function c(o){for(var s in o)!(s in d.prototype)&&typeof o[s]=="function"&&(o[s]=h);return o._isDestroyed=!0,!0}function D(o){class s extends o{constructor(){super(...arguments);y(this,"refCount",0);y(this,"_isDestroyed",!1);y(this,"_destroyers",[])}get isDestroyed(){return this._isDestroyed}get canDestroy(){return!this.isDestroyed&&this.refCount<=0}disposeFun(t){return this._destroyers.push(t),t}cancelDisposeFun(t){const i=this._destroyers.indexOf(t);return this._destroyers.splice(i,1),t}disposeObj(t,i){const n=i?function(){return t.destroySync()}:function(){return t.destroy()};return this.disposeFun(n),t.__destroyable_destroyer=n,t}cancelDisposeObj(t){const i=t.__destroyable_destroyer;return i&&this.cancelDisposeFun(i),t}dispose(t,i){return typeof t=="function"?this.disposeFun(t):this.disposeObj(t,i)}cancelDispose(t){return typeof t=="function"?this.cancelDisposeFun(t):this.cancelDisposeObj(t)}destroyThis(){}async destroy(){if(!this.canDestroy)return this.isDestroyed;let t=this._destroyers.length;for(;--t>=0;){const i=this._destroyers[t];try{const n=i();n&&n instanceof Promise&&await n}catch(n){console.error("销毁函数在异步销毁时出错",this,i,n)}}this._destroyers.length=0;try{const i=this.destroyThis();i&&i instanceof Promise&&await i}catch(i){console.error("destroyThis 在异步销毁时出错",this,i)}return c(this),!0}destroySync(){if(!this.canDestroy)return this.isDestroyed;let t=this._destroyers.length;for(;--t>=0;){const i=this._destroyers[t];try{i()}catch(n){console.error("销毁函数在同步销毁时出错",this,i,n)}}this._destroyers.length=0;try{this.destroyThis()}catch(i){console.error("destroyThis 在异步销毁时出错",this,i)}return c(this),!0}}return s}class _ extends l.EventBus{constructor(){super(...arguments);y(this,"refCount",0);y(this,"_isDestroyed",!1);y(this,"_destroyers",[])}get isDestroyed(){return this._isDestroyed}get canDestroy(){return!this.isDestroyed&&this.refCount<=0}disposeFun(e){return this._destroyers.push(e),e}cancelDisposeFun(e){const r=this._destroyers.indexOf(e);return this._destroyers.splice(r,1),e}disposeObj(e,r){const t=r?function(){return e.destroySync()}:function(){return e.destroy()};return this.disposeFun(t),e.__destroyable_destroyer=t,e}cancelDisposeObj(e){const r=e.__destroyable_destroyer;return r&&this.cancelDisposeFun(r),e}dispose(e,r){return typeof e=="function"?this.disposeFun(e):this.disposeObj(e,r)}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 r=this._destroyers[e];try{r()}catch(t){console.error("销毁函数在同步销毁时出错",this,r,t)}}this._destroyers.length=0;try{this.destroyThis()}catch(r){console.error("destroyThis 在异步销毁时出错",this,r)}return c(this),!0}async destroy(){if(!this.canDestroy)return this.isDestroyed;let e=this._destroyers.length;for(;--e>=0;){const r=this._destroyers[e];try{const t=r();t&&t instanceof Promise&&await t}catch(t){console.error("销毁函数在异步销毁时出错",this,r,t)}}this._destroyers.length=0;try{const r=this.destroyThis();r&&r instanceof Promise&&await r}catch(r){console.error("destroyThis 在异步销毁时出错",this,r)}return c(this),!0}}exports.Destroyable=d;exports.DestroyableEventTarget=_;exports.createDestroyableSubClass=D;exports.destroyDestroyable=c;exports.destroyObject=f;exports.throwOnDestroyed=h;
|