@dxos/async 0.8.3 → 0.8.4-main.84f28bd
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 +54 -32
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +54 -32
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/debounce.d.ts +4 -0
- package/dist/types/src/debounce.d.ts.map +1 -1
- package/dist/types/src/debounce.test.d.ts +2 -0
- package/dist/types/src/debounce.test.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/throttle.d.ts +2 -0
- package/dist/types/src/throttle.d.ts.map +1 -0
- package/dist/types/src/throttle.test.d.ts +2 -0
- package/dist/types/src/throttle.test.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -7
- package/src/debounce.test.ts +58 -0
- package/src/debounce.ts +15 -0
- package/src/events.test.ts +1 -1
- package/src/index.ts +1 -0
- package/src/throttle.test.ts +65 -0
- package/src/throttle.ts +14 -0
- package/dist/lib/node/index.cjs +0 -1638
- package/dist/lib/node/index.cjs.map +0 -7
- package/dist/lib/node/meta.json +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//
|
|
1
|
+
// src/callback.ts
|
|
2
2
|
var createPromiseFromCallback = (run) => new Promise((resolve, reject) => {
|
|
3
3
|
run((error, value) => {
|
|
4
4
|
if (error) {
|
|
@@ -9,7 +9,7 @@ var createPromiseFromCallback = (run) => new Promise((resolve, reject) => {
|
|
|
9
9
|
});
|
|
10
10
|
});
|
|
11
11
|
|
|
12
|
-
//
|
|
12
|
+
// src/chain.ts
|
|
13
13
|
var asyncChain = (chain) => async (elements) => {
|
|
14
14
|
let result = await elements;
|
|
15
15
|
for (const part of chain) {
|
|
@@ -18,7 +18,7 @@ var asyncChain = (chain) => async (elements) => {
|
|
|
18
18
|
return result;
|
|
19
19
|
};
|
|
20
20
|
|
|
21
|
-
//
|
|
21
|
+
// src/cleanup.ts
|
|
22
22
|
import { ComplexMap } from "@dxos/util";
|
|
23
23
|
var combine = (...cleanupFns) => {
|
|
24
24
|
return () => {
|
|
@@ -64,7 +64,19 @@ var SubscriptionSet = class {
|
|
|
64
64
|
}
|
|
65
65
|
};
|
|
66
66
|
|
|
67
|
-
//
|
|
67
|
+
// src/throttle.ts
|
|
68
|
+
var throttle = (cb, wait = 100) => {
|
|
69
|
+
let lastCall = 0;
|
|
70
|
+
return (...args) => {
|
|
71
|
+
const now = Date.now();
|
|
72
|
+
if (now - lastCall >= wait) {
|
|
73
|
+
cb(...args);
|
|
74
|
+
lastCall = now;
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
// src/debounce.ts
|
|
68
80
|
var debounce = (cb, wait = 100) => {
|
|
69
81
|
let t;
|
|
70
82
|
return (...args) => {
|
|
@@ -72,8 +84,16 @@ var debounce = (cb, wait = 100) => {
|
|
|
72
84
|
t = setTimeout(() => cb(...args), wait);
|
|
73
85
|
};
|
|
74
86
|
};
|
|
87
|
+
var debounceAndThrottle = (cb, wait = 100) => {
|
|
88
|
+
const debounced = debounce(cb, wait);
|
|
89
|
+
const throttled = throttle(cb, wait);
|
|
90
|
+
return (...args) => {
|
|
91
|
+
debounced(...args);
|
|
92
|
+
throttled(...args);
|
|
93
|
+
};
|
|
94
|
+
};
|
|
75
95
|
|
|
76
|
-
//
|
|
96
|
+
// src/errors.ts
|
|
77
97
|
var toError = (err) => err === void 0 || typeof err === "string" ? new Error(err) : err;
|
|
78
98
|
var TimeoutError = class extends Error {
|
|
79
99
|
constructor(timeout2, label) {
|
|
@@ -88,7 +108,7 @@ var observableError = (observable, err) => {
|
|
|
88
108
|
}
|
|
89
109
|
};
|
|
90
110
|
|
|
91
|
-
//
|
|
111
|
+
// src/timeout.ts
|
|
92
112
|
import { ContextDisposedError } from "@dxos/context";
|
|
93
113
|
var sleep = (ms) => {
|
|
94
114
|
return new Promise((resolve) => {
|
|
@@ -145,7 +165,7 @@ var sleepWithContext = (ctx, ms) => {
|
|
|
145
165
|
});
|
|
146
166
|
};
|
|
147
167
|
|
|
148
|
-
//
|
|
168
|
+
// src/event-emitter.ts
|
|
149
169
|
var onEvent = (eventEmitter, eventName, callback) => {
|
|
150
170
|
eventEmitter.on(eventName, callback);
|
|
151
171
|
return () => eventEmitter.off(eventName, callback);
|
|
@@ -168,9 +188,9 @@ var waitForEvent = (eventEmitter, eventName, test, timeout2, error) => {
|
|
|
168
188
|
return timeout2 ? asyncTimeout(promise, timeout2, error ?? new Error()).finally(off) : promise.finally(off);
|
|
169
189
|
};
|
|
170
190
|
|
|
171
|
-
//
|
|
191
|
+
// src/events.ts
|
|
172
192
|
import { Context } from "@dxos/context";
|
|
173
|
-
var __dxlog_file = "/
|
|
193
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/common/async/src/events.ts";
|
|
174
194
|
var DO_NOT_ERROR_ON_ASYNC_CALLBACK = true;
|
|
175
195
|
var Event = class _Event {
|
|
176
196
|
constructor() {
|
|
@@ -496,9 +516,9 @@ var weakListeners = () => {
|
|
|
496
516
|
};
|
|
497
517
|
};
|
|
498
518
|
|
|
499
|
-
//
|
|
519
|
+
// src/latch.ts
|
|
500
520
|
import { invariant } from "@dxos/invariant";
|
|
501
|
-
var __dxlog_file2 = "/
|
|
521
|
+
var __dxlog_file2 = "/__w/dxos/dxos/packages/common/async/src/latch.ts";
|
|
502
522
|
var latch = ({ count = 1, timeout: timeout2 } = {}) => {
|
|
503
523
|
invariant(count >= 0, void 0, {
|
|
504
524
|
F: __dxlog_file2,
|
|
@@ -546,7 +566,7 @@ var latch = ({ count = 1, timeout: timeout2 } = {}) => {
|
|
|
546
566
|
];
|
|
547
567
|
};
|
|
548
568
|
|
|
549
|
-
//
|
|
569
|
+
// src/mutex.ts
|
|
550
570
|
import "@dxos/util";
|
|
551
571
|
import { warnAfterTimeout } from "@dxos/debug";
|
|
552
572
|
var Mutex = class {
|
|
@@ -638,11 +658,11 @@ var synchronized = (target, propertyName, descriptor) => {
|
|
|
638
658
|
});
|
|
639
659
|
};
|
|
640
660
|
|
|
641
|
-
//
|
|
661
|
+
// src/observable.ts
|
|
642
662
|
import Observable from "zen-observable";
|
|
643
663
|
import PushStream from "zen-push";
|
|
644
664
|
|
|
645
|
-
//
|
|
665
|
+
// src/trigger.ts
|
|
646
666
|
var trigger = (timeout2) => {
|
|
647
667
|
let callback;
|
|
648
668
|
const promise = new Promise((resolve, reject) => {
|
|
@@ -730,7 +750,7 @@ var Trigger = class {
|
|
|
730
750
|
}
|
|
731
751
|
};
|
|
732
752
|
|
|
733
|
-
//
|
|
753
|
+
// src/observable.ts
|
|
734
754
|
var MulticastObservable = class _MulticastObservable extends Observable {
|
|
735
755
|
constructor(subscriber, _value) {
|
|
736
756
|
super((observer) => this._subscribe(observer)), this._value = _value, this._observers = /* @__PURE__ */ new Set(), this._completed = new Trigger(), this._handlers = {
|
|
@@ -832,7 +852,7 @@ var MulticastObservable = class _MulticastObservable extends Observable {
|
|
|
832
852
|
};
|
|
833
853
|
var EMPTY_OBSERVABLE = MulticastObservable.of(null);
|
|
834
854
|
|
|
835
|
-
//
|
|
855
|
+
// src/observable-value.ts
|
|
836
856
|
import { createSetDispatch } from "@dxos/util";
|
|
837
857
|
var ObservableProvider = class {
|
|
838
858
|
constructor() {
|
|
@@ -877,19 +897,19 @@ var CancellableObservableProvider = class extends ObservableProvider {
|
|
|
877
897
|
}
|
|
878
898
|
};
|
|
879
899
|
|
|
880
|
-
//
|
|
900
|
+
// src/persistent-lifecycle.ts
|
|
881
901
|
import { LifecycleState, Resource, cancelWithContext } from "@dxos/context";
|
|
882
902
|
import { warnAfterTimeout as warnAfterTimeout2 } from "@dxos/debug";
|
|
883
903
|
import { log as log2 } from "@dxos/log";
|
|
884
904
|
|
|
885
|
-
//
|
|
905
|
+
// src/task-scheduling.ts
|
|
886
906
|
import { ContextDisposedError as ContextDisposedError2 } from "@dxos/context";
|
|
887
907
|
import { StackTrace as StackTrace2 } from "@dxos/debug";
|
|
888
908
|
|
|
889
|
-
//
|
|
909
|
+
// src/track-leaks.ts
|
|
890
910
|
import { StackTrace } from "@dxos/debug";
|
|
891
911
|
import { log } from "@dxos/log";
|
|
892
|
-
var __dxlog_file3 = "/
|
|
912
|
+
var __dxlog_file3 = "/__w/dxos/dxos/packages/common/async/src/track-leaks.ts";
|
|
893
913
|
var enabled = typeof process !== "undefined" && !!process.env.DX_TRACK_LEAKS;
|
|
894
914
|
var openResources = /* @__PURE__ */ new Set();
|
|
895
915
|
var handleSymbol = Symbol("checkLeaksHandle");
|
|
@@ -970,7 +990,7 @@ if (enabled) {
|
|
|
970
990
|
global.dxDumpLeaks = dumpLeaks;
|
|
971
991
|
}
|
|
972
992
|
|
|
973
|
-
//
|
|
993
|
+
// src/task-scheduling.ts
|
|
974
994
|
var DeferredTask = class {
|
|
975
995
|
constructor(_ctx, _callback) {
|
|
976
996
|
this._ctx = _ctx;
|
|
@@ -1096,14 +1116,14 @@ var scheduleExponentialBackoffTaskInterval = (ctx, task, initialInterval) => {
|
|
|
1096
1116
|
});
|
|
1097
1117
|
};
|
|
1098
1118
|
|
|
1099
|
-
//
|
|
1119
|
+
// src/persistent-lifecycle.ts
|
|
1100
1120
|
function _ts_decorate(decorators, target, key, desc) {
|
|
1101
1121
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1102
1122
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1103
1123
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
1104
1124
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1105
1125
|
}
|
|
1106
|
-
var __dxlog_file4 = "/
|
|
1126
|
+
var __dxlog_file4 = "/__w/dxos/dxos/packages/common/async/src/persistent-lifecycle.ts";
|
|
1107
1127
|
var INIT_RESTART_DELAY = 100;
|
|
1108
1128
|
var DEFAULT_MAX_RESTART_DELAY = 5e3;
|
|
1109
1129
|
var PersistentLifecycle = class extends Resource {
|
|
@@ -1207,9 +1227,9 @@ _ts_decorate([
|
|
|
1207
1227
|
synchronized
|
|
1208
1228
|
], PersistentLifecycle.prototype, "scheduleRestart", null);
|
|
1209
1229
|
|
|
1210
|
-
//
|
|
1230
|
+
// src/push-iterable.ts
|
|
1211
1231
|
import { invariant as invariant2 } from "@dxos/invariant";
|
|
1212
|
-
var __dxlog_file5 = "/
|
|
1232
|
+
var __dxlog_file5 = "/__w/dxos/dxos/packages/common/async/src/push-iterable.ts";
|
|
1213
1233
|
var makePushIterable = () => {
|
|
1214
1234
|
const buf = [];
|
|
1215
1235
|
const trigger2 = new Trigger({
|
|
@@ -1273,7 +1293,7 @@ var makePushIterable = () => {
|
|
|
1273
1293
|
};
|
|
1274
1294
|
};
|
|
1275
1295
|
|
|
1276
|
-
//
|
|
1296
|
+
// src/sink.ts
|
|
1277
1297
|
var sink = (emitter, event, count = 1) => {
|
|
1278
1298
|
const [getPromise, resolve] = trigger();
|
|
1279
1299
|
let counter = 0;
|
|
@@ -1287,7 +1307,7 @@ var sink = (emitter, event, count = 1) => {
|
|
|
1287
1307
|
return getPromise();
|
|
1288
1308
|
};
|
|
1289
1309
|
|
|
1290
|
-
//
|
|
1310
|
+
// src/stream-to-array.ts
|
|
1291
1311
|
var streamToArray = (stream) => {
|
|
1292
1312
|
let deferred;
|
|
1293
1313
|
if (!stream.readable) {
|
|
@@ -1329,7 +1349,7 @@ var streamToArray = (stream) => {
|
|
|
1329
1349
|
return deferred;
|
|
1330
1350
|
};
|
|
1331
1351
|
|
|
1332
|
-
//
|
|
1352
|
+
// src/test-stream.ts
|
|
1333
1353
|
import { Duplex } from "@dxos/node-std/stream";
|
|
1334
1354
|
var TestStream = class extends Duplex {
|
|
1335
1355
|
constructor() {
|
|
@@ -1365,7 +1385,7 @@ var TestStream = class extends Duplex {
|
|
|
1365
1385
|
}
|
|
1366
1386
|
};
|
|
1367
1387
|
|
|
1368
|
-
//
|
|
1388
|
+
// src/testing.ts
|
|
1369
1389
|
var waitForCondition = ({ condition, timeout: timeout2 = 0, interval: interval2 = 10, error, breakOnError = false }) => {
|
|
1370
1390
|
const stopTime = timeout2 ? Date.now() + timeout2 : 0;
|
|
1371
1391
|
const trigger2 = new Trigger();
|
|
@@ -1391,7 +1411,7 @@ var waitForCondition = ({ condition, timeout: timeout2 = 0, interval: interval2
|
|
|
1391
1411
|
});
|
|
1392
1412
|
};
|
|
1393
1413
|
|
|
1394
|
-
//
|
|
1414
|
+
// src/timer.ts
|
|
1395
1415
|
var Timer = class {
|
|
1396
1416
|
constructor(_callback) {
|
|
1397
1417
|
this._callback = _callback;
|
|
@@ -1439,7 +1459,7 @@ var Timer = class {
|
|
|
1439
1459
|
}
|
|
1440
1460
|
};
|
|
1441
1461
|
|
|
1442
|
-
//
|
|
1462
|
+
// src/until.ts
|
|
1443
1463
|
var until = (cb, timeout2) => {
|
|
1444
1464
|
return new Promise((resolve, reject) => {
|
|
1445
1465
|
const t = timeout2 && setTimeout(() => {
|
|
@@ -1474,7 +1494,7 @@ var untilError = (cb) => {
|
|
|
1474
1494
|
});
|
|
1475
1495
|
};
|
|
1476
1496
|
|
|
1477
|
-
//
|
|
1497
|
+
// src/update-scheduler.ts
|
|
1478
1498
|
var TIME_PERIOD = 1e3;
|
|
1479
1499
|
var UpdateScheduler = class {
|
|
1480
1500
|
constructor(_ctx, _callback, _params = {}) {
|
|
@@ -1572,6 +1592,7 @@ export {
|
|
|
1572
1592
|
combine,
|
|
1573
1593
|
createPromiseFromCallback,
|
|
1574
1594
|
debounce,
|
|
1595
|
+
debounceAndThrottle,
|
|
1575
1596
|
dumpLeaks,
|
|
1576
1597
|
interval,
|
|
1577
1598
|
latch,
|
|
@@ -1589,6 +1610,7 @@ export {
|
|
|
1589
1610
|
sleepWithContext,
|
|
1590
1611
|
streamToArray,
|
|
1591
1612
|
synchronized,
|
|
1613
|
+
throttle,
|
|
1592
1614
|
timeout,
|
|
1593
1615
|
toError,
|
|
1594
1616
|
trackLeaks,
|