@matter/general 0.13.0-alpha.0-20250318-c1aa38b08 → 0.13.0-alpha.0-20250322-f085fa576
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/cjs/codec/DnsCodec.js +1 -1
- package/dist/cjs/codec/DnsCodec.js.map +1 -1
- package/dist/cjs/log/Logger.d.ts +11 -6
- package/dist/cjs/log/Logger.d.ts.map +1 -1
- package/dist/cjs/log/Logger.js +19 -8
- package/dist/cjs/log/Logger.js.map +1 -1
- package/dist/cjs/time/Time.d.ts +1 -0
- package/dist/cjs/time/Time.d.ts.map +1 -1
- package/dist/cjs/time/Time.js +3 -0
- package/dist/cjs/time/Time.js.map +1 -1
- package/dist/cjs/transaction/Participant.d.ts +3 -3
- package/dist/cjs/transaction/Participant.d.ts.map +1 -1
- package/dist/cjs/transaction/Transaction.d.ts +20 -20
- package/dist/cjs/transaction/Tx.js +3 -3
- package/dist/cjs/transaction/Tx.js.map +1 -1
- package/dist/cjs/util/Construction.js +2 -2
- package/dist/cjs/util/Construction.js.map +1 -1
- package/dist/cjs/util/DataReadQueue.d.ts +4 -0
- package/dist/cjs/util/DataReadQueue.d.ts.map +1 -1
- package/dist/cjs/util/DataReadQueue.js +6 -0
- package/dist/cjs/util/DataReadQueue.js.map +1 -1
- package/dist/cjs/util/FormattedText.js +4 -2
- package/dist/cjs/util/FormattedText.js.map +1 -1
- package/dist/cjs/util/Observable.d.ts +137 -12
- package/dist/cjs/util/Observable.d.ts.map +1 -1
- package/dist/cjs/util/Observable.js +297 -35
- package/dist/cjs/util/Observable.js.map +2 -2
- package/dist/esm/codec/DnsCodec.js +1 -1
- package/dist/esm/codec/DnsCodec.js.map +1 -1
- package/dist/esm/log/Logger.d.ts +11 -6
- package/dist/esm/log/Logger.d.ts.map +1 -1
- package/dist/esm/log/Logger.js +19 -8
- package/dist/esm/log/Logger.js.map +1 -1
- package/dist/esm/time/Time.d.ts +1 -0
- package/dist/esm/time/Time.d.ts.map +1 -1
- package/dist/esm/time/Time.js +3 -0
- package/dist/esm/time/Time.js.map +1 -1
- package/dist/esm/transaction/Participant.d.ts +3 -3
- package/dist/esm/transaction/Participant.d.ts.map +1 -1
- package/dist/esm/transaction/Transaction.d.ts +20 -20
- package/dist/esm/transaction/Tx.js +3 -3
- package/dist/esm/transaction/Tx.js.map +1 -1
- package/dist/esm/util/Construction.js +2 -2
- package/dist/esm/util/Construction.js.map +1 -1
- package/dist/esm/util/DataReadQueue.d.ts +4 -0
- package/dist/esm/util/DataReadQueue.d.ts.map +1 -1
- package/dist/esm/util/DataReadQueue.js +6 -0
- package/dist/esm/util/DataReadQueue.js.map +1 -1
- package/dist/esm/util/FormattedText.js +4 -2
- package/dist/esm/util/FormattedText.js.map +1 -1
- package/dist/esm/util/Observable.d.ts +137 -12
- package/dist/esm/util/Observable.d.ts.map +1 -1
- package/dist/esm/util/Observable.js +297 -35
- package/dist/esm/util/Observable.js.map +2 -2
- package/package.json +2 -2
- package/src/codec/DnsCodec.ts +1 -1
- package/src/log/Logger.ts +26 -11
- package/src/time/Time.ts +4 -0
- package/src/transaction/Participant.ts +3 -3
- package/src/transaction/Transaction.ts +1 -1
- package/src/transaction/Tx.ts +3 -3
- package/src/util/Construction.ts +2 -2
- package/src/util/DataReadQueue.ts +7 -0
- package/src/util/FormattedText.ts +4 -2
- package/src/util/Observable.ts +453 -47
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/util/FormattedText.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,oBAAkD;AARlD;AAAA;AAAA;AAAA;AAAA;AAMA,MAAM,cAAc;AAUb,SAAS,cAAc,MAAc,QAAQ,KAAK;AACrD,QAAM,YAAY,gBAAgB,IAAI;AACtC,SAAO,gBAAgB,WAAW,KAAK;AAC3C;AAEA,IAAK,WAAL,kBAAKA,cAAL;AACI,EAAAA,UAAA,aAAU;AACV,EAAAA,UAAA,aAAU;AACV,EAAAA,UAAA,aAAU;AACV,EAAAA,UAAA,aAAU;AACV,EAAAA,UAAA,aAAU;AACV,EAAAA,UAAA,aAAU;AACV,EAAAA,UAAA,aAAU;AACV,EAAAA,UAAA,aAAU;AACV,EAAAA,UAAA,YAAS;AACT,EAAAA,UAAA,gBAAa;AACb,EAAAA,UAAA,gBAAa;AACb,EAAAA,UAAA,gBAAa;AACb,EAAAA,UAAA,gBAAa;AAbZ,SAAAA;AAAA,GAAA;AAgBL,SAAS,WAAW,MAAc,WAAuB;AACrD,WAAS,UAAU,UAAoB;AACnC,UAAM,WAAW,UAAU,QAAQ,QAAQ;AAC3C,QAAI,YAAY,IAAI;AAChB,gBAAU,KAAK,QAAQ;AAAA,IAC3B,OAAO;AACH,gBAAU,SAAS,WAAW;AAAA,IAClC;AAAA,EACJ;AAEA,aAAW,SAAS,OAAO,OAAO,QAAQ,GAAG;AACzC,QAAI,KAAK,CAAC,MAAM,SAAS,KAAK,CAAC,MAAM,KAAK;AACtC,gBAAU,KAAK,CAAC,CAAa;AAC7B;AAAA,IACJ;AAAA,EACJ;AAEA,WAAS,kBAAkB,MAAc,UAAoB,OAAe;AACxE,QAAI,CAAC,KAAK,MAAM,IAAI,GAAG;AACnB,aAAO;AAAA,IACX;AAEA,QAAI,UAAU,QAAQ,QAAQ,KAAK,MAAM,KAAK,WAAW,GAAG,KAAK,GAAG,GAAG;AACnE,gBAAU,QAAQ;AAClB,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX;AAEA,MAAI,kBAAkB,UAAU,uBAAiB,GAAG,EAAG;AACvD,MAAI,kBAAkB,aAAa,0BAAqB,GAAG,EAAG;AAC9D,MAAI,kBAAkB,aAAa,0BAAqB,GAAG,EAAG;AAC9D,MAAI,kBAAkB,aAAa,0BAAqB,GAAG,EAAG;AAC9D,MAAI,kBAAkB,aAAa,0BAAqB,GAAG,EAAG;AAE9D,YAAU,SAAS;AACvB;AAOA,SAAS,cAAc,MAAc;AACjC,QAAM,QAAQ,KAAK,MAAM,oBAAoB;AAC7C,MAAI,OAAO;AACP,WAAO,EAAE,QAAQ,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,EAAE;AAAA,EAC9C;AACA,SAAO,EAAE,QAAQ,MAAM,MAAM,GAAG;AACpC;AAEA,SAAS,gBAAgB,MAA6B;AAClD,MAAI,QAAQ,IAAI;AACZ,WAAO,EAAE,aAAa,GAAG,SAAS,CAAC,EAAE;AAAA,EACzC;AACA,QAAM,aAAa,KAAK,MAAM,KAAK,EAAE,IAAI,eAAa,UAAU,KAAK,EAAE,QAAQ,QAAQ,GAAG,CAAC;AAC3F,MAAI,CAAC,WAAW,QAAQ;AACpB,WAAO,EAAE,aAAa,GAAG,SAAS,CAAC,EAAE;AAAA,EACzC;AAEA,QAAM,YAAY,MAAgB;AAClC,MAAI,QAAQ;AAEZ,WAAS,eAAe;AACpB,UAAM,QAAQ,UAAU;AACxB,UAAM,YAAY;AAAA,MACd,aAAa;AAAA,MACb,SAAS,CAAC;AAAA,IACd;AAEA,WAAO,QAAQ,WAAW,QAAQ;AAC9B,iBAAW,WAAW,KAAK,GAAG,SAAS;AAGvC,UAAI,UAAU,SAAS,OAAO;AAC1B;AAAA,MACJ;AAGA,UAAI,UAAU,SAAS,OAAO;AAC1B,kBAAU,QAAQ,KAAK,aAAa,CAAC;AACrC,YAAI,UAAU,SAAS,SAAS,SAAS,WAAW,QAAQ;AACxD;AAAA,QACJ;AAAA,MACJ;AAGA,gBAAU,QAAQ,KAAK,WAAW,KAAK,CAAC;AAGxC,UAAI,OAAO;AACP,cAAM,EAAE,OAAO,IAAI,cAAc,WAAW,KAAK,CAAC;AAClD,YAAI,OAAO,SAAS,UAAU,aAAa;AACvC,oBAAU,cAAc,OAAO;AAAA,QACnC;AAAA,MACJ;AAGA;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAEA,SAAO,aAAa;AACxB;AAEA,SAAS,cAAc,OAAe,MAAgB,WAAmB,SAAiB,aAAqB;AAC3G,QAAM,WAAW,MAAM,MAAM,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,oBAAkD;AARlD;AAAA;AAAA;AAAA;AAAA;AAMA,MAAM,cAAc;AAUb,SAAS,cAAc,MAAc,QAAQ,KAAK;AACrD,QAAM,YAAY,gBAAgB,IAAI;AACtC,SAAO,gBAAgB,WAAW,KAAK;AAC3C;AAEA,IAAK,WAAL,kBAAKA,cAAL;AACI,EAAAA,UAAA,aAAU;AACV,EAAAA,UAAA,aAAU;AACV,EAAAA,UAAA,aAAU;AACV,EAAAA,UAAA,aAAU;AACV,EAAAA,UAAA,aAAU;AACV,EAAAA,UAAA,aAAU;AACV,EAAAA,UAAA,aAAU;AACV,EAAAA,UAAA,aAAU;AACV,EAAAA,UAAA,YAAS;AACT,EAAAA,UAAA,gBAAa;AACb,EAAAA,UAAA,gBAAa;AACb,EAAAA,UAAA,gBAAa;AACb,EAAAA,UAAA,gBAAa;AAbZ,SAAAA;AAAA,GAAA;AAgBL,SAAS,WAAW,MAAc,WAAuB;AACrD,WAAS,UAAU,UAAoB;AACnC,UAAM,WAAW,UAAU,QAAQ,QAAQ;AAC3C,QAAI,YAAY,IAAI;AAChB,gBAAU,KAAK,QAAQ;AAAA,IAC3B,OAAO;AACH,gBAAU,SAAS,WAAW;AAAA,IAClC;AAAA,EACJ;AAEA,aAAW,SAAS,OAAO,OAAO,QAAQ,GAAG;AACzC,QAAI,KAAK,CAAC,MAAM,SAAS,KAAK,CAAC,MAAM,KAAK;AACtC,gBAAU,KAAK,CAAC,CAAa;AAC7B;AAAA,IACJ;AAAA,EACJ;AAEA,WAAS,kBAAkB,MAAc,UAAoB,OAAe;AACxE,QAAI,CAAC,KAAK,MAAM,IAAI,GAAG;AACnB,aAAO;AAAA,IACX;AAEA,QAAI,UAAU,QAAQ,QAAQ,KAAK,MAAM,KAAK,WAAW,GAAG,KAAK,GAAG,GAAG;AACnE,gBAAU,QAAQ;AAClB,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX;AAEA,MAAI,kBAAkB,UAAU,uBAAiB,GAAG,EAAG;AACvD,MAAI,kBAAkB,aAAa,0BAAqB,GAAG,EAAG;AAC9D,MAAI,kBAAkB,aAAa,0BAAqB,GAAG,EAAG;AAC9D,MAAI,kBAAkB,aAAa,0BAAqB,GAAG,EAAG;AAC9D,MAAI,kBAAkB,aAAa,0BAAqB,GAAG,EAAG;AAE9D,YAAU,SAAS;AACvB;AAOA,SAAS,cAAc,MAAc;AACjC,QAAM,QAAQ,KAAK,MAAM,oBAAoB;AAC7C,MAAI,OAAO;AACP,WAAO,EAAE,QAAQ,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,EAAE;AAAA,EAC9C;AACA,SAAO,EAAE,QAAQ,MAAM,MAAM,GAAG;AACpC;AAEA,SAAS,gBAAgB,MAA6B;AAClD,MAAI,QAAQ,IAAI;AACZ,WAAO,EAAE,aAAa,GAAG,SAAS,CAAC,EAAE;AAAA,EACzC;AACA,QAAM,aAAa,KAAK,MAAM,KAAK,EAAE,IAAI,eAAa,UAAU,KAAK,EAAE,QAAQ,QAAQ,GAAG,CAAC;AAC3F,MAAI,CAAC,WAAW,QAAQ;AACpB,WAAO,EAAE,aAAa,GAAG,SAAS,CAAC,EAAE;AAAA,EACzC;AAEA,QAAM,YAAY,MAAgB;AAClC,MAAI,QAAQ;AAEZ,WAAS,eAAe;AACpB,UAAM,QAAQ,UAAU;AACxB,UAAM,YAAY;AAAA,MACd,aAAa;AAAA,MACb,SAAS,CAAC;AAAA,IACd;AAEA,WAAO,QAAQ,WAAW,QAAQ;AAC9B,iBAAW,WAAW,KAAK,GAAG,SAAS;AAGvC,UAAI,UAAU,SAAS,OAAO;AAC1B;AAAA,MACJ;AAGA,UAAI,UAAU,SAAS,OAAO;AAC1B,kBAAU,QAAQ,KAAK,aAAa,CAAC;AACrC,YAAI,UAAU,SAAS,SAAS,SAAS,WAAW,QAAQ;AACxD;AAAA,QACJ;AAAA,MACJ;AAGA,gBAAU,QAAQ,KAAK,WAAW,KAAK,CAAC;AAGxC,UAAI,OAAO;AACP,cAAM,EAAE,OAAO,IAAI,cAAc,WAAW,KAAK,CAAC;AAClD,YAAI,OAAO,SAAS,UAAU,aAAa;AACvC,oBAAU,cAAc,OAAO;AAAA,QACnC;AAAA,MACJ;AAGA;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAEA,SAAO,aAAa;AACxB;AAEA,SAAS,cAAc,OAAe,MAAgB,WAAmB,SAAiB,aAAqB;AAC3G,QAAM,WAAW,MAAM,MAAM,KAAK;AAClC,MAAI,CAAC,UAAU;AACX;AAAA,EACJ;AAIA,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACvC,QAAI,CAAC,SAAS,CAAC,EAAE,SAAS,IAAI,GAAG;AAC7B;AAAA,IACJ;AACA,aAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;AACtC,UAAI,SAAS,CAAC,EAAE,SAAS,GAAG,GAAG;AAC3B,iBAAS,OAAO,GAAG,IAAI,IAAI,GAAG,SAAS,MAAM,GAAG,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC;AAChE;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAGA,MAAI;AACJ,MAAI,aAAa;AAEb,iBAAa,GAAG,SAAS,cAAc,GAAG,GAAG;AAAA,EACjD,OAAO;AAEH,iBAAa;AAAA,EACjB;AAGA,QAAM,OAAO,MAAc;AAC3B,MAAI,SAAS;AAGb,MAAI,YAAY;AAChB,MAAI,iBAAiB;AACrB,aAAW,KAAK,UAAU;AACtB,UAAM,gBAAgB,gBAAgB,CAAC;AAGvC,QAAI,UAAU,SAAS,gBAAgB,WAAW;AAC9C,cAAQ;AACR,WAAK,SAAS,SAAS;AACvB,uBAAiB;AAAA,IACrB;AAGA,QAAI,CAAC,KAAK,UAAU,SAAS;AACzB,WAAK,KAAK,GAAG,SAAS,SAAS,GAAG,CAAC;AACnC,gBAAU;AAAA,IACd;AAGA,QAAI,gBAAgB;AAChB,uBAAiB;AACjB,WAAK,KAAK,UAAU;AACpB,gBAAU,WAAW;AAAA,IACzB;AAGA,SAAK,KAAK,CAAC;AACX,SAAK,KAAK,GAAG;AACb,cAAU,gBAAgB;AAAA,EAC9B;AAGA,OAAK,SAAS,KAAK,SAAS;AAC5B,MAAI,KAAK,QAAQ;AACb,YAAQ;AAAA,EACZ;AAEA,WAAS,UAAU;AACf,QAAI,CAAC,WAAW;AACZ,UAAI,KAAK,QAAQ;AACb,aAAK,KAAK,EAAE;AAAA,MAChB;AACA,kBAAY;AAAA,IAChB;AAEA,SAAK,KAAK,KAAK,KAAK,EAAE,CAAC;AAAA,EAC3B;AACJ;AAEA,SAAS,gBAAgB,WAA0B,OAAe;AAC9D,QAAM,QAAQ,MAAc;AAE5B,WAAS,YAAYC,YAA0B,SAAiB;AAC5D,eAAW,SAASA,WAAU,SAAS;AACnC,UAAI,OAAO,SAAS,UAAU;AAC1B,sBAAc,OAAO,OAAO,OAAO,SAASA,WAAU,WAAW;AAAA,MACrE,OAAO;AACH,oBAAY,OAAO,UAAU,WAAW;AAAA,MAC5C;AAAA,IACJ;AAAA,EACJ;AAEA,cAAY,WAAW,CAAC;AAExB,SAAO;AACX;AAEA,SAAS,gBAAgB,MAAc;AACnC,MAAI,SAAS;AACb,WAAS,IAAI,GAAG,IAAI,KAAK,UAAU;AAC/B,YAAQ,KAAK,CAAC,GAAG;AAAA,MACb,KAAK;AAED;AACA,cAAM,OAAO,KAAK,CAAC;AAEnB,YAAK,QAAQ,OAAO,QAAQ,OAAQ,SAAS,OAAO,SAAS,KAAK;AAE9D;AACA;AAAA,QACJ;AAEA,YAAI,SAAS,KAAK;AAEd;AACA,iBAAO,KAAK,CAAC,KAAK,OAAO,KAAK,CAAC,KAAK,KAAK;AAErC;AAAA,UACJ;AACA,iBAAO,KAAK,CAAC,KAAK,OAAO,KAAK,CAAC,KAAK,KAAK;AAErC;AAAA,UACJ;AACA,cAAI,KAAK,CAAC,KAAK,OAAO,KAAK,CAAC,KAAK,KAAK;AAElC;AACA;AAAA,UACJ;AAAA,QACJ;AAEA;AAAA,MAEJ,KAAK;AAED;AACA;AAAA,MAEJ;AACI;AACA;AACA;AAAA,IACR;AAAA,EACJ;AACA,SAAO;AACX;",
|
|
5
5
|
"names": ["ListType", "structure"]
|
|
6
6
|
}
|
|
@@ -55,11 +55,36 @@ export interface Observable<T extends any[] = any[], R = void> extends AsyncIter
|
|
|
55
55
|
*/
|
|
56
56
|
isObservedBy(observer: Observer<T, R>): boolean;
|
|
57
57
|
/**
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
58
|
+
* Errors throw by observers will interrupt emitters unless an error handler is installed here and the handler does
|
|
59
|
+
* not rethrow.
|
|
60
|
+
*
|
|
61
|
+
* The only exception to this is if {@link handlePromise} is false and an observer is asynchronous. In this case
|
|
62
|
+
* the emitter cannot be made aware of the exception.
|
|
63
|
+
*/
|
|
64
|
+
handleError: ObserverErrorHandler;
|
|
65
|
+
/**
|
|
66
|
+
* We allow emitters to be async, but we do not want to overburden either the emitter or the observer with promise
|
|
67
|
+
* tracking if the lifetime of the observer is not relevant to the emitter.
|
|
68
|
+
*
|
|
69
|
+
* To facilitate this we allow observables to be configured in one of three promise handling modes:
|
|
70
|
+
*
|
|
71
|
+
* * If you set handlePromise, isAsync is true; the handler is invoked for any observer promise
|
|
72
|
+
*
|
|
73
|
+
* * If isAsync is true but you do not set handlePromise, any observer promise is returned to the emitter which must
|
|
74
|
+
* handle the promise
|
|
75
|
+
*
|
|
76
|
+
* * If isAsync is false, we log observer promise errors but the promise is otherwise untracked
|
|
77
|
+
*
|
|
78
|
+
* If the promiseHandler returns a promise or is true and the emitter returns a promise, the observable will emit to
|
|
79
|
+
* successive observers only after the promise resolves.
|
|
80
|
+
*/
|
|
81
|
+
isAsync: boolean;
|
|
82
|
+
/**
|
|
83
|
+
* A promise handler.
|
|
84
|
+
*
|
|
85
|
+
* If you set {@link isAsync} (either true or false) the promise handler is set by the Observable.
|
|
61
86
|
*/
|
|
62
|
-
|
|
87
|
+
handlePromise: ObserverPromiseHandler | boolean;
|
|
63
88
|
/**
|
|
64
89
|
* Observable supports standard "for await (const value of observable").
|
|
65
90
|
*
|
|
@@ -81,18 +106,22 @@ export declare const observant: unique symbol;
|
|
|
81
106
|
* An {@link Observable} that explicitly supports asynchronous observers.
|
|
82
107
|
*/
|
|
83
108
|
export interface AsyncObservable<T extends any[] = any[], R = void> extends Observable<T, MaybePromise<R>> {
|
|
84
|
-
isAsync: true;
|
|
85
109
|
}
|
|
86
110
|
export type ObserverErrorHandler = (error: Error, observer: Observer<any[], any>) => void;
|
|
111
|
+
export type ObserverPromiseHandler = (promise: Promise<unknown>, observer: Observer<any[], any>) => unknown;
|
|
87
112
|
/**
|
|
88
113
|
* A concrete {@link Observable} implementation.
|
|
89
114
|
*/
|
|
90
115
|
export declare class BasicObservable<T extends any[] = any[], R = void> implements Observable<T, R> {
|
|
91
116
|
#private;
|
|
92
|
-
constructor(
|
|
117
|
+
constructor(handleError?: ObserverErrorHandler, asyncConfig?: ObserverPromiseHandler | boolean);
|
|
93
118
|
[Symbol.dispose](): void;
|
|
94
|
-
|
|
95
|
-
|
|
119
|
+
set handleError(handleError: ObserverErrorHandler);
|
|
120
|
+
get handleError(): ObserverErrorHandler;
|
|
121
|
+
set isAsync(isAsync: boolean);
|
|
122
|
+
get isAsync(): boolean;
|
|
123
|
+
set handlePromise(handlePromise: ObserverPromiseHandler);
|
|
124
|
+
get handlePromise(): ObserverPromiseHandler;
|
|
96
125
|
get isObserved(): boolean;
|
|
97
126
|
isObservedBy(observer: Observer<T, R>): boolean;
|
|
98
127
|
emit(...payload: T): R | undefined;
|
|
@@ -113,8 +142,8 @@ export declare const Observable: {
|
|
|
113
142
|
* Create an {@link AsyncObservable} that explicitly supports asynchronous results
|
|
114
143
|
*/
|
|
115
144
|
export declare const AsyncObservable: {
|
|
116
|
-
new <T extends any[], R = void>(
|
|
117
|
-
<T extends any[], R = void>(
|
|
145
|
+
new <T extends any[], R = void>(handleError?: ObserverErrorHandler): AsyncObservable<T, R>;
|
|
146
|
+
<T extends any[], R = void>(handleError?: ObserverErrorHandler): AsyncObservable<T, R>;
|
|
118
147
|
};
|
|
119
148
|
/**
|
|
120
149
|
* A set of observables. You can bind events using individual observables or the methods emulating a subset Node's
|
|
@@ -123,9 +152,13 @@ export declare const AsyncObservable: {
|
|
|
123
152
|
* To maintain type safety, implementers define events as observable child properties.
|
|
124
153
|
*/
|
|
125
154
|
export declare class EventEmitter {
|
|
155
|
+
private events?;
|
|
126
156
|
emit<This, N extends EventEmitter.NamesOf<This>>(this: This, name: N, ...payload: EventEmitter.PayloadOf<This, N>): void;
|
|
127
157
|
addListener<This, N extends EventEmitter.NamesOf<This>>(this: This, name: N, handler: EventEmitter.ObserverOf<This, N>): void;
|
|
128
158
|
removeListener<This, N extends EventEmitter.NamesOf<This>>(this: This, name: N, handler: EventEmitter.ObserverOf<This, N>): void;
|
|
159
|
+
addEvent(name: string, event?: Observable): void;
|
|
160
|
+
getEvent(name: string): Observable<any[], void>;
|
|
161
|
+
hasEvent(name: string, onlyIfInitialized?: boolean): boolean | Observable<any[], void> | undefined;
|
|
129
162
|
get eventNames(): string[];
|
|
130
163
|
[Symbol.dispose](): void;
|
|
131
164
|
}
|
|
@@ -151,7 +184,7 @@ export declare namespace EventEmitter {
|
|
|
151
184
|
/**
|
|
152
185
|
* An {@link Observable} that proxies to another {@link Observable}.
|
|
153
186
|
*
|
|
154
|
-
*
|
|
187
|
+
* Events emitted here instead emit on the target {@link Observable}. Events emitted on the target emit locally via
|
|
155
188
|
* a listener installed by the proxy.
|
|
156
189
|
*
|
|
157
190
|
* This is useful for managing a subset of {@link Observer}s for an {@link Observable}.
|
|
@@ -162,9 +195,9 @@ export declare class ObservableProxy extends BasicObservable {
|
|
|
162
195
|
#private;
|
|
163
196
|
constructor(target: Observable);
|
|
164
197
|
[Symbol.dispose](): void;
|
|
165
|
-
get isAsync(): boolean | undefined;
|
|
166
198
|
get isObserved(): boolean;
|
|
167
199
|
emit: (...payload: any) => any | undefined;
|
|
200
|
+
protected get target(): Observable<any[], void>;
|
|
168
201
|
}
|
|
169
202
|
/**
|
|
170
203
|
* A collection of observers managed as a unit. This makes it convenient to deregister multiple observers when an
|
|
@@ -201,4 +234,96 @@ export declare namespace ObserverGroup {
|
|
|
201
234
|
*/
|
|
202
235
|
type VarArgs<T extends any[]> = T extends [...infer R, infer A] ? [...R, A] : T extends [infer A] ? A : [];
|
|
203
236
|
}
|
|
237
|
+
/**
|
|
238
|
+
* An {@link Observable} that emits an algorithmically-reduced number of events.
|
|
239
|
+
*/
|
|
240
|
+
export declare class QuietObservable<T extends any[] = any[]> extends BasicObservable<T> implements QuietObservable.State<T> {
|
|
241
|
+
#private;
|
|
242
|
+
constructor(config?: QuietObservable.Configuration<T>);
|
|
243
|
+
get config(): QuietObservable.Configuration<T>;
|
|
244
|
+
set config(config: QuietObservable.Configuration<T>);
|
|
245
|
+
get emitAutomatically(): boolean;
|
|
246
|
+
set emitAutomatically(value: boolean);
|
|
247
|
+
get suppressionEnabled(): boolean;
|
|
248
|
+
set suppressionEnabled(value: boolean);
|
|
249
|
+
get minimumEmitIntervalMs(): number;
|
|
250
|
+
set minimumEmitIntervalMs(value: number);
|
|
251
|
+
get source(): Observable<T> | undefined;
|
|
252
|
+
set source(source: Observable<T> | undefined);
|
|
253
|
+
get sink(): Observable<T> | undefined;
|
|
254
|
+
set sink(sink: Observable<T> | undefined);
|
|
255
|
+
get shouldEmit(): QuietObservable.EmitPredicate<T> | undefined;
|
|
256
|
+
set shouldEmit(shouldEmit: QuietObservable.EmitPredicate<T> | undefined);
|
|
257
|
+
get isObserved(): boolean;
|
|
258
|
+
isObservedBy(observer: Observer<T>): boolean;
|
|
259
|
+
emit(...payload: T): void;
|
|
260
|
+
/**
|
|
261
|
+
* Emit immediately, regardless of suppression configuration.
|
|
262
|
+
*/
|
|
263
|
+
emitNow(): void;
|
|
264
|
+
/**
|
|
265
|
+
* Emit as soon as allowed by suppression.
|
|
266
|
+
*/
|
|
267
|
+
emitSoon(): void;
|
|
268
|
+
[Symbol.dispose](): void;
|
|
269
|
+
}
|
|
270
|
+
export declare namespace QuietObservable {
|
|
271
|
+
interface State<T extends any[] = any[]> {
|
|
272
|
+
/**
|
|
273
|
+
* If true this observable will emit within the suppression constraints. If false it will only emit after calls
|
|
274
|
+
* to {@link emitSoon} or {@link emitNow}.
|
|
275
|
+
*/
|
|
276
|
+
emitAutomatically: boolean;
|
|
277
|
+
/**
|
|
278
|
+
* If true then emit rate is constrained. If false emits will occur immediately.
|
|
279
|
+
*/
|
|
280
|
+
suppressionEnabled: boolean;
|
|
281
|
+
/**
|
|
282
|
+
* The minimum time between emits in milliseconds.
|
|
283
|
+
*/
|
|
284
|
+
minimumEmitIntervalMs: number;
|
|
285
|
+
/**
|
|
286
|
+
* An input observable this observable will automatically observe to produce events.
|
|
287
|
+
*/
|
|
288
|
+
source?: Observable<T>;
|
|
289
|
+
/**
|
|
290
|
+
* An output observable this observable will automatically emit to whenever it emits.
|
|
291
|
+
*/
|
|
292
|
+
sink?: Observable<T>;
|
|
293
|
+
/**
|
|
294
|
+
* A predicate that determine whether a payload should emit.
|
|
295
|
+
*/
|
|
296
|
+
shouldEmit?: EmitPredicate<T>;
|
|
297
|
+
/**
|
|
298
|
+
* Handler for errors returned by observers.
|
|
299
|
+
*/
|
|
300
|
+
handleError?: ObserverErrorHandler;
|
|
301
|
+
/**
|
|
302
|
+
* Designates async support (overridden if you supply {@link handlePromise}).
|
|
303
|
+
*/
|
|
304
|
+
isAsync?: boolean;
|
|
305
|
+
/**
|
|
306
|
+
* Handler for promises returned by observers.
|
|
307
|
+
*/
|
|
308
|
+
handlePromise?: ObserverPromiseHandler;
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* An emit predicate may emit this value to force immediate emit.
|
|
312
|
+
*/
|
|
313
|
+
const now = "now";
|
|
314
|
+
/**
|
|
315
|
+
* The return value of an emit predicate. "true" allows the event to emit as normal, "false" prevents the event
|
|
316
|
+
* from emitting, and {@link now} forces immediate emit regardless of interval configuration.
|
|
317
|
+
*/
|
|
318
|
+
type EmitDirective = true | false | typeof now;
|
|
319
|
+
/**
|
|
320
|
+
* A predicate that may filter emits manually.
|
|
321
|
+
*/
|
|
322
|
+
interface EmitPredicate<T extends any[] = any[]> {
|
|
323
|
+
(...payload: T): EmitDirective;
|
|
324
|
+
}
|
|
325
|
+
interface Configuration<T extends any[] = any[]> extends Partial<State<T>> {
|
|
326
|
+
}
|
|
327
|
+
const defaults: State;
|
|
328
|
+
}
|
|
204
329
|
//# sourceMappingURL=Observable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Observable.d.ts","sourceRoot":"","sources":["../../../src/util/Observable.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"Observable.d.ts","sourceRoot":"","sources":["../../../src/util/Observable.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,9 +24,11 @@ __export(Observable_exports, {
|
|
|
24
24
|
Observable: () => Observable,
|
|
25
25
|
ObservableProxy: () => ObservableProxy,
|
|
26
26
|
ObserverGroup: () => ObserverGroup,
|
|
27
|
+
QuietObservable: () => QuietObservable,
|
|
27
28
|
observant: () => observant
|
|
28
29
|
});
|
|
29
30
|
module.exports = __toCommonJS(Observable_exports);
|
|
31
|
+
var import_Time = require("#time/Time.js");
|
|
30
32
|
var import_MatterError = require("../MatterError.js");
|
|
31
33
|
var import_Logger = require("../log/Logger.js");
|
|
32
34
|
var import_disposable = require("../polyfills/disposable.js");
|
|
@@ -43,26 +45,63 @@ function defaultErrorHandler(error) {
|
|
|
43
45
|
throw error;
|
|
44
46
|
}
|
|
45
47
|
class BasicObservable {
|
|
46
|
-
#
|
|
48
|
+
#handleError;
|
|
49
|
+
#isAsync;
|
|
50
|
+
#handlePromise;
|
|
47
51
|
#observers;
|
|
48
52
|
#once;
|
|
49
|
-
#isAsync;
|
|
50
53
|
#joinIteration;
|
|
51
54
|
#removeIterator;
|
|
52
55
|
#stopIteration;
|
|
53
|
-
constructor(
|
|
54
|
-
this
|
|
55
|
-
|
|
56
|
+
constructor(handleError, asyncConfig) {
|
|
57
|
+
this.handleError = handleError ?? defaultErrorHandler;
|
|
58
|
+
if (typeof asyncConfig === "function") {
|
|
59
|
+
this.handlePromise = asyncConfig;
|
|
60
|
+
} else {
|
|
61
|
+
this.isAsync = asyncConfig ?? false;
|
|
62
|
+
}
|
|
56
63
|
}
|
|
57
64
|
[Symbol.dispose]() {
|
|
58
65
|
this.#observers = this.#once = void 0;
|
|
59
66
|
this.#stopIteration?.();
|
|
60
67
|
}
|
|
61
|
-
|
|
62
|
-
|
|
68
|
+
set handleError(handleError) {
|
|
69
|
+
this.#handleError = handleError;
|
|
70
|
+
}
|
|
71
|
+
get handleError() {
|
|
72
|
+
return this.#handleError;
|
|
63
73
|
}
|
|
64
74
|
set isAsync(isAsync) {
|
|
65
75
|
this.#isAsync = isAsync;
|
|
76
|
+
if (isAsync) {
|
|
77
|
+
this.#handlePromise = (promise) => promise;
|
|
78
|
+
} else {
|
|
79
|
+
this.#handlePromise = (promise, observer) => {
|
|
80
|
+
promise.catch((error) => {
|
|
81
|
+
let identity;
|
|
82
|
+
if (observer.name) {
|
|
83
|
+
identity = ` "${observer.name}"`;
|
|
84
|
+
} else {
|
|
85
|
+
identity = "";
|
|
86
|
+
}
|
|
87
|
+
if (this.#handleError === defaultErrorHandler) {
|
|
88
|
+
logger.error(`Unhandled error in async observer${identity}:`, error);
|
|
89
|
+
} else {
|
|
90
|
+
this.#handleError(error, observer);
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
get isAsync() {
|
|
97
|
+
return this.#isAsync;
|
|
98
|
+
}
|
|
99
|
+
set handlePromise(handlePromise) {
|
|
100
|
+
this.isAsync = true;
|
|
101
|
+
this.#handlePromise = handlePromise;
|
|
102
|
+
}
|
|
103
|
+
get handlePromise() {
|
|
104
|
+
return this.#handlePromise;
|
|
66
105
|
}
|
|
67
106
|
get isObserved() {
|
|
68
107
|
if (this.#observers) {
|
|
@@ -99,7 +138,7 @@ class BasicObservable {
|
|
|
99
138
|
try {
|
|
100
139
|
result = observer(...payload);
|
|
101
140
|
} catch (e) {
|
|
102
|
-
this.#
|
|
141
|
+
this.#handleError((0, import_Error.asError)(e), observer);
|
|
103
142
|
}
|
|
104
143
|
if (this.#once?.has(observer)) {
|
|
105
144
|
this.#once.delete(observer);
|
|
@@ -109,25 +148,18 @@ class BasicObservable {
|
|
|
109
148
|
continue;
|
|
110
149
|
}
|
|
111
150
|
if (import_Promises.MaybePromise.is(result)) {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
);
|
|
151
|
+
result = this.#handlePromise(Promise.resolve(result), observer);
|
|
152
|
+
if (import_Promises.MaybePromise.is(result)) {
|
|
153
|
+
return result.then((result2) => {
|
|
154
|
+
if (result2 === void 0) {
|
|
155
|
+
return emitNext();
|
|
156
|
+
}
|
|
157
|
+
return result2;
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
if (result === void 0) {
|
|
123
161
|
continue;
|
|
124
162
|
}
|
|
125
|
-
return result.then((result2) => {
|
|
126
|
-
if (result2 === void 0) {
|
|
127
|
-
return emitNext();
|
|
128
|
-
}
|
|
129
|
-
return result2;
|
|
130
|
-
});
|
|
131
163
|
}
|
|
132
164
|
return result;
|
|
133
165
|
}
|
|
@@ -204,12 +236,12 @@ class BasicObservable {
|
|
|
204
236
|
};
|
|
205
237
|
}
|
|
206
238
|
}
|
|
207
|
-
function constructObservable(
|
|
208
|
-
return new BasicObservable(
|
|
239
|
+
function constructObservable(handleError) {
|
|
240
|
+
return new BasicObservable(handleError);
|
|
209
241
|
}
|
|
210
242
|
const Observable = constructObservable;
|
|
211
|
-
function constructAsyncObservable(
|
|
212
|
-
return new BasicObservable(
|
|
243
|
+
function constructAsyncObservable(handleError) {
|
|
244
|
+
return new BasicObservable(handleError, true);
|
|
213
245
|
}
|
|
214
246
|
const AsyncObservable = constructAsyncObservable;
|
|
215
247
|
function event(emitter, name) {
|
|
@@ -220,6 +252,8 @@ function event(emitter, name) {
|
|
|
220
252
|
return observer;
|
|
221
253
|
}
|
|
222
254
|
class EventEmitter {
|
|
255
|
+
// True private screws up TS types
|
|
256
|
+
events;
|
|
223
257
|
emit(name, ...payload) {
|
|
224
258
|
event(this, name).emit(...payload);
|
|
225
259
|
}
|
|
@@ -229,13 +263,32 @@ class EventEmitter {
|
|
|
229
263
|
removeListener(name, handler) {
|
|
230
264
|
event(this, name).off(handler);
|
|
231
265
|
}
|
|
266
|
+
addEvent(name, event2) {
|
|
267
|
+
if (!this.events) {
|
|
268
|
+
this.events = {};
|
|
269
|
+
}
|
|
270
|
+
this.events[name] = event2;
|
|
271
|
+
}
|
|
272
|
+
getEvent(name) {
|
|
273
|
+
if (!this.events || !(name in this.events)) {
|
|
274
|
+
throw new import_MatterError.ImplementationError(`No such event ${name}`);
|
|
275
|
+
}
|
|
276
|
+
return this.events[name] ?? (this.events[name] = Observable());
|
|
277
|
+
}
|
|
278
|
+
hasEvent(name, onlyIfInitialized = false) {
|
|
279
|
+
return this.events && (onlyIfInitialized ? this.events[name] : name in this.events);
|
|
280
|
+
}
|
|
232
281
|
get eventNames() {
|
|
233
|
-
return Object.keys(this
|
|
282
|
+
return this.events ? Object.keys(this.events) : [];
|
|
234
283
|
}
|
|
235
284
|
[Symbol.dispose]() {
|
|
236
|
-
|
|
237
|
-
|
|
285
|
+
if (!this.events) {
|
|
286
|
+
return;
|
|
287
|
+
}
|
|
288
|
+
for (const event2 of Object.values(this.events)) {
|
|
289
|
+
event2?.[Symbol.dispose]?.();
|
|
238
290
|
}
|
|
291
|
+
this.events = void 0;
|
|
239
292
|
}
|
|
240
293
|
}
|
|
241
294
|
class ObservableProxy extends BasicObservable {
|
|
@@ -256,13 +309,13 @@ class ObservableProxy extends BasicObservable {
|
|
|
256
309
|
this.#target.off(this.#emitter);
|
|
257
310
|
super[Symbol.dispose]();
|
|
258
311
|
}
|
|
259
|
-
get isAsync() {
|
|
260
|
-
return this.#target.isAsync;
|
|
261
|
-
}
|
|
262
312
|
get isObserved() {
|
|
263
313
|
return this.#target.isObserved;
|
|
264
314
|
}
|
|
265
315
|
emit;
|
|
316
|
+
get target() {
|
|
317
|
+
return this.#target;
|
|
318
|
+
}
|
|
266
319
|
}
|
|
267
320
|
class ObserverGroup {
|
|
268
321
|
#defaultTarget;
|
|
@@ -334,4 +387,213 @@ class ObserverGroup {
|
|
|
334
387
|
this.#boundObservers.clear();
|
|
335
388
|
}
|
|
336
389
|
}
|
|
390
|
+
class QuietObservable extends BasicObservable {
|
|
391
|
+
#emitAutomatically = QuietObservable.defaults.emitAutomatically;
|
|
392
|
+
#suppressionEnabled = QuietObservable.defaults.suppressionEnabled;
|
|
393
|
+
#minimumEmitIntervalMs = QuietObservable.defaults.minimumEmitIntervalMs;
|
|
394
|
+
#shouldEmit;
|
|
395
|
+
#source;
|
|
396
|
+
#sink;
|
|
397
|
+
#sourceObserver;
|
|
398
|
+
#sinkObserver;
|
|
399
|
+
#deferredPayload;
|
|
400
|
+
#lastEmitAt;
|
|
401
|
+
#emitTimer;
|
|
402
|
+
constructor(config) {
|
|
403
|
+
super();
|
|
404
|
+
if (config) {
|
|
405
|
+
this.config = config;
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
get config() {
|
|
409
|
+
return this;
|
|
410
|
+
}
|
|
411
|
+
set config(config) {
|
|
412
|
+
const { suppressionEnabled, minimumEmitIntervalMs, emitAutomatically } = config;
|
|
413
|
+
if (emitAutomatically !== void 0) {
|
|
414
|
+
this.emitAutomatically = emitAutomatically;
|
|
415
|
+
}
|
|
416
|
+
if (suppressionEnabled !== void 0) {
|
|
417
|
+
this.suppressionEnabled = suppressionEnabled;
|
|
418
|
+
}
|
|
419
|
+
if (minimumEmitIntervalMs !== void 0) {
|
|
420
|
+
this.minimumEmitIntervalMs = minimumEmitIntervalMs;
|
|
421
|
+
}
|
|
422
|
+
if ("shouldEmit" in config) {
|
|
423
|
+
this.shouldEmit = config.shouldEmit;
|
|
424
|
+
}
|
|
425
|
+
if ("source" in config) {
|
|
426
|
+
this.source = config.source;
|
|
427
|
+
}
|
|
428
|
+
if ("sink" in config) {
|
|
429
|
+
this.sink = config.sink;
|
|
430
|
+
}
|
|
431
|
+
if ("handleError" in config) {
|
|
432
|
+
this.handleError = config.handleError ?? defaultErrorHandler;
|
|
433
|
+
}
|
|
434
|
+
if ("handlePromise" in config && config.handlePromise) {
|
|
435
|
+
this.handlePromise = config.handlePromise;
|
|
436
|
+
} else {
|
|
437
|
+
this.isAsync = config.isAsync ?? false;
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
get emitAutomatically() {
|
|
441
|
+
return this.#emitAutomatically;
|
|
442
|
+
}
|
|
443
|
+
set emitAutomatically(value) {
|
|
444
|
+
this.#emitAutomatically = value;
|
|
445
|
+
if (value) {
|
|
446
|
+
this.emitSoon();
|
|
447
|
+
} else if (this.#emitTimer) {
|
|
448
|
+
this.#stop();
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
get suppressionEnabled() {
|
|
452
|
+
return this.#suppressionEnabled;
|
|
453
|
+
}
|
|
454
|
+
set suppressionEnabled(value) {
|
|
455
|
+
this.#suppressionEnabled = value;
|
|
456
|
+
}
|
|
457
|
+
get minimumEmitIntervalMs() {
|
|
458
|
+
return this.#minimumEmitIntervalMs;
|
|
459
|
+
}
|
|
460
|
+
set minimumEmitIntervalMs(value) {
|
|
461
|
+
if (this.#minimumEmitIntervalMs === value) {
|
|
462
|
+
return;
|
|
463
|
+
}
|
|
464
|
+
const needStart = this.#emitTimer !== void 0;
|
|
465
|
+
if (needStart) {
|
|
466
|
+
this.#stop();
|
|
467
|
+
}
|
|
468
|
+
this.#minimumEmitIntervalMs = value;
|
|
469
|
+
if (needStart) {
|
|
470
|
+
this.#start();
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
get source() {
|
|
474
|
+
return this.#source;
|
|
475
|
+
}
|
|
476
|
+
set source(source) {
|
|
477
|
+
if (this.#source === source) {
|
|
478
|
+
return;
|
|
479
|
+
}
|
|
480
|
+
if (this.#source && this.#sourceObserver) {
|
|
481
|
+
this.#source.off(this.#sourceObserver);
|
|
482
|
+
} else if (this.#sourceObserver === void 0) {
|
|
483
|
+
this.#sourceObserver = (...payload) => this.emit(...payload);
|
|
484
|
+
}
|
|
485
|
+
this.#source = source;
|
|
486
|
+
if (source) {
|
|
487
|
+
source.on(this.#sourceObserver);
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
get sink() {
|
|
491
|
+
return this.#sink;
|
|
492
|
+
}
|
|
493
|
+
set sink(sink) {
|
|
494
|
+
if (this.#sink === sink) {
|
|
495
|
+
return;
|
|
496
|
+
}
|
|
497
|
+
if (this.#sink && this.#sinkObserver) {
|
|
498
|
+
this.off(this.#sinkObserver);
|
|
499
|
+
}
|
|
500
|
+
this.#sink = sink;
|
|
501
|
+
if (sink) {
|
|
502
|
+
this.#sinkObserver = (...payload) => sink.emit(...payload);
|
|
503
|
+
this.#sinkObserver[observant] = false;
|
|
504
|
+
this.on(this.#sinkObserver);
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
get shouldEmit() {
|
|
508
|
+
return this.#shouldEmit;
|
|
509
|
+
}
|
|
510
|
+
set shouldEmit(shouldEmit) {
|
|
511
|
+
this.#shouldEmit = shouldEmit;
|
|
512
|
+
if (this.#deferredPayload && shouldEmit?.(...this.#deferredPayload) === false) {
|
|
513
|
+
this.#deferredPayload = void 0;
|
|
514
|
+
this.#stop();
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
get isObserved() {
|
|
518
|
+
return super.isObserved || this.#sink?.isObserved || false;
|
|
519
|
+
}
|
|
520
|
+
isObservedBy(observer) {
|
|
521
|
+
return this.#sink?.isObservedBy(observer) || this.isObservedBy(observer) || false;
|
|
522
|
+
}
|
|
523
|
+
emit(...payload) {
|
|
524
|
+
const shouldEmit = this.#shouldEmit?.(...payload);
|
|
525
|
+
if (shouldEmit === false) {
|
|
526
|
+
return;
|
|
527
|
+
}
|
|
528
|
+
const immediate = shouldEmit === "now";
|
|
529
|
+
if (!immediate && !this.#emitAutomatically) {
|
|
530
|
+
this.#deferredPayload = payload;
|
|
531
|
+
return;
|
|
532
|
+
}
|
|
533
|
+
const now = import_Time.Time.nowMs();
|
|
534
|
+
if (immediate || !this.#suppressionEnabled || this.#lastEmitAt === void 0 || this.#lastEmitAt + this.#minimumEmitIntervalMs < now) {
|
|
535
|
+
return this.#emit(payload, now);
|
|
536
|
+
}
|
|
537
|
+
this.#deferredPayload = payload;
|
|
538
|
+
this.#start(now);
|
|
539
|
+
}
|
|
540
|
+
/**
|
|
541
|
+
* Emit immediately, regardless of suppression configuration.
|
|
542
|
+
*/
|
|
543
|
+
emitNow() {
|
|
544
|
+
this.#stop();
|
|
545
|
+
if (this.#deferredPayload) {
|
|
546
|
+
this.#emit(this.#deferredPayload);
|
|
547
|
+
this.#deferredPayload = void 0;
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
/**
|
|
551
|
+
* Emit as soon as allowed by suppression.
|
|
552
|
+
*/
|
|
553
|
+
emitSoon() {
|
|
554
|
+
if (this.#deferredPayload && this.#emitTimer === void 0) {
|
|
555
|
+
this.#start();
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
[Symbol.dispose]() {
|
|
559
|
+
this.#stop();
|
|
560
|
+
}
|
|
561
|
+
#emit(payload, now) {
|
|
562
|
+
this.#deferredPayload = void 0;
|
|
563
|
+
this.#lastEmitAt = now ?? import_Time.Time.nowMs();
|
|
564
|
+
this.#stop();
|
|
565
|
+
super.emit(...payload);
|
|
566
|
+
}
|
|
567
|
+
#start(now) {
|
|
568
|
+
if (this.#emitTimer || this.#deferredPayload === void 0) {
|
|
569
|
+
return;
|
|
570
|
+
}
|
|
571
|
+
let timeout;
|
|
572
|
+
if (this.#lastEmitAt === void 0) {
|
|
573
|
+
timeout = 0;
|
|
574
|
+
} else {
|
|
575
|
+
timeout = this.#minimumEmitIntervalMs - ((now ?? import_Time.Time.nowMs()) - this.#lastEmitAt);
|
|
576
|
+
}
|
|
577
|
+
if (timeout <= 0) {
|
|
578
|
+
this.emitNow();
|
|
579
|
+
} else {
|
|
580
|
+
this.#emitTimer = import_Time.Time.getTimer("delayed emit", timeout, this.emitNow.bind(this));
|
|
581
|
+
this.#emitTimer.start();
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
#stop() {
|
|
585
|
+
if (this.#emitTimer) {
|
|
586
|
+
this.#emitTimer.stop();
|
|
587
|
+
this.#emitTimer = void 0;
|
|
588
|
+
}
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
((QuietObservable2) => {
|
|
592
|
+
QuietObservable2.now = "now";
|
|
593
|
+
QuietObservable2.defaults = {
|
|
594
|
+
emitAutomatically: true,
|
|
595
|
+
suppressionEnabled: true,
|
|
596
|
+
minimumEmitIntervalMs: 1e3
|
|
597
|
+
};
|
|
598
|
+
})(QuietObservable || (QuietObservable = {}));
|
|
337
599
|
//# sourceMappingURL=Observable.js.map
|