@dxos/async 0.8.4-main.e098934 → 0.8.4-main.e8ec1fe

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.
@@ -22,19 +22,6 @@ var chain = (chain2) => 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
- }
38
25
  var combine = (...cleanupFns) => {
39
26
  return () => {
40
27
  cleanupFns.flat().forEach((cleanupFn) => cleanupFn());
@@ -53,6 +40,7 @@ var addEventListener = (target, type, listener, options) => {
53
40
  return () => target.removeEventListener(type, listener, options);
54
41
  };
55
42
  var SubscriptionList = class {
43
+ _cleanups = [];
56
44
  add(cb) {
57
45
  this._cleanups.push(cb);
58
46
  return this;
@@ -61,11 +49,12 @@ var SubscriptionList = class {
61
49
  this._cleanups.forEach((cb) => cb());
62
50
  this._cleanups.length = 0;
63
51
  }
64
- constructor() {
65
- _define_property(this, "_cleanups", []);
66
- }
67
52
  };
68
53
  var SubscriptionSet = class {
54
+ _cleanupMap;
55
+ constructor(keyProjection) {
56
+ this._cleanupMap = new ComplexMap(keyProjection);
57
+ }
69
58
  set(key, cb) {
70
59
  this._cleanupMap.set(key, cb);
71
60
  return this;
@@ -74,36 +63,58 @@ var SubscriptionSet = class {
74
63
  this._cleanupMap.forEach((cb) => cb());
75
64
  this._cleanupMap.clear();
76
65
  }
77
- constructor(keyProjection) {
78
- _define_property(this, "_cleanupMap", void 0);
79
- this._cleanupMap = new ComplexMap(keyProjection);
80
- }
81
66
  };
82
67
 
83
68
  // src/debounce.ts
84
- var debounce = (cb, delay = 100) => {
69
+ var delay = (cb, delay2 = 100) => {
70
+ let pending = false;
71
+ return (...args) => {
72
+ if (pending) {
73
+ return;
74
+ }
75
+ pending = true;
76
+ setTimeout(() => {
77
+ try {
78
+ cb(...args);
79
+ } finally {
80
+ pending = false;
81
+ }
82
+ }, delay2);
83
+ };
84
+ };
85
+ var debounce = (cb, delay2 = 100) => {
85
86
  let t;
86
87
  return (...args) => {
87
88
  clearTimeout(t);
88
- t = setTimeout(() => cb(...args), delay);
89
+ t = setTimeout(() => cb(...args), delay2);
89
90
  };
90
91
  };
91
- var throttle = (cb, delay = 100) => {
92
+ var throttle = (cb, delay2 = 100) => {
92
93
  let lastCall = 0;
93
94
  return (...args) => {
94
95
  const now = Date.now();
95
- if (now - lastCall >= delay) {
96
+ if (now - lastCall >= delay2) {
96
97
  cb(...args);
97
98
  lastCall = now;
98
99
  }
99
100
  };
100
101
  };
101
- var debounceAndThrottle = (cb, delay = 100) => {
102
- const debounced = debounce(cb, delay);
103
- const throttled = throttle(cb, delay);
102
+ var debounceAndThrottle = (cb, delay2 = 100) => {
103
+ let timeout2;
104
+ let lastCall = 0;
104
105
  return (...args) => {
105
- debounced(...args);
106
- throttled(...args);
106
+ const now = Date.now();
107
+ const delta = now - lastCall;
108
+ clearTimeout(timeout2);
109
+ if (delta >= delay2) {
110
+ cb(...args);
111
+ lastCall = now;
112
+ } else {
113
+ timeout2 = setTimeout(() => {
114
+ cb(...args);
115
+ lastCall = Date.now();
116
+ }, delay2 - delta);
117
+ }
107
118
  };
108
119
  };
109
120
 
@@ -204,19 +215,6 @@ var waitForEvent = (eventEmitter, eventName, test, timeout2, error) => {
204
215
 
205
216
  // src/events.ts
206
217
  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
- }
220
218
  var __dxlog_file = "/__w/dxos/dxos/packages/common/async/src/events.ts";
221
219
  var DO_NOT_ERROR_ON_ASYNC_CALLBACK = true;
222
220
  var Event = class _Event {
@@ -232,6 +230,8 @@ var Event = class _Event {
232
230
  });
233
231
  return event;
234
232
  }
233
+ _listeners = /* @__PURE__ */ new Set();
234
+ _effects = /* @__PURE__ */ new Set();
235
235
  /**
236
236
  * Emit an event.
237
237
  * In most cases should only be called by the class or entity containing the event.
@@ -473,12 +473,30 @@ var Event = class _Event {
473
473
  handle.cleanup = void 0;
474
474
  }
475
475
  }
476
- constructor() {
477
- _define_property2(this, "_listeners", /* @__PURE__ */ new Set());
478
- _define_property2(this, "_effects", /* @__PURE__ */ new Set());
479
- }
480
476
  };
481
477
  var EventListener = class {
478
+ ctx;
479
+ once;
480
+ weak;
481
+ callback;
482
+ _clearDispose = void 0;
483
+ constructor(event, listener, ctx, once, weak) {
484
+ this.ctx = ctx;
485
+ this.once = once;
486
+ this.weak = weak;
487
+ this._clearDispose = ctx.onDispose(() => {
488
+ event._removeListener(this);
489
+ });
490
+ if (weak) {
491
+ this.callback = new WeakRef(listener);
492
+ weakListeners().registry?.register(listener, {
493
+ event: new WeakRef(event),
494
+ listener: this
495
+ }, this);
496
+ } else {
497
+ this.callback = listener;
498
+ }
499
+ }
482
500
  derefCallback() {
483
501
  return this.weak ? this.callback.deref() : this.callback;
484
502
  }
@@ -508,29 +526,6 @@ var EventListener = class {
508
526
  this._clearDispose?.();
509
527
  weakListeners().registry?.unregister(this);
510
528
  }
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
- }
534
529
  };
535
530
  var weakListenersState = null;
536
531
  var FINALIZATION_REGISTRY_SUPPORTED = !!globalThis.FinalizationRegistry;
@@ -540,9 +535,9 @@ var weakListeners = () => {
540
535
  registry: void 0
541
536
  };
542
537
  }
543
- weakListenersState ?? (weakListenersState = new FinalizationRegistry(({ event, listener }) => {
538
+ weakListenersState ??= new FinalizationRegistry(({ event, listener }) => {
544
539
  event.deref()?._removeListener(listener);
545
- }));
540
+ });
546
541
  return {
547
542
  registry: weakListenersState
548
543
  };
@@ -551,20 +546,10 @@ var weakListeners = () => {
551
546
  // src/mutex.ts
552
547
  import "@dxos/util";
553
548
  import { warnAfterTimeout } from "@dxos/debug";
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;
564
- }
565
- return obj;
566
- }
567
549
  var Mutex = class {
550
+ _queue = Promise.resolve();
551
+ _queueLength = 0;
552
+ _tag = null;
568
553
  get tag() {
569
554
  return this._tag;
570
555
  }
@@ -608,13 +593,12 @@ var Mutex = class {
608
593
  guard.release();
609
594
  }
610
595
  }
611
- constructor() {
612
- _define_property3(this, "_queue", Promise.resolve());
613
- _define_property3(this, "_queueLength", 0);
614
- _define_property3(this, "_tag", null);
615
- }
616
596
  };
617
597
  var MutexGuard = class {
598
+ _release;
599
+ constructor(_release) {
600
+ this._release = _release;
601
+ }
618
602
  /**
619
603
  * Releases the lock.
620
604
  */
@@ -624,10 +608,6 @@ var MutexGuard = class {
624
608
  [Symbol.dispose]() {
625
609
  this.release();
626
610
  }
627
- constructor(_release) {
628
- _define_property3(this, "_release", void 0);
629
- this._release = _release;
630
- }
631
611
  };
632
612
  var classMutexSymbol = Symbol("class-mutex");
633
613
  var FORCE_DISABLE_WARNING = false;
@@ -635,8 +615,7 @@ var enableWarning = !FORCE_DISABLE_WARNING && globalThis.mochaExecutor;
635
615
  var synchronized = (target, propertyName, descriptor) => {
636
616
  const method = descriptor.value;
637
617
  descriptor.value = async function synchronizedMethod(...args) {
638
- var _classMutexSymbol;
639
- const mutex = this[_classMutexSymbol = classMutexSymbol] ?? (this[_classMutexSymbol] = new Mutex());
618
+ const mutex = this[classMutexSymbol] ??= new Mutex();
640
619
  const tag = `${target.constructor.name}.${propertyName}`;
641
620
  let guard;
642
621
  if (!enableWarning) {
@@ -661,19 +640,6 @@ import PushStream from "zen-push";
661
640
 
662
641
  // src/trigger.ts
663
642
  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
643
  var __dxlog_file2 = "/__w/dxos/dxos/packages/common/async/src/trigger.ts";
678
644
  var trigger = (timeout2) => {
679
645
  let callback;
@@ -690,13 +656,24 @@ var trigger = (timeout2) => {
690
656
  resolver
691
657
  ];
692
658
  };
693
- var TriggerState = /* @__PURE__ */ function(TriggerState2) {
659
+ var TriggerState = /* @__PURE__ */ (function(TriggerState2) {
694
660
  TriggerState2["WAITING"] = "WAITING";
695
661
  TriggerState2["RESOLVED"] = "RESOLVED";
696
662
  TriggerState2["REJECTED"] = "REJECTED";
697
663
  return TriggerState2;
698
- }({});
664
+ })({});
699
665
  var Trigger = class {
666
+ _options;
667
+ _promise;
668
+ _resolve;
669
+ _reject;
670
+ _state = "WAITING";
671
+ constructor(_options = {
672
+ autoReset: false
673
+ }) {
674
+ this._options = _options;
675
+ this.reset();
676
+ }
700
677
  get state() {
701
678
  return this._state;
702
679
  }
@@ -753,18 +730,6 @@ var Trigger = class {
753
730
  }
754
731
  return this;
755
732
  }
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
733
  };
769
734
  var latch = ({ count = 1, timeout: timeout2 } = {}) => {
770
735
  invariant(count >= 0, void 0, {
@@ -814,20 +779,16 @@ var latch = ({ count = 1, timeout: timeout2 } = {}) => {
814
779
  };
815
780
 
816
781
  // src/observable.ts
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;
827
- }
828
- return obj;
829
- }
830
782
  var MulticastObservable = class _MulticastObservable extends Observable {
783
+ _value;
784
+ _observers = /* @__PURE__ */ new Set();
785
+ _observable;
786
+ _completed = new Trigger();
787
+ constructor(subscriber, _value) {
788
+ super((observer) => this._subscribe(observer)), this._value = _value;
789
+ this._observable = typeof subscriber === "function" ? new Observable(subscriber) : subscriber;
790
+ this._observable.subscribe(this._handlers);
791
+ }
831
792
  static from(value, initialValue) {
832
793
  if ("emit" in value) {
833
794
  return new _MulticastObservable((observer) => {
@@ -908,42 +869,30 @@ var MulticastObservable = class _MulticastObservable extends Observable {
908
869
  this._observers.delete(observer);
909
870
  };
910
871
  }
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
- }
872
+ _handlers = {
873
+ next: (value) => {
874
+ this._value = value;
875
+ this._observers.forEach((observer) => observer.next?.(value));
876
+ },
877
+ error: (err) => {
878
+ this._observers.forEach((observer) => observer.error?.(err));
879
+ },
880
+ complete: () => {
881
+ this._completed.wake();
882
+ this._observers.forEach((observer) => observer.complete?.());
883
+ }
884
+ };
928
885
  };
929
886
  var EMPTY_OBSERVABLE = MulticastObservable.of(null);
930
887
 
931
888
  // src/observable-value.ts
932
889
  import { createSetDispatch } from "@dxos/util";
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
940
- });
941
- } else {
942
- obj[key] = value;
943
- }
944
- return obj;
945
- }
946
890
  var ObservableProvider = class {
891
+ _handlers = /* @__PURE__ */ new Set();
892
+ _proxy = createSetDispatch({
893
+ handlers: this._handlers
894
+ });
895
+ _value;
947
896
  /**
948
897
  * Proxy used to dispatch callbacks to each subscription.
949
898
  */
@@ -962,15 +911,13 @@ var ObservableProvider = class {
962
911
  this._handlers.delete(handler);
963
912
  };
964
913
  }
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
- }
972
914
  };
973
915
  var CancellableObservableProvider = class extends ObservableProvider {
916
+ _handleCancel;
917
+ _cancelled = false;
918
+ constructor(_handleCancel) {
919
+ super(), this._handleCancel = _handleCancel;
920
+ }
974
921
  get cancelled() {
975
922
  return this._cancelled;
976
923
  }
@@ -982,9 +929,6 @@ var CancellableObservableProvider = class extends ObservableProvider {
982
929
  await this._handleCancel?.();
983
930
  this.callback.onCancelled?.();
984
931
  }
985
- constructor(_handleCancel) {
986
- super(), _define_property6(this, "_handleCancel", void 0), _define_property6(this, "_cancelled", void 0), this._handleCancel = _handleCancel, this._cancelled = false;
987
- }
988
932
  };
989
933
 
990
934
  // src/persistent-lifecycle.ts
@@ -1081,20 +1025,16 @@ if (enabled) {
1081
1025
  }
1082
1026
 
1083
1027
  // src/task-scheduling.ts
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;
1094
- }
1095
- return obj;
1096
- }
1097
1028
  var DeferredTask = class {
1029
+ _ctx;
1030
+ _callback;
1031
+ _scheduled = false;
1032
+ _currentTask = null;
1033
+ _nextTask = new Trigger();
1034
+ constructor(_ctx, _callback) {
1035
+ this._ctx = _ctx;
1036
+ this._callback = _callback;
1037
+ }
1098
1038
  get scheduled() {
1099
1039
  return this._scheduled;
1100
1040
  }
@@ -1133,18 +1073,6 @@ var DeferredTask = class {
1133
1073
  async join() {
1134
1074
  await this._currentTask;
1135
1075
  }
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
- }
1148
1076
  };
1149
1077
  var runInContext = (ctx, fn) => {
1150
1078
  try {
@@ -1225,19 +1153,6 @@ var scheduleExponentialBackoffTaskInterval = (ctx, task, initialInterval) => {
1225
1153
  };
1226
1154
 
1227
1155
  // 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
- }
1241
1156
  function _ts_decorate(decorators, target, key, desc) {
1242
1157
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1243
1158
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -1248,6 +1163,20 @@ var __dxlog_file4 = "/__w/dxos/dxos/packages/common/async/src/persistent-lifecyc
1248
1163
  var INIT_RESTART_DELAY = 100;
1249
1164
  var DEFAULT_MAX_RESTART_DELAY = 5e3;
1250
1165
  var PersistentLifecycle = class extends Resource {
1166
+ _start;
1167
+ _stop;
1168
+ _onRestart;
1169
+ _maxRestartDelay;
1170
+ _currentState = void 0;
1171
+ _restartTask = void 0;
1172
+ _restartAfter = 0;
1173
+ constructor({ start, stop, onRestart, maxRestartDelay = DEFAULT_MAX_RESTART_DELAY }) {
1174
+ super();
1175
+ this._start = start;
1176
+ this._stop = stop;
1177
+ this._onRestart = onRestart;
1178
+ this._maxRestartDelay = maxRestartDelay;
1179
+ }
1251
1180
  get state() {
1252
1181
  return this._currentState;
1253
1182
  }
@@ -1330,13 +1259,6 @@ var PersistentLifecycle = class extends Resource {
1330
1259
  }
1331
1260
  this._restartTask.schedule();
1332
1261
  }
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
- }
1340
1262
  };
1341
1263
  _ts_decorate([
1342
1264
  synchronized
@@ -1455,19 +1377,6 @@ var streamToArray = (stream) => {
1455
1377
 
1456
1378
  // src/test-stream.ts
1457
1379
  import { Duplex } from "node:stream";
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;
1468
- }
1469
- return obj;
1470
- }
1471
1380
  var TestStream = class extends Duplex {
1472
1381
  static async assertConnectivity(stream1, stream2, { timeout: timeout2 = 200 } = {}) {
1473
1382
  stream1.push("ping");
@@ -1481,6 +1390,8 @@ var TestStream = class extends Duplex {
1481
1390
  })
1482
1391
  ]);
1483
1392
  }
1393
+ _received = Buffer.alloc(0);
1394
+ _onWrite = new Event();
1484
1395
  _write(chunk, encoding, callback) {
1485
1396
  this._received = Buffer.concat([
1486
1397
  this._received,
@@ -1495,9 +1406,6 @@ var TestStream = class extends Duplex {
1495
1406
  const dataBuffer = Buffer.isBuffer(data) ? data : Buffer.from(data);
1496
1407
  return asyncTimeout(this._onWrite.waitForCondition(() => this._received.equals(dataBuffer)), timeout2);
1497
1408
  }
1498
- constructor(...args) {
1499
- super(...args), _define_property9(this, "_received", Buffer.alloc(0)), _define_property9(this, "_onWrite", new Event());
1500
- }
1501
1409
  };
1502
1410
 
1503
1411
  // src/testing.ts
@@ -1560,20 +1468,14 @@ var untilError = (cb) => {
1560
1468
  };
1561
1469
 
1562
1470
  // src/timer.ts
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;
1573
- }
1574
- return obj;
1575
- }
1576
1471
  var Timer = class {
1472
+ _callback;
1473
+ _state = new Event();
1474
+ _timer;
1475
+ _count = 0;
1476
+ constructor(_callback) {
1477
+ this._callback = _callback;
1478
+ }
1577
1479
  get state() {
1578
1480
  return this._state;
1579
1481
  }
@@ -1613,33 +1515,29 @@ var Timer = class {
1613
1515
  this._state.emit(false);
1614
1516
  return this;
1615
1517
  }
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
- }
1625
1518
  };
1626
1519
 
1627
1520
  // src/update-scheduler.ts
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
1635
- });
1636
- } else {
1637
- obj[key] = value;
1638
- }
1639
- return obj;
1640
- }
1641
1521
  var TIME_PERIOD = 1e3;
1642
1522
  var UpdateScheduler = class {
1523
+ _ctx;
1524
+ _callback;
1525
+ _params;
1526
+ /**
1527
+ * Promise that resolves when the callback is done.
1528
+ * Never rejects.
1529
+ */
1530
+ _promise = null;
1531
+ _scheduled = false;
1532
+ _lastUpdateTime = -TIME_PERIOD;
1533
+ constructor(_ctx, _callback, _params = {}) {
1534
+ this._ctx = _ctx;
1535
+ this._callback = _callback;
1536
+ this._params = _params;
1537
+ _ctx.onDispose(async () => {
1538
+ await this._promise;
1539
+ });
1540
+ }
1643
1541
  trigger() {
1644
1542
  if (this._scheduled) {
1645
1543
  return;
@@ -1648,13 +1546,13 @@ var UpdateScheduler = class {
1648
1546
  await this._promise;
1649
1547
  if (this._params.maxFrequency) {
1650
1548
  const now = performance.now();
1651
- const delay = this._lastUpdateTime + TIME_PERIOD / this._params.maxFrequency - now;
1652
- if (delay > 0) {
1549
+ const delay2 = this._lastUpdateTime + TIME_PERIOD / this._params.maxFrequency - now;
1550
+ if (delay2 > 0) {
1653
1551
  await new Promise((resolve) => {
1654
1552
  const timeoutId = setTimeout(() => {
1655
1553
  clearContext();
1656
1554
  resolve();
1657
- }, delay);
1555
+ }, delay2);
1658
1556
  const clearContext = this._ctx.onDispose(() => {
1659
1557
  clearTimeout(timeoutId);
1660
1558
  resolve();
@@ -1696,23 +1594,6 @@ var UpdateScheduler = class {
1696
1594
  this._promise = this._callback();
1697
1595
  await this._promise;
1698
1596
  }
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
- }
1716
1597
  };
1717
1598
  export {
1718
1599
  CancellableObservableProvider,
@@ -1741,6 +1622,7 @@ export {
1741
1622
  combine,
1742
1623
  debounce,
1743
1624
  debounceAndThrottle,
1625
+ delay,
1744
1626
  dumpLeaks,
1745
1627
  interval,
1746
1628
  latch,