@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.
@@ -1,4 +1,4 @@
1
- // packages/common/async/src/callback.ts
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
- // packages/common/async/src/chain.ts
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
- // packages/common/async/src/cleanup.ts
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
- // packages/common/async/src/debounce.ts
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
- // packages/common/async/src/errors.ts
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
- // packages/common/async/src/timeout.ts
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
- // packages/common/async/src/event-emitter.ts
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
- // packages/common/async/src/events.ts
191
+ // src/events.ts
172
192
  import { Context } from "@dxos/context";
173
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/common/async/src/events.ts";
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
- // packages/common/async/src/latch.ts
519
+ // src/latch.ts
500
520
  import { invariant } from "@dxos/invariant";
501
- var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/common/async/src/latch.ts";
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
- // packages/common/async/src/mutex.ts
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
- // packages/common/async/src/observable.ts
661
+ // src/observable.ts
642
662
  import Observable from "zen-observable";
643
663
  import PushStream from "zen-push";
644
664
 
645
- // packages/common/async/src/trigger.ts
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
- // packages/common/async/src/observable.ts
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
- // packages/common/async/src/observable-value.ts
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
- // packages/common/async/src/persistent-lifecycle.ts
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
- // packages/common/async/src/task-scheduling.ts
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
- // packages/common/async/src/track-leaks.ts
909
+ // src/track-leaks.ts
890
910
  import { StackTrace } from "@dxos/debug";
891
911
  import { log } from "@dxos/log";
892
- var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/common/async/src/track-leaks.ts";
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
- // packages/common/async/src/task-scheduling.ts
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
- // packages/common/async/src/persistent-lifecycle.ts
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 = "/home/runner/work/dxos/dxos/packages/common/async/src/persistent-lifecycle.ts";
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
- // packages/common/async/src/push-iterable.ts
1230
+ // src/push-iterable.ts
1211
1231
  import { invariant as invariant2 } from "@dxos/invariant";
1212
- var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/common/async/src/push-iterable.ts";
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
- // packages/common/async/src/sink.ts
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
- // packages/common/async/src/stream-to-array.ts
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
- // packages/common/async/src/test-stream.ts
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
- // packages/common/async/src/testing.ts
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
- // packages/common/async/src/timer.ts
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
- // packages/common/async/src/until.ts
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
- // packages/common/async/src/update-scheduler.ts
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,