@dxos/async 0.8.4-main.84f28bd → 0.8.4-main.a4bbb77
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/lib/browser/index.mjs +397 -251
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +397 -251
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/callback.d.ts +2 -1
- package/dist/types/src/callback.d.ts.map +1 -1
- package/dist/types/src/chain.d.ts +1 -1
- package/dist/types/src/chain.d.ts.map +1 -1
- package/dist/types/src/cleanup.d.ts +1 -1
- package/dist/types/src/cleanup.d.ts.map +1 -1
- package/dist/types/src/debounce.d.ts +16 -2
- package/dist/types/src/debounce.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +0 -5
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/task-scheduling.d.ts.map +1 -1
- package/dist/types/src/testing.d.ts +13 -0
- package/dist/types/src/testing.d.ts.map +1 -1
- package/dist/types/src/timeout.d.ts +1 -1
- package/dist/types/src/timeout.d.ts.map +1 -1
- package/dist/types/src/trigger.d.ts +11 -0
- package/dist/types/src/trigger.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -9
- package/src/callback.ts +3 -3
- package/src/chain.ts +1 -1
- package/src/cleanup.ts +3 -3
- package/src/debounce.test.ts +69 -12
- package/src/debounce.ts +32 -11
- package/src/event-emitter.test.ts +2 -1
- package/src/index.ts +0 -5
- package/src/observable-value.test.ts +1 -1
- package/src/persistent-lifecycle.test.ts +1 -1
- package/src/task-scheduling.ts +1 -1
- package/src/testing.test.ts +41 -1
- package/src/testing.ts +53 -0
- package/src/timeout.ts +23 -22
- package/src/trigger.ts +58 -1
- package/src/update-scheduler.ts +1 -1
- package/dist/types/src/latch.d.ts +0 -11
- package/dist/types/src/latch.d.ts.map +0 -1
- package/dist/types/src/sink.d.ts +0 -6
- package/dist/types/src/sink.d.ts.map +0 -1
- package/dist/types/src/throttle.d.ts +0 -2
- package/dist/types/src/throttle.d.ts.map +0 -1
- package/dist/types/src/throttle.test.d.ts +0 -2
- package/dist/types/src/throttle.test.d.ts.map +0 -1
- package/dist/types/src/types.d.ts +0 -2
- package/dist/types/src/types.d.ts.map +0 -1
- package/dist/types/src/until.d.ts +0 -14
- package/dist/types/src/until.d.ts.map +0 -1
- package/dist/types/src/until.test.d.ts +0 -2
- package/dist/types/src/until.test.d.ts.map +0 -1
- package/src/latch.ts +0 -60
- package/src/sink.ts +0 -26
- package/src/throttle.test.ts +0 -65
- package/src/throttle.ts +0 -14
- package/src/types.ts +0 -5
- package/src/until.test.ts +0 -47
- package/src/until.ts +0 -58
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/callback.ts
|
|
2
|
-
var
|
|
2
|
+
var promiseFromCallback = (run) => new Promise((resolve, reject) => {
|
|
3
3
|
run((error, value) => {
|
|
4
4
|
if (error) {
|
|
5
5
|
reject(error);
|
|
@@ -10,9 +10,9 @@ var createPromiseFromCallback = (run) => new Promise((resolve, reject) => {
|
|
|
10
10
|
});
|
|
11
11
|
|
|
12
12
|
// src/chain.ts
|
|
13
|
-
var
|
|
13
|
+
var chain = (chain2) => async (elements) => {
|
|
14
14
|
let result = await elements;
|
|
15
|
-
for (const part of
|
|
15
|
+
for (const part of chain2) {
|
|
16
16
|
result = await Promise.all(result.map(async (element) => await part(element)));
|
|
17
17
|
}
|
|
18
18
|
return result;
|
|
@@ -20,6 +20,19 @@ var asyncChain = (chain) => async (elements) => {
|
|
|
20
20
|
|
|
21
21
|
// src/cleanup.ts
|
|
22
22
|
import { ComplexMap } from "@dxos/util";
|
|
23
|
+
function _define_property(obj, key, value) {
|
|
24
|
+
if (key in obj) {
|
|
25
|
+
Object.defineProperty(obj, key, {
|
|
26
|
+
value,
|
|
27
|
+
enumerable: true,
|
|
28
|
+
configurable: true,
|
|
29
|
+
writable: true
|
|
30
|
+
});
|
|
31
|
+
} else {
|
|
32
|
+
obj[key] = value;
|
|
33
|
+
}
|
|
34
|
+
return obj;
|
|
35
|
+
}
|
|
23
36
|
var combine = (...cleanupFns) => {
|
|
24
37
|
return () => {
|
|
25
38
|
cleanupFns.flat().forEach((cleanupFn) => cleanupFn());
|
|
@@ -33,14 +46,11 @@ var interval = (cb, ms) => {
|
|
|
33
46
|
const t = setInterval(cb, ms);
|
|
34
47
|
return () => clearInterval(t);
|
|
35
48
|
};
|
|
36
|
-
|
|
49
|
+
var addEventListener = (target, type, listener, options) => {
|
|
37
50
|
target.addEventListener(type, listener, options);
|
|
38
51
|
return () => target.removeEventListener(type, listener, options);
|
|
39
|
-
}
|
|
52
|
+
};
|
|
40
53
|
var SubscriptionList = class {
|
|
41
|
-
constructor() {
|
|
42
|
-
this._cleanups = [];
|
|
43
|
-
}
|
|
44
54
|
add(cb) {
|
|
45
55
|
this._cleanups.push(cb);
|
|
46
56
|
return this;
|
|
@@ -49,11 +59,11 @@ var SubscriptionList = class {
|
|
|
49
59
|
this._cleanups.forEach((cb) => cb());
|
|
50
60
|
this._cleanups.length = 0;
|
|
51
61
|
}
|
|
62
|
+
constructor() {
|
|
63
|
+
_define_property(this, "_cleanups", []);
|
|
64
|
+
}
|
|
52
65
|
};
|
|
53
66
|
var SubscriptionSet = class {
|
|
54
|
-
constructor(keyProjection) {
|
|
55
|
-
this._cleanupMap = new ComplexMap(keyProjection);
|
|
56
|
-
}
|
|
57
67
|
set(key, cb) {
|
|
58
68
|
this._cleanupMap.set(key, cb);
|
|
59
69
|
return this;
|
|
@@ -62,31 +72,33 @@ var SubscriptionSet = class {
|
|
|
62
72
|
this._cleanupMap.forEach((cb) => cb());
|
|
63
73
|
this._cleanupMap.clear();
|
|
64
74
|
}
|
|
75
|
+
constructor(keyProjection) {
|
|
76
|
+
_define_property(this, "_cleanupMap", void 0);
|
|
77
|
+
this._cleanupMap = new ComplexMap(keyProjection);
|
|
78
|
+
}
|
|
65
79
|
};
|
|
66
80
|
|
|
67
|
-
// src/
|
|
68
|
-
var
|
|
81
|
+
// src/debounce.ts
|
|
82
|
+
var debounce = (cb, delay = 100) => {
|
|
83
|
+
let t;
|
|
84
|
+
return (...args) => {
|
|
85
|
+
clearTimeout(t);
|
|
86
|
+
t = setTimeout(() => cb(...args), delay);
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
var throttle = (cb, delay = 100) => {
|
|
69
90
|
let lastCall = 0;
|
|
70
91
|
return (...args) => {
|
|
71
92
|
const now = Date.now();
|
|
72
|
-
if (now - lastCall >=
|
|
93
|
+
if (now - lastCall >= delay) {
|
|
73
94
|
cb(...args);
|
|
74
95
|
lastCall = now;
|
|
75
96
|
}
|
|
76
97
|
};
|
|
77
98
|
};
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
let t;
|
|
82
|
-
return (...args) => {
|
|
83
|
-
clearTimeout(t);
|
|
84
|
-
t = setTimeout(() => cb(...args), wait);
|
|
85
|
-
};
|
|
86
|
-
};
|
|
87
|
-
var debounceAndThrottle = (cb, wait = 100) => {
|
|
88
|
-
const debounced = debounce(cb, wait);
|
|
89
|
-
const throttled = throttle(cb, wait);
|
|
99
|
+
var debounceAndThrottle = (cb, delay = 100) => {
|
|
100
|
+
const debounced = debounce(cb, delay);
|
|
101
|
+
const throttled = throttle(cb, delay);
|
|
90
102
|
return (...args) => {
|
|
91
103
|
debounced(...args);
|
|
92
104
|
throttled(...args);
|
|
@@ -124,6 +136,23 @@ var sleep = (ms) => {
|
|
|
124
136
|
sleeper();
|
|
125
137
|
});
|
|
126
138
|
};
|
|
139
|
+
var sleepWithContext = (ctx, ms) => {
|
|
140
|
+
const error = new ContextDisposedError();
|
|
141
|
+
return new Promise((resolve, reject) => {
|
|
142
|
+
if (ctx.disposed) {
|
|
143
|
+
reject(error);
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
const timeout2 = setTimeout(() => {
|
|
147
|
+
clearDispose();
|
|
148
|
+
resolve();
|
|
149
|
+
}, ms);
|
|
150
|
+
const clearDispose = ctx.onDispose(() => {
|
|
151
|
+
clearTimeout(timeout2);
|
|
152
|
+
reject(error);
|
|
153
|
+
});
|
|
154
|
+
});
|
|
155
|
+
};
|
|
127
156
|
var asyncReturn = () => sleep(0);
|
|
128
157
|
var asyncTimeout = async (promise, timeout2, err) => {
|
|
129
158
|
let timeoutId;
|
|
@@ -134,7 +163,7 @@ var asyncTimeout = async (promise, timeout2, err) => {
|
|
|
134
163
|
}, timeout2);
|
|
135
164
|
unrefTimeout(timeoutId);
|
|
136
165
|
});
|
|
137
|
-
const conditionTimeout = typeof promise === "function" ?
|
|
166
|
+
const conditionTimeout = typeof promise === "function" ? promiseFromCallback(promise) : promise;
|
|
138
167
|
return await Promise.race([
|
|
139
168
|
conditionTimeout,
|
|
140
169
|
timeoutPromise
|
|
@@ -147,23 +176,6 @@ var unrefTimeout = (timeoutId) => {
|
|
|
147
176
|
timeoutId.unref();
|
|
148
177
|
}
|
|
149
178
|
};
|
|
150
|
-
var sleepWithContext = (ctx, ms) => {
|
|
151
|
-
const error = new ContextDisposedError();
|
|
152
|
-
return new Promise((resolve, reject) => {
|
|
153
|
-
if (ctx.disposed) {
|
|
154
|
-
reject(error);
|
|
155
|
-
return;
|
|
156
|
-
}
|
|
157
|
-
const timeout2 = setTimeout(() => {
|
|
158
|
-
clearDispose();
|
|
159
|
-
resolve();
|
|
160
|
-
}, ms);
|
|
161
|
-
const clearDispose = ctx.onDispose(() => {
|
|
162
|
-
clearTimeout(timeout2);
|
|
163
|
-
reject(error);
|
|
164
|
-
});
|
|
165
|
-
});
|
|
166
|
-
};
|
|
167
179
|
|
|
168
180
|
// src/event-emitter.ts
|
|
169
181
|
var onEvent = (eventEmitter, eventName, callback) => {
|
|
@@ -190,13 +202,22 @@ var waitForEvent = (eventEmitter, eventName, test, timeout2, error) => {
|
|
|
190
202
|
|
|
191
203
|
// src/events.ts
|
|
192
204
|
import { Context } from "@dxos/context";
|
|
205
|
+
function _define_property2(obj, key, value) {
|
|
206
|
+
if (key in obj) {
|
|
207
|
+
Object.defineProperty(obj, key, {
|
|
208
|
+
value,
|
|
209
|
+
enumerable: true,
|
|
210
|
+
configurable: true,
|
|
211
|
+
writable: true
|
|
212
|
+
});
|
|
213
|
+
} else {
|
|
214
|
+
obj[key] = value;
|
|
215
|
+
}
|
|
216
|
+
return obj;
|
|
217
|
+
}
|
|
193
218
|
var __dxlog_file = "/__w/dxos/dxos/packages/common/async/src/events.ts";
|
|
194
219
|
var DO_NOT_ERROR_ON_ASYNC_CALLBACK = true;
|
|
195
220
|
var Event = class _Event {
|
|
196
|
-
constructor() {
|
|
197
|
-
this._listeners = /* @__PURE__ */ new Set();
|
|
198
|
-
this._effects = /* @__PURE__ */ new Set();
|
|
199
|
-
}
|
|
200
221
|
/**
|
|
201
222
|
* Wrap objects that have on/off style event emitters.
|
|
202
223
|
*/
|
|
@@ -450,26 +471,12 @@ var Event = class _Event {
|
|
|
450
471
|
handle.cleanup = void 0;
|
|
451
472
|
}
|
|
452
473
|
}
|
|
474
|
+
constructor() {
|
|
475
|
+
_define_property2(this, "_listeners", /* @__PURE__ */ new Set());
|
|
476
|
+
_define_property2(this, "_effects", /* @__PURE__ */ new Set());
|
|
477
|
+
}
|
|
453
478
|
};
|
|
454
479
|
var EventListener = class {
|
|
455
|
-
constructor(event, listener, ctx, once, weak) {
|
|
456
|
-
this.ctx = ctx;
|
|
457
|
-
this.once = once;
|
|
458
|
-
this.weak = weak;
|
|
459
|
-
this._clearDispose = void 0;
|
|
460
|
-
this._clearDispose = ctx.onDispose(() => {
|
|
461
|
-
event._removeListener(this);
|
|
462
|
-
});
|
|
463
|
-
if (weak) {
|
|
464
|
-
this.callback = new WeakRef(listener);
|
|
465
|
-
weakListeners().registry?.register(listener, {
|
|
466
|
-
event: new WeakRef(event),
|
|
467
|
-
listener: this
|
|
468
|
-
}, this);
|
|
469
|
-
} else {
|
|
470
|
-
this.callback = listener;
|
|
471
|
-
}
|
|
472
|
-
}
|
|
473
480
|
derefCallback() {
|
|
474
481
|
return this.weak ? this.callback.deref() : this.callback;
|
|
475
482
|
}
|
|
@@ -499,6 +506,29 @@ var EventListener = class {
|
|
|
499
506
|
this._clearDispose?.();
|
|
500
507
|
weakListeners().registry?.unregister(this);
|
|
501
508
|
}
|
|
509
|
+
constructor(event, listener, ctx, once, weak) {
|
|
510
|
+
_define_property2(this, "ctx", void 0);
|
|
511
|
+
_define_property2(this, "once", void 0);
|
|
512
|
+
_define_property2(this, "weak", void 0);
|
|
513
|
+
_define_property2(this, "callback", void 0);
|
|
514
|
+
_define_property2(this, "_clearDispose", void 0);
|
|
515
|
+
this.ctx = ctx;
|
|
516
|
+
this.once = once;
|
|
517
|
+
this.weak = weak;
|
|
518
|
+
this._clearDispose = void 0;
|
|
519
|
+
this._clearDispose = ctx.onDispose(() => {
|
|
520
|
+
event._removeListener(this);
|
|
521
|
+
});
|
|
522
|
+
if (weak) {
|
|
523
|
+
this.callback = new WeakRef(listener);
|
|
524
|
+
weakListeners().registry?.register(listener, {
|
|
525
|
+
event: new WeakRef(event),
|
|
526
|
+
listener: this
|
|
527
|
+
}, this);
|
|
528
|
+
} else {
|
|
529
|
+
this.callback = listener;
|
|
530
|
+
}
|
|
531
|
+
}
|
|
502
532
|
};
|
|
503
533
|
var weakListenersState = null;
|
|
504
534
|
var FINALIZATION_REGISTRY_SUPPORTED = !!globalThis.FinalizationRegistry;
|
|
@@ -508,73 +538,31 @@ var weakListeners = () => {
|
|
|
508
538
|
registry: void 0
|
|
509
539
|
};
|
|
510
540
|
}
|
|
511
|
-
weakListenersState
|
|
541
|
+
weakListenersState ?? (weakListenersState = new FinalizationRegistry(({ event, listener }) => {
|
|
512
542
|
event.deref()?._removeListener(listener);
|
|
513
|
-
});
|
|
543
|
+
}));
|
|
514
544
|
return {
|
|
515
545
|
registry: weakListenersState
|
|
516
546
|
};
|
|
517
547
|
};
|
|
518
548
|
|
|
519
|
-
// src/latch.ts
|
|
520
|
-
import { invariant } from "@dxos/invariant";
|
|
521
|
-
var __dxlog_file2 = "/__w/dxos/dxos/packages/common/async/src/latch.ts";
|
|
522
|
-
var latch = ({ count = 1, timeout: timeout2 } = {}) => {
|
|
523
|
-
invariant(count >= 0, void 0, {
|
|
524
|
-
F: __dxlog_file2,
|
|
525
|
-
L: 19,
|
|
526
|
-
S: void 0,
|
|
527
|
-
A: [
|
|
528
|
-
"count >= 0",
|
|
529
|
-
""
|
|
530
|
-
]
|
|
531
|
-
});
|
|
532
|
-
let t;
|
|
533
|
-
let doResolve;
|
|
534
|
-
let doReject;
|
|
535
|
-
const promise = new Promise((resolve, reject) => {
|
|
536
|
-
doResolve = (value) => {
|
|
537
|
-
clearTimeout(t);
|
|
538
|
-
resolve(value);
|
|
539
|
-
};
|
|
540
|
-
doReject = (err) => {
|
|
541
|
-
clearTimeout(t);
|
|
542
|
-
reject(err);
|
|
543
|
-
};
|
|
544
|
-
});
|
|
545
|
-
if (count === 0) {
|
|
546
|
-
setTimeout(() => {
|
|
547
|
-
doResolve(0);
|
|
548
|
-
});
|
|
549
|
-
} else {
|
|
550
|
-
if (timeout2) {
|
|
551
|
-
t = setTimeout(() => {
|
|
552
|
-
doReject(new Error(`Timed out after ${timeout2.toLocaleString()}ms`));
|
|
553
|
-
}, timeout2);
|
|
554
|
-
}
|
|
555
|
-
}
|
|
556
|
-
let i = 0;
|
|
557
|
-
return [
|
|
558
|
-
async () => await promise,
|
|
559
|
-
() => {
|
|
560
|
-
if (++i === count) {
|
|
561
|
-
doResolve(i);
|
|
562
|
-
}
|
|
563
|
-
return i;
|
|
564
|
-
},
|
|
565
|
-
(err) => doReject(err)
|
|
566
|
-
];
|
|
567
|
-
};
|
|
568
|
-
|
|
569
549
|
// src/mutex.ts
|
|
570
550
|
import "@dxos/util";
|
|
571
551
|
import { warnAfterTimeout } from "@dxos/debug";
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
552
|
+
function _define_property3(obj, key, value) {
|
|
553
|
+
if (key in obj) {
|
|
554
|
+
Object.defineProperty(obj, key, {
|
|
555
|
+
value,
|
|
556
|
+
enumerable: true,
|
|
557
|
+
configurable: true,
|
|
558
|
+
writable: true
|
|
559
|
+
});
|
|
560
|
+
} else {
|
|
561
|
+
obj[key] = value;
|
|
577
562
|
}
|
|
563
|
+
return obj;
|
|
564
|
+
}
|
|
565
|
+
var Mutex = class {
|
|
578
566
|
get tag() {
|
|
579
567
|
return this._tag;
|
|
580
568
|
}
|
|
@@ -618,11 +606,13 @@ var Mutex = class {
|
|
|
618
606
|
guard.release();
|
|
619
607
|
}
|
|
620
608
|
}
|
|
609
|
+
constructor() {
|
|
610
|
+
_define_property3(this, "_queue", Promise.resolve());
|
|
611
|
+
_define_property3(this, "_queueLength", 0);
|
|
612
|
+
_define_property3(this, "_tag", null);
|
|
613
|
+
}
|
|
621
614
|
};
|
|
622
615
|
var MutexGuard = class {
|
|
623
|
-
constructor(_release) {
|
|
624
|
-
this._release = _release;
|
|
625
|
-
}
|
|
626
616
|
/**
|
|
627
617
|
* Releases the lock.
|
|
628
618
|
*/
|
|
@@ -632,6 +622,10 @@ var MutexGuard = class {
|
|
|
632
622
|
[Symbol.dispose]() {
|
|
633
623
|
this.release();
|
|
634
624
|
}
|
|
625
|
+
constructor(_release) {
|
|
626
|
+
_define_property3(this, "_release", void 0);
|
|
627
|
+
this._release = _release;
|
|
628
|
+
}
|
|
635
629
|
};
|
|
636
630
|
var classMutexSymbol = Symbol("class-mutex");
|
|
637
631
|
var FORCE_DISABLE_WARNING = false;
|
|
@@ -639,7 +633,8 @@ var enableWarning = !FORCE_DISABLE_WARNING && globalThis.mochaExecutor;
|
|
|
639
633
|
var synchronized = (target, propertyName, descriptor) => {
|
|
640
634
|
const method = descriptor.value;
|
|
641
635
|
descriptor.value = async function synchronizedMethod(...args) {
|
|
642
|
-
|
|
636
|
+
var _classMutexSymbol;
|
|
637
|
+
const mutex = this[_classMutexSymbol = classMutexSymbol] ?? (this[_classMutexSymbol] = new Mutex());
|
|
643
638
|
const tag = `${target.constructor.name}.${propertyName}`;
|
|
644
639
|
let guard;
|
|
645
640
|
if (!enableWarning) {
|
|
@@ -663,6 +658,21 @@ import Observable from "zen-observable";
|
|
|
663
658
|
import PushStream from "zen-push";
|
|
664
659
|
|
|
665
660
|
// src/trigger.ts
|
|
661
|
+
import { invariant } from "@dxos/invariant";
|
|
662
|
+
function _define_property4(obj, key, value) {
|
|
663
|
+
if (key in obj) {
|
|
664
|
+
Object.defineProperty(obj, key, {
|
|
665
|
+
value,
|
|
666
|
+
enumerable: true,
|
|
667
|
+
configurable: true,
|
|
668
|
+
writable: true
|
|
669
|
+
});
|
|
670
|
+
} else {
|
|
671
|
+
obj[key] = value;
|
|
672
|
+
}
|
|
673
|
+
return obj;
|
|
674
|
+
}
|
|
675
|
+
var __dxlog_file2 = "/__w/dxos/dxos/packages/common/async/src/trigger.ts";
|
|
666
676
|
var trigger = (timeout2) => {
|
|
667
677
|
let callback;
|
|
668
678
|
const promise = new Promise((resolve, reject) => {
|
|
@@ -678,20 +688,13 @@ var trigger = (timeout2) => {
|
|
|
678
688
|
resolver
|
|
679
689
|
];
|
|
680
690
|
};
|
|
681
|
-
var TriggerState = /* @__PURE__ */ function(TriggerState2) {
|
|
691
|
+
var TriggerState = /* @__PURE__ */ (function(TriggerState2) {
|
|
682
692
|
TriggerState2["WAITING"] = "WAITING";
|
|
683
693
|
TriggerState2["RESOLVED"] = "RESOLVED";
|
|
684
694
|
TriggerState2["REJECTED"] = "REJECTED";
|
|
685
695
|
return TriggerState2;
|
|
686
|
-
}({});
|
|
696
|
+
})({});
|
|
687
697
|
var Trigger = class {
|
|
688
|
-
constructor(_options = {
|
|
689
|
-
autoReset: false
|
|
690
|
-
}) {
|
|
691
|
-
this._options = _options;
|
|
692
|
-
this._state = "WAITING";
|
|
693
|
-
this.reset();
|
|
694
|
-
}
|
|
695
698
|
get state() {
|
|
696
699
|
return this._state;
|
|
697
700
|
}
|
|
@@ -748,27 +751,81 @@ var Trigger = class {
|
|
|
748
751
|
}
|
|
749
752
|
return this;
|
|
750
753
|
}
|
|
754
|
+
constructor(_options = {
|
|
755
|
+
autoReset: false
|
|
756
|
+
}) {
|
|
757
|
+
_define_property4(this, "_options", void 0);
|
|
758
|
+
_define_property4(this, "_promise", void 0);
|
|
759
|
+
_define_property4(this, "_resolve", void 0);
|
|
760
|
+
_define_property4(this, "_reject", void 0);
|
|
761
|
+
_define_property4(this, "_state", void 0);
|
|
762
|
+
this._options = _options;
|
|
763
|
+
this._state = "WAITING";
|
|
764
|
+
this.reset();
|
|
765
|
+
}
|
|
766
|
+
};
|
|
767
|
+
var latch = ({ count = 1, timeout: timeout2 } = {}) => {
|
|
768
|
+
invariant(count >= 0, void 0, {
|
|
769
|
+
F: __dxlog_file2,
|
|
770
|
+
L: 139,
|
|
771
|
+
S: void 0,
|
|
772
|
+
A: [
|
|
773
|
+
"count >= 0",
|
|
774
|
+
""
|
|
775
|
+
]
|
|
776
|
+
});
|
|
777
|
+
let t;
|
|
778
|
+
let doResolve;
|
|
779
|
+
let doReject;
|
|
780
|
+
const promise = new Promise((resolve, reject) => {
|
|
781
|
+
doResolve = (value) => {
|
|
782
|
+
clearTimeout(t);
|
|
783
|
+
resolve(value);
|
|
784
|
+
};
|
|
785
|
+
doReject = (err) => {
|
|
786
|
+
clearTimeout(t);
|
|
787
|
+
reject(err);
|
|
788
|
+
};
|
|
789
|
+
});
|
|
790
|
+
if (count === 0) {
|
|
791
|
+
setTimeout(() => {
|
|
792
|
+
doResolve(0);
|
|
793
|
+
});
|
|
794
|
+
} else {
|
|
795
|
+
if (timeout2) {
|
|
796
|
+
t = setTimeout(() => {
|
|
797
|
+
doReject(new Error(`Timed out after ${timeout2.toLocaleString()}ms`));
|
|
798
|
+
}, timeout2);
|
|
799
|
+
}
|
|
800
|
+
}
|
|
801
|
+
let i = 0;
|
|
802
|
+
return [
|
|
803
|
+
async () => await promise,
|
|
804
|
+
() => {
|
|
805
|
+
if (++i === count) {
|
|
806
|
+
doResolve(i);
|
|
807
|
+
}
|
|
808
|
+
return i;
|
|
809
|
+
},
|
|
810
|
+
(err) => doReject(err)
|
|
811
|
+
];
|
|
751
812
|
};
|
|
752
813
|
|
|
753
814
|
// src/observable.ts
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
complete: () => {
|
|
765
|
-
this._completed.wake();
|
|
766
|
-
this._observers.forEach((observer) => observer.complete?.());
|
|
767
|
-
}
|
|
768
|
-
};
|
|
769
|
-
this._observable = typeof subscriber === "function" ? new Observable(subscriber) : subscriber;
|
|
770
|
-
this._observable.subscribe(this._handlers);
|
|
815
|
+
function _define_property5(obj, key, value) {
|
|
816
|
+
if (key in obj) {
|
|
817
|
+
Object.defineProperty(obj, key, {
|
|
818
|
+
value,
|
|
819
|
+
enumerable: true,
|
|
820
|
+
configurable: true,
|
|
821
|
+
writable: true
|
|
822
|
+
});
|
|
823
|
+
} else {
|
|
824
|
+
obj[key] = value;
|
|
771
825
|
}
|
|
826
|
+
return obj;
|
|
827
|
+
}
|
|
828
|
+
var MulticastObservable = class _MulticastObservable extends Observable {
|
|
772
829
|
static from(value, initialValue) {
|
|
773
830
|
if ("emit" in value) {
|
|
774
831
|
return new _MulticastObservable((observer) => {
|
|
@@ -849,18 +906,42 @@ var MulticastObservable = class _MulticastObservable extends Observable {
|
|
|
849
906
|
this._observers.delete(observer);
|
|
850
907
|
};
|
|
851
908
|
}
|
|
909
|
+
constructor(subscriber, _value) {
|
|
910
|
+
super((observer) => this._subscribe(observer)), _define_property5(this, "_value", void 0), _define_property5(this, "_observers", void 0), _define_property5(this, "_observable", void 0), _define_property5(this, "_completed", void 0), _define_property5(this, "_handlers", void 0), this._value = _value, this._observers = /* @__PURE__ */ new Set(), this._completed = new Trigger(), this._handlers = {
|
|
911
|
+
next: (value) => {
|
|
912
|
+
this._value = value;
|
|
913
|
+
this._observers.forEach((observer) => observer.next?.(value));
|
|
914
|
+
},
|
|
915
|
+
error: (err) => {
|
|
916
|
+
this._observers.forEach((observer) => observer.error?.(err));
|
|
917
|
+
},
|
|
918
|
+
complete: () => {
|
|
919
|
+
this._completed.wake();
|
|
920
|
+
this._observers.forEach((observer) => observer.complete?.());
|
|
921
|
+
}
|
|
922
|
+
};
|
|
923
|
+
this._observable = typeof subscriber === "function" ? new Observable(subscriber) : subscriber;
|
|
924
|
+
this._observable.subscribe(this._handlers);
|
|
925
|
+
}
|
|
852
926
|
};
|
|
853
927
|
var EMPTY_OBSERVABLE = MulticastObservable.of(null);
|
|
854
928
|
|
|
855
929
|
// src/observable-value.ts
|
|
856
930
|
import { createSetDispatch } from "@dxos/util";
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
931
|
+
function _define_property6(obj, key, value) {
|
|
932
|
+
if (key in obj) {
|
|
933
|
+
Object.defineProperty(obj, key, {
|
|
934
|
+
value,
|
|
935
|
+
enumerable: true,
|
|
936
|
+
configurable: true,
|
|
937
|
+
writable: true
|
|
862
938
|
});
|
|
939
|
+
} else {
|
|
940
|
+
obj[key] = value;
|
|
863
941
|
}
|
|
942
|
+
return obj;
|
|
943
|
+
}
|
|
944
|
+
var ObservableProvider = class {
|
|
864
945
|
/**
|
|
865
946
|
* Proxy used to dispatch callbacks to each subscription.
|
|
866
947
|
*/
|
|
@@ -879,11 +960,15 @@ var ObservableProvider = class {
|
|
|
879
960
|
this._handlers.delete(handler);
|
|
880
961
|
};
|
|
881
962
|
}
|
|
963
|
+
constructor() {
|
|
964
|
+
_define_property6(this, "_handlers", /* @__PURE__ */ new Set());
|
|
965
|
+
_define_property6(this, "_proxy", createSetDispatch({
|
|
966
|
+
handlers: this._handlers
|
|
967
|
+
}));
|
|
968
|
+
_define_property6(this, "_value", void 0);
|
|
969
|
+
}
|
|
882
970
|
};
|
|
883
971
|
var CancellableObservableProvider = class extends ObservableProvider {
|
|
884
|
-
constructor(_handleCancel) {
|
|
885
|
-
super(), this._handleCancel = _handleCancel, this._cancelled = false;
|
|
886
|
-
}
|
|
887
972
|
get cancelled() {
|
|
888
973
|
return this._cancelled;
|
|
889
974
|
}
|
|
@@ -895,6 +980,9 @@ var CancellableObservableProvider = class extends ObservableProvider {
|
|
|
895
980
|
await this._handleCancel?.();
|
|
896
981
|
this.callback.onCancelled?.();
|
|
897
982
|
}
|
|
983
|
+
constructor(_handleCancel) {
|
|
984
|
+
super(), _define_property6(this, "_handleCancel", void 0), _define_property6(this, "_cancelled", void 0), this._handleCancel = _handleCancel, this._cancelled = false;
|
|
985
|
+
}
|
|
898
986
|
};
|
|
899
987
|
|
|
900
988
|
// src/persistent-lifecycle.ts
|
|
@@ -991,14 +1079,20 @@ if (enabled) {
|
|
|
991
1079
|
}
|
|
992
1080
|
|
|
993
1081
|
// src/task-scheduling.ts
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1082
|
+
function _define_property7(obj, key, value) {
|
|
1083
|
+
if (key in obj) {
|
|
1084
|
+
Object.defineProperty(obj, key, {
|
|
1085
|
+
value,
|
|
1086
|
+
enumerable: true,
|
|
1087
|
+
configurable: true,
|
|
1088
|
+
writable: true
|
|
1089
|
+
});
|
|
1090
|
+
} else {
|
|
1091
|
+
obj[key] = value;
|
|
1001
1092
|
}
|
|
1093
|
+
return obj;
|
|
1094
|
+
}
|
|
1095
|
+
var DeferredTask = class {
|
|
1002
1096
|
get scheduled() {
|
|
1003
1097
|
return this._scheduled;
|
|
1004
1098
|
}
|
|
@@ -1037,6 +1131,18 @@ var DeferredTask = class {
|
|
|
1037
1131
|
async join() {
|
|
1038
1132
|
await this._currentTask;
|
|
1039
1133
|
}
|
|
1134
|
+
constructor(_ctx, _callback) {
|
|
1135
|
+
_define_property7(this, "_ctx", void 0);
|
|
1136
|
+
_define_property7(this, "_callback", void 0);
|
|
1137
|
+
_define_property7(this, "_scheduled", void 0);
|
|
1138
|
+
_define_property7(this, "_currentTask", void 0);
|
|
1139
|
+
_define_property7(this, "_nextTask", void 0);
|
|
1140
|
+
this._ctx = _ctx;
|
|
1141
|
+
this._callback = _callback;
|
|
1142
|
+
this._scheduled = false;
|
|
1143
|
+
this._currentTask = null;
|
|
1144
|
+
this._nextTask = new Trigger();
|
|
1145
|
+
}
|
|
1040
1146
|
};
|
|
1041
1147
|
var runInContext = (ctx, fn) => {
|
|
1042
1148
|
try {
|
|
@@ -1117,6 +1223,19 @@ var scheduleExponentialBackoffTaskInterval = (ctx, task, initialInterval) => {
|
|
|
1117
1223
|
};
|
|
1118
1224
|
|
|
1119
1225
|
// src/persistent-lifecycle.ts
|
|
1226
|
+
function _define_property8(obj, key, value) {
|
|
1227
|
+
if (key in obj) {
|
|
1228
|
+
Object.defineProperty(obj, key, {
|
|
1229
|
+
value,
|
|
1230
|
+
enumerable: true,
|
|
1231
|
+
configurable: true,
|
|
1232
|
+
writable: true
|
|
1233
|
+
});
|
|
1234
|
+
} else {
|
|
1235
|
+
obj[key] = value;
|
|
1236
|
+
}
|
|
1237
|
+
return obj;
|
|
1238
|
+
}
|
|
1120
1239
|
function _ts_decorate(decorators, target, key, desc) {
|
|
1121
1240
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1122
1241
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -1127,16 +1246,6 @@ var __dxlog_file4 = "/__w/dxos/dxos/packages/common/async/src/persistent-lifecyc
|
|
|
1127
1246
|
var INIT_RESTART_DELAY = 100;
|
|
1128
1247
|
var DEFAULT_MAX_RESTART_DELAY = 5e3;
|
|
1129
1248
|
var PersistentLifecycle = class extends Resource {
|
|
1130
|
-
constructor({ start, stop, onRestart, maxRestartDelay = DEFAULT_MAX_RESTART_DELAY }) {
|
|
1131
|
-
super();
|
|
1132
|
-
this._currentState = void 0;
|
|
1133
|
-
this._restartTask = void 0;
|
|
1134
|
-
this._restartAfter = 0;
|
|
1135
|
-
this._start = start;
|
|
1136
|
-
this._stop = stop;
|
|
1137
|
-
this._onRestart = onRestart;
|
|
1138
|
-
this._maxRestartDelay = maxRestartDelay;
|
|
1139
|
-
}
|
|
1140
1249
|
get state() {
|
|
1141
1250
|
return this._currentState;
|
|
1142
1251
|
}
|
|
@@ -1219,6 +1328,13 @@ var PersistentLifecycle = class extends Resource {
|
|
|
1219
1328
|
}
|
|
1220
1329
|
this._restartTask.schedule();
|
|
1221
1330
|
}
|
|
1331
|
+
constructor({ start, stop, onRestart, maxRestartDelay = DEFAULT_MAX_RESTART_DELAY }) {
|
|
1332
|
+
super(), _define_property8(this, "_start", void 0), _define_property8(this, "_stop", void 0), _define_property8(this, "_onRestart", void 0), _define_property8(this, "_maxRestartDelay", void 0), _define_property8(this, "_currentState", void 0), _define_property8(this, "_restartTask", void 0), _define_property8(this, "_restartAfter", 0);
|
|
1333
|
+
this._start = start;
|
|
1334
|
+
this._stop = stop;
|
|
1335
|
+
this._onRestart = onRestart;
|
|
1336
|
+
this._maxRestartDelay = maxRestartDelay;
|
|
1337
|
+
}
|
|
1222
1338
|
};
|
|
1223
1339
|
_ts_decorate([
|
|
1224
1340
|
synchronized
|
|
@@ -1293,20 +1409,6 @@ var makePushIterable = () => {
|
|
|
1293
1409
|
};
|
|
1294
1410
|
};
|
|
1295
1411
|
|
|
1296
|
-
// src/sink.ts
|
|
1297
|
-
var sink = (emitter, event, count = 1) => {
|
|
1298
|
-
const [getPromise, resolve] = trigger();
|
|
1299
|
-
let counter = 0;
|
|
1300
|
-
const listener = () => {
|
|
1301
|
-
if (++counter === count) {
|
|
1302
|
-
emitter.off(event, listener);
|
|
1303
|
-
resolve();
|
|
1304
|
-
}
|
|
1305
|
-
};
|
|
1306
|
-
emitter.on(event, listener);
|
|
1307
|
-
return getPromise();
|
|
1308
|
-
};
|
|
1309
|
-
|
|
1310
1412
|
// src/stream-to-array.ts
|
|
1311
1413
|
var streamToArray = (stream) => {
|
|
1312
1414
|
let deferred;
|
|
@@ -1351,12 +1453,20 @@ var streamToArray = (stream) => {
|
|
|
1351
1453
|
|
|
1352
1454
|
// src/test-stream.ts
|
|
1353
1455
|
import { Duplex } from "@dxos/node-std/stream";
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1456
|
+
function _define_property9(obj, key, value) {
|
|
1457
|
+
if (key in obj) {
|
|
1458
|
+
Object.defineProperty(obj, key, {
|
|
1459
|
+
value,
|
|
1460
|
+
enumerable: true,
|
|
1461
|
+
configurable: true,
|
|
1462
|
+
writable: true
|
|
1463
|
+
});
|
|
1464
|
+
} else {
|
|
1465
|
+
obj[key] = value;
|
|
1359
1466
|
}
|
|
1467
|
+
return obj;
|
|
1468
|
+
}
|
|
1469
|
+
var TestStream = class extends Duplex {
|
|
1360
1470
|
static async assertConnectivity(stream1, stream2, { timeout: timeout2 = 200 } = {}) {
|
|
1361
1471
|
stream1.push("ping");
|
|
1362
1472
|
stream2.push("pong");
|
|
@@ -1383,6 +1493,9 @@ var TestStream = class extends Duplex {
|
|
|
1383
1493
|
const dataBuffer = Buffer.isBuffer(data) ? data : Buffer.from(data);
|
|
1384
1494
|
return asyncTimeout(this._onWrite.waitForCondition(() => this._received.equals(dataBuffer)), timeout2);
|
|
1385
1495
|
}
|
|
1496
|
+
constructor(...args) {
|
|
1497
|
+
super(...args), _define_property9(this, "_received", Buffer.alloc(0)), _define_property9(this, "_onWrite", new Event());
|
|
1498
|
+
}
|
|
1386
1499
|
};
|
|
1387
1500
|
|
|
1388
1501
|
// src/testing.ts
|
|
@@ -1410,14 +1523,55 @@ var waitForCondition = ({ condition, timeout: timeout2 = 0, interval: interval2
|
|
|
1410
1523
|
timeout: timeout2
|
|
1411
1524
|
});
|
|
1412
1525
|
};
|
|
1526
|
+
var until = (cb, timeout2) => {
|
|
1527
|
+
return new Promise((resolve, reject) => {
|
|
1528
|
+
const t = timeout2 && setTimeout(() => {
|
|
1529
|
+
reject(new Error(`Timeout after ${t}ms`));
|
|
1530
|
+
}, timeout2);
|
|
1531
|
+
setTimeout(async () => {
|
|
1532
|
+
try {
|
|
1533
|
+
await cb((value) => {
|
|
1534
|
+
t && clearTimeout(t);
|
|
1535
|
+
resolve(value);
|
|
1536
|
+
}, (error) => {
|
|
1537
|
+
t && clearTimeout(t);
|
|
1538
|
+
reject(error);
|
|
1539
|
+
});
|
|
1540
|
+
} catch (err) {
|
|
1541
|
+
reject(err);
|
|
1542
|
+
}
|
|
1543
|
+
});
|
|
1544
|
+
});
|
|
1545
|
+
};
|
|
1546
|
+
var untilPromise = (cb) => cb();
|
|
1547
|
+
var untilError = (cb) => {
|
|
1548
|
+
return new Promise((resolve, reject) => {
|
|
1549
|
+
setTimeout(async () => {
|
|
1550
|
+
try {
|
|
1551
|
+
await cb();
|
|
1552
|
+
reject(new Error("No error was thrown."));
|
|
1553
|
+
} catch (err) {
|
|
1554
|
+
resolve(err);
|
|
1555
|
+
}
|
|
1556
|
+
});
|
|
1557
|
+
});
|
|
1558
|
+
};
|
|
1413
1559
|
|
|
1414
1560
|
// src/timer.ts
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1561
|
+
function _define_property10(obj, key, value) {
|
|
1562
|
+
if (key in obj) {
|
|
1563
|
+
Object.defineProperty(obj, key, {
|
|
1564
|
+
value,
|
|
1565
|
+
enumerable: true,
|
|
1566
|
+
configurable: true,
|
|
1567
|
+
writable: true
|
|
1568
|
+
});
|
|
1569
|
+
} else {
|
|
1570
|
+
obj[key] = value;
|
|
1420
1571
|
}
|
|
1572
|
+
return obj;
|
|
1573
|
+
}
|
|
1574
|
+
var Timer = class {
|
|
1421
1575
|
get state() {
|
|
1422
1576
|
return this._state;
|
|
1423
1577
|
}
|
|
@@ -1457,57 +1611,33 @@ var Timer = class {
|
|
|
1457
1611
|
this._state.emit(false);
|
|
1458
1612
|
return this;
|
|
1459
1613
|
}
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
try {
|
|
1470
|
-
await cb((value) => {
|
|
1471
|
-
t && clearTimeout(t);
|
|
1472
|
-
resolve(value);
|
|
1473
|
-
}, (error) => {
|
|
1474
|
-
t && clearTimeout(t);
|
|
1475
|
-
reject(error);
|
|
1476
|
-
});
|
|
1477
|
-
} catch (err) {
|
|
1478
|
-
reject(err);
|
|
1479
|
-
}
|
|
1480
|
-
});
|
|
1481
|
-
});
|
|
1482
|
-
};
|
|
1483
|
-
var untilPromise = (cb) => cb();
|
|
1484
|
-
var untilError = (cb) => {
|
|
1485
|
-
return new Promise((resolve, reject) => {
|
|
1486
|
-
setTimeout(async () => {
|
|
1487
|
-
try {
|
|
1488
|
-
await cb();
|
|
1489
|
-
reject(new Error("No error was thrown."));
|
|
1490
|
-
} catch (err) {
|
|
1491
|
-
resolve(err);
|
|
1492
|
-
}
|
|
1493
|
-
});
|
|
1494
|
-
});
|
|
1614
|
+
constructor(_callback) {
|
|
1615
|
+
_define_property10(this, "_callback", void 0);
|
|
1616
|
+
_define_property10(this, "_state", void 0);
|
|
1617
|
+
_define_property10(this, "_timer", void 0);
|
|
1618
|
+
_define_property10(this, "_count", void 0);
|
|
1619
|
+
this._callback = _callback;
|
|
1620
|
+
this._state = new Event();
|
|
1621
|
+
this._count = 0;
|
|
1622
|
+
}
|
|
1495
1623
|
};
|
|
1496
1624
|
|
|
1497
1625
|
// src/update-scheduler.ts
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
this._scheduled = false;
|
|
1506
|
-
this._lastUpdateTime = -TIME_PERIOD;
|
|
1507
|
-
_ctx.onDispose(async () => {
|
|
1508
|
-
await this._promise;
|
|
1626
|
+
function _define_property11(obj, key, value) {
|
|
1627
|
+
if (key in obj) {
|
|
1628
|
+
Object.defineProperty(obj, key, {
|
|
1629
|
+
value,
|
|
1630
|
+
enumerable: true,
|
|
1631
|
+
configurable: true,
|
|
1632
|
+
writable: true
|
|
1509
1633
|
});
|
|
1634
|
+
} else {
|
|
1635
|
+
obj[key] = value;
|
|
1510
1636
|
}
|
|
1637
|
+
return obj;
|
|
1638
|
+
}
|
|
1639
|
+
var TIME_PERIOD = 1e3;
|
|
1640
|
+
var UpdateScheduler = class {
|
|
1511
1641
|
trigger() {
|
|
1512
1642
|
if (this._scheduled) {
|
|
1513
1643
|
return;
|
|
@@ -1564,6 +1694,23 @@ var UpdateScheduler = class {
|
|
|
1564
1694
|
this._promise = this._callback();
|
|
1565
1695
|
await this._promise;
|
|
1566
1696
|
}
|
|
1697
|
+
constructor(_ctx, _callback, _params = {}) {
|
|
1698
|
+
_define_property11(this, "_ctx", void 0);
|
|
1699
|
+
_define_property11(this, "_callback", void 0);
|
|
1700
|
+
_define_property11(this, "_params", void 0);
|
|
1701
|
+
_define_property11(this, "_promise", void 0);
|
|
1702
|
+
_define_property11(this, "_scheduled", void 0);
|
|
1703
|
+
_define_property11(this, "_lastUpdateTime", void 0);
|
|
1704
|
+
this._ctx = _ctx;
|
|
1705
|
+
this._callback = _callback;
|
|
1706
|
+
this._params = _params;
|
|
1707
|
+
this._promise = null;
|
|
1708
|
+
this._scheduled = false;
|
|
1709
|
+
this._lastUpdateTime = -TIME_PERIOD;
|
|
1710
|
+
_ctx.onDispose(async () => {
|
|
1711
|
+
await this._promise;
|
|
1712
|
+
});
|
|
1713
|
+
}
|
|
1567
1714
|
};
|
|
1568
1715
|
export {
|
|
1569
1716
|
CancellableObservableProvider,
|
|
@@ -1586,11 +1733,10 @@ export {
|
|
|
1586
1733
|
UpdateScheduler,
|
|
1587
1734
|
addEventListener,
|
|
1588
1735
|
addListener,
|
|
1589
|
-
asyncChain,
|
|
1590
1736
|
asyncReturn,
|
|
1591
1737
|
asyncTimeout,
|
|
1738
|
+
chain,
|
|
1592
1739
|
combine,
|
|
1593
|
-
createPromiseFromCallback,
|
|
1594
1740
|
debounce,
|
|
1595
1741
|
debounceAndThrottle,
|
|
1596
1742
|
dumpLeaks,
|
|
@@ -1599,13 +1745,13 @@ export {
|
|
|
1599
1745
|
makePushIterable,
|
|
1600
1746
|
observableError,
|
|
1601
1747
|
onEvent,
|
|
1748
|
+
promiseFromCallback,
|
|
1602
1749
|
runInContext,
|
|
1603
1750
|
runInContextAsync,
|
|
1604
1751
|
scheduleExponentialBackoffTaskInterval,
|
|
1605
1752
|
scheduleMicroTask,
|
|
1606
1753
|
scheduleTask,
|
|
1607
1754
|
scheduleTaskInterval,
|
|
1608
|
-
sink,
|
|
1609
1755
|
sleep,
|
|
1610
1756
|
sleepWithContext,
|
|
1611
1757
|
streamToArray,
|