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