@dxos/async 0.8.4-main.fbb7a13 → 0.8.4-main.fcfe5033a5
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 +26 -19
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +26 -19
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/cleanup.d.ts +2 -3
- package/dist/types/src/cleanup.d.ts.map +1 -1
- package/dist/types/src/debounce.d.ts +15 -10
- package/dist/types/src/debounce.d.ts.map +1 -1
- package/dist/types/src/observable-value.d.ts.map +1 -1
- package/dist/types/src/task-scheduling.d.ts +2 -2
- package/dist/types/src/task-scheduling.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/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -7
- package/src/cleanup.ts +7 -5
- package/src/debounce.ts +19 -14
- package/src/event-emitter.test.ts +0 -1
- package/src/observable-value.ts +4 -2
- package/src/task-scheduling.ts +6 -5
- package/src/timeout.ts +6 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"src/callback.ts":{"bytes":1595,"imports":[],"format":"esm"},"src/chain.ts":{"bytes":1619,"imports":[],"format":"esm"},"src/cleanup.ts":{"bytes":
|
|
1
|
+
{"inputs":{"src/callback.ts":{"bytes":1595,"imports":[],"format":"esm"},"src/chain.ts":{"bytes":1619,"imports":[],"format":"esm"},"src/cleanup.ts":{"bytes":6807,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/debounce.ts":{"bytes":9168,"imports":[],"format":"esm"},"src/errors.ts":{"bytes":2911,"imports":[],"format":"esm"},"src/timeout.ts":{"bytes":7598,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"src/errors.ts","kind":"import-statement","original":"./errors"}],"format":"esm"},"src/event-emitter.ts":{"bytes":4155,"imports":[{"path":"src/timeout.ts","kind":"import-statement","original":"./timeout"}],"format":"esm"},"src/events.ts":{"bytes":39464,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true}],"format":"esm"},"src/mutex.ts":{"bytes":12647,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true}],"format":"esm"},"src/trigger.ts":{"bytes":14052,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"src/errors.ts","kind":"import-statement","original":"./errors"},{"path":"src/timeout.ts","kind":"import-statement","original":"./timeout"}],"format":"esm"},"src/observable.ts":{"bytes":17824,"imports":[{"path":"zen-observable","kind":"import-statement","external":true},{"path":"zen-push","kind":"import-statement","external":true},{"path":"src/trigger.ts","kind":"import-statement","original":"./trigger"}],"format":"esm"},"src/observable-value.ts":{"bytes":6444,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"src/track-leaks.ts":{"bytes":8414,"imports":[{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"src/task-scheduling.ts":{"bytes":23503,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"src/track-leaks.ts","kind":"import-statement","original":"./track-leaks"},{"path":"src/trigger.ts","kind":"import-statement","original":"./trigger"}],"format":"esm"},"src/persistent-lifecycle.ts":{"bytes":12773,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/mutex.ts","kind":"import-statement","original":"./mutex"},{"path":"src/task-scheduling.ts","kind":"import-statement","original":"./task-scheduling"},{"path":"src/timeout.ts","kind":"import-statement","original":"./timeout"}],"format":"esm"},"src/push-iterable.ts":{"bytes":5922,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"src/trigger.ts","kind":"import-statement","original":"./trigger"}],"format":"esm"},"src/stream-to-array.ts":{"bytes":4935,"imports":[],"format":"esm"},"src/test-stream.ts":{"bytes":5038,"imports":[{"path":"@dxos/node-std/stream","kind":"import-statement","external":true},{"path":"src/events.ts","kind":"import-statement","original":"./events"},{"path":"src/timeout.ts","kind":"import-statement","original":"./timeout"}],"format":"esm"},"src/testing.ts":{"bytes":8388,"imports":[{"path":"src/timeout.ts","kind":"import-statement","original":"./timeout"},{"path":"src/trigger.ts","kind":"import-statement","original":"./trigger"}],"format":"esm"},"src/timer.ts":{"bytes":5879,"imports":[{"path":"src/events.ts","kind":"import-statement","original":"./events"}],"format":"esm"},"src/update-scheduler.ts":{"bytes":9706,"imports":[{"path":"src/task-scheduling.ts","kind":"import-statement","original":"./task-scheduling"}],"format":"esm"},"src/index.ts":{"bytes":2335,"imports":[{"path":"src/callback.ts","kind":"import-statement","original":"./callback"},{"path":"src/chain.ts","kind":"import-statement","original":"./chain"},{"path":"src/cleanup.ts","kind":"import-statement","original":"./cleanup"},{"path":"src/debounce.ts","kind":"import-statement","original":"./debounce"},{"path":"src/errors.ts","kind":"import-statement","original":"./errors"},{"path":"src/event-emitter.ts","kind":"import-statement","original":"./event-emitter"},{"path":"src/events.ts","kind":"import-statement","original":"./events"},{"path":"src/mutex.ts","kind":"import-statement","original":"./mutex"},{"path":"src/observable.ts","kind":"import-statement","original":"./observable"},{"path":"src/observable-value.ts","kind":"import-statement","original":"./observable-value"},{"path":"src/persistent-lifecycle.ts","kind":"import-statement","original":"./persistent-lifecycle"},{"path":"src/push-iterable.ts","kind":"import-statement","original":"./push-iterable"},{"path":"src/stream-to-array.ts","kind":"import-statement","original":"./stream-to-array"},{"path":"src/task-scheduling.ts","kind":"import-statement","original":"./task-scheduling"},{"path":"src/test-stream.ts","kind":"import-statement","original":"./test-stream"},{"path":"src/testing.ts","kind":"import-statement","original":"./testing"},{"path":"src/timeout.ts","kind":"import-statement","original":"./timeout"},{"path":"src/timer.ts","kind":"import-statement","original":"./timer"},{"path":"src/track-leaks.ts","kind":"import-statement","original":"./track-leaks"},{"path":"src/trigger.ts","kind":"import-statement","original":"./trigger"},{"path":"src/update-scheduler.ts","kind":"import-statement","original":"./update-scheduler"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":104247},"dist/lib/browser/index.mjs":{"imports":[{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"zen-observable","kind":"import-statement","external":true},{"path":"zen-push","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/node-std/stream","kind":"import-statement","external":true}],"exports":["AsyncTask","CancellableObservableProvider","DeferredTask","Event","MulticastObservable","Mutex","MutexGuard","Observable","ObservableProvider","PersistentLifecycle","PushStream","SubscriptionList","SubscriptionSet","TestStream","TimeoutError","Timer","Trigger","TriggerState","UpdateScheduler","addEventListener","addListener","asyncReturn","asyncTimeout","chain","combine","debounce","debounceAndThrottle","delay","dumpLeaks","interval","latch","makePushIterable","observableError","onEvent","promiseFromCallback","runInContext","runInContextAsync","scheduleExponentialBackoffTaskInterval","scheduleMicroTask","scheduleTask","scheduleTaskInterval","sleep","sleepWithContext","streamToArray","synchronized","throttle","timeout","toError","trackLeaks","trackResource","trigger","unrefTimeout","until","untilError","untilPromise","waitForCondition","waitForEvent"],"entryPoint":"src/index.ts","inputs":{"src/callback.ts":{"bytesInOutput":185},"src/index.ts":{"bytesInOutput":0},"src/chain.ts":{"bytesInOutput":216},"src/cleanup.ts":{"bytesInOutput":1090},"src/debounce.ts":{"bytesInOutput":1032},"src/errors.ts":{"bytesInOutput":476},"src/timeout.ts":{"bytesInOutput":1479},"src/event-emitter.ts":{"bytesInOutput":697},"src/events.ts":{"bytesInOutput":8703},"src/mutex.ts":{"bytesInOutput":2429},"src/observable.ts":{"bytesInOutput":3691},"src/trigger.ts":{"bytesInOutput":3014},"src/observable-value.ts":{"bytesInOutput":951},"src/persistent-lifecycle.ts":{"bytesInOutput":3536},"src/task-scheduling.ts":{"bytesInOutput":5099},"src/track-leaks.ts":{"bytesInOutput":2152},"src/push-iterable.ts":{"bytesInOutput":1389},"src/stream-to-array.ts":{"bytesInOutput":967},"src/test-stream.ts":{"bytesInOutput":915},"src/testing.ts":{"bytesInOutput":1419},"src/timer.ts":{"bytesInOutput":1065},"src/update-scheduler.ts":{"bytesInOutput":1952}},"bytes":43966}}}
|
|
@@ -24,7 +24,7 @@ var chain = (chain2) => async (elements) => {
|
|
|
24
24
|
import { ComplexMap } from "@dxos/util";
|
|
25
25
|
var combine = (...cleanupFns) => {
|
|
26
26
|
return () => {
|
|
27
|
-
cleanupFns.flat().forEach((cleanupFn) => cleanupFn());
|
|
27
|
+
cleanupFns.flat().filter((f) => typeof f === "function").forEach((cleanupFn) => cleanupFn());
|
|
28
28
|
};
|
|
29
29
|
};
|
|
30
30
|
var timeout = (cb, ms = 0) => {
|
|
@@ -41,8 +41,8 @@ var addEventListener = (target, type, listener, options) => {
|
|
|
41
41
|
};
|
|
42
42
|
var SubscriptionList = class {
|
|
43
43
|
_cleanups = [];
|
|
44
|
-
add(cb) {
|
|
45
|
-
this._cleanups.push(cb);
|
|
44
|
+
add(...cb) {
|
|
45
|
+
this._cleanups.push(...cb);
|
|
46
46
|
return this;
|
|
47
47
|
}
|
|
48
48
|
clear() {
|
|
@@ -168,6 +168,9 @@ var sleepWithContext = (ctx, ms) => {
|
|
|
168
168
|
};
|
|
169
169
|
var asyncReturn = () => sleep(0);
|
|
170
170
|
var asyncTimeout = async (promise, timeout2, err) => {
|
|
171
|
+
if (typeof promise === "function") {
|
|
172
|
+
throw new Error("First argument must be a promise.");
|
|
173
|
+
}
|
|
171
174
|
let timeoutId;
|
|
172
175
|
const throwable = err === void 0 || typeof err === "string" ? new TimeoutError(timeout2, err) : err;
|
|
173
176
|
const timeoutPromise = new Promise((resolve, reject) => {
|
|
@@ -176,9 +179,8 @@ var asyncTimeout = async (promise, timeout2, err) => {
|
|
|
176
179
|
}, timeout2);
|
|
177
180
|
unrefTimeout(timeoutId);
|
|
178
181
|
});
|
|
179
|
-
const conditionTimeout = typeof promise === "function" ? promiseFromCallback(promise) : promise;
|
|
180
182
|
return await Promise.race([
|
|
181
|
-
|
|
183
|
+
promise,
|
|
182
184
|
timeoutPromise
|
|
183
185
|
]).finally(() => {
|
|
184
186
|
clearTimeout(timeoutId);
|
|
@@ -609,7 +611,7 @@ var MutexGuard = class {
|
|
|
609
611
|
this.release();
|
|
610
612
|
}
|
|
611
613
|
};
|
|
612
|
-
var classMutexSymbol = Symbol("class-mutex");
|
|
614
|
+
var classMutexSymbol = /* @__PURE__ */ Symbol("class-mutex");
|
|
613
615
|
var FORCE_DISABLE_WARNING = false;
|
|
614
616
|
var enableWarning = !FORCE_DISABLE_WARNING && globalThis.mochaExecutor;
|
|
615
617
|
var synchronized = (target, propertyName, descriptor) => {
|
|
@@ -937,7 +939,7 @@ import { warnAfterTimeout as warnAfterTimeout2 } from "@dxos/debug";
|
|
|
937
939
|
import { log as log2 } from "@dxos/log";
|
|
938
940
|
|
|
939
941
|
// src/task-scheduling.ts
|
|
940
|
-
import { ContextDisposedError as ContextDisposedError2 } from "@dxos/context";
|
|
942
|
+
import { Context as Context2, ContextDisposedError as ContextDisposedError2 } from "@dxos/context";
|
|
941
943
|
import { StackTrace as StackTrace2 } from "@dxos/debug";
|
|
942
944
|
|
|
943
945
|
// src/track-leaks.ts
|
|
@@ -946,7 +948,7 @@ import { log } from "@dxos/log";
|
|
|
946
948
|
var __dxlog_file3 = "/__w/dxos/dxos/packages/common/async/src/track-leaks.ts";
|
|
947
949
|
var enabled = typeof process !== "undefined" && !!process.env.DX_TRACK_LEAKS;
|
|
948
950
|
var openResources = /* @__PURE__ */ new Set();
|
|
949
|
-
var handleSymbol = Symbol("checkLeaksHandle");
|
|
951
|
+
var handleSymbol = /* @__PURE__ */ Symbol("checkLeaksHandle");
|
|
950
952
|
var trackResource = (resourceProvider) => {
|
|
951
953
|
if (!enabled) {
|
|
952
954
|
return () => {
|
|
@@ -1025,6 +1027,7 @@ if (enabled) {
|
|
|
1025
1027
|
}
|
|
1026
1028
|
|
|
1027
1029
|
// src/task-scheduling.ts
|
|
1030
|
+
var __dxlog_file4 = "/__w/dxos/dxos/packages/common/async/src/task-scheduling.ts";
|
|
1028
1031
|
var DeferredTask = class {
|
|
1029
1032
|
_ctx;
|
|
1030
1033
|
_callback;
|
|
@@ -1090,16 +1093,19 @@ var AsyncTask = class {
|
|
|
1090
1093
|
* Context of the resource that owns the task.
|
|
1091
1094
|
* When the context is disposed, the task is cancelled and cannot be scheduled again.
|
|
1092
1095
|
*/
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
+
open() {
|
|
1097
|
+
this.#ctx = new Context2(void 0, {
|
|
1098
|
+
F: __dxlog_file4,
|
|
1099
|
+
L: 102
|
|
1100
|
+
});
|
|
1096
1101
|
}
|
|
1097
1102
|
/**
|
|
1098
1103
|
* Closes the task and waits for it to finish if it is running.
|
|
1099
1104
|
*/
|
|
1100
1105
|
async close() {
|
|
1101
|
-
this.#ctx
|
|
1106
|
+
await this.#ctx?.dispose();
|
|
1102
1107
|
await this.join();
|
|
1108
|
+
this.#ctx = void 0;
|
|
1103
1109
|
}
|
|
1104
1110
|
[Symbol.asyncDispose]() {
|
|
1105
1111
|
return this.close();
|
|
@@ -1107,6 +1113,7 @@ var AsyncTask = class {
|
|
|
1107
1113
|
/**
|
|
1108
1114
|
* Schedule the task to run asynchronously.
|
|
1109
1115
|
*/
|
|
1116
|
+
// TODO(dmaretskyi): Add scheduleAt. Where the earlier time will override the later one.
|
|
1110
1117
|
schedule() {
|
|
1111
1118
|
if (!this.#ctx || this.#ctx.disposed) {
|
|
1112
1119
|
throw new Error("AsyncTask not open");
|
|
@@ -1231,7 +1238,7 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
1231
1238
|
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;
|
|
1232
1239
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1233
1240
|
}
|
|
1234
|
-
var
|
|
1241
|
+
var __dxlog_file5 = "/__w/dxos/dxos/packages/common/async/src/persistent-lifecycle.ts";
|
|
1235
1242
|
var INIT_RESTART_DELAY = 100;
|
|
1236
1243
|
var DEFAULT_MAX_RESTART_DELAY = 5e3;
|
|
1237
1244
|
var PersistentLifecycle = class extends Resource {
|
|
@@ -1260,7 +1267,7 @@ var PersistentLifecycle = class extends Resource {
|
|
|
1260
1267
|
log2.warn("Restart failed", {
|
|
1261
1268
|
err
|
|
1262
1269
|
}, {
|
|
1263
|
-
F:
|
|
1270
|
+
F: __dxlog_file5,
|
|
1264
1271
|
L: 72,
|
|
1265
1272
|
S: this,
|
|
1266
1273
|
C: (f, a) => f(...a)
|
|
@@ -1272,7 +1279,7 @@ var PersistentLifecycle = class extends Resource {
|
|
|
1272
1279
|
log2.warn("Start failed", {
|
|
1273
1280
|
err
|
|
1274
1281
|
}, {
|
|
1275
|
-
F:
|
|
1282
|
+
F: __dxlog_file5,
|
|
1276
1283
|
L: 78,
|
|
1277
1284
|
S: this,
|
|
1278
1285
|
C: (f, a) => f(...a)
|
|
@@ -1290,7 +1297,7 @@ var PersistentLifecycle = class extends Resource {
|
|
|
1290
1297
|
log2(`restarting in ${this._restartAfter}ms`, {
|
|
1291
1298
|
state: this._lifecycleState
|
|
1292
1299
|
}, {
|
|
1293
|
-
F:
|
|
1300
|
+
F: __dxlog_file5,
|
|
1294
1301
|
L: 91,
|
|
1295
1302
|
S: this,
|
|
1296
1303
|
C: (f, a) => f(...a)
|
|
@@ -1313,7 +1320,7 @@ var PersistentLifecycle = class extends Resource {
|
|
|
1313
1320
|
await this._stop(this._currentState);
|
|
1314
1321
|
} catch (err) {
|
|
1315
1322
|
log2.catch(err, void 0, {
|
|
1316
|
-
F:
|
|
1323
|
+
F: __dxlog_file5,
|
|
1317
1324
|
L: 113,
|
|
1318
1325
|
S: this,
|
|
1319
1326
|
C: (f, a) => f(...a)
|
|
@@ -1341,7 +1348,7 @@ _ts_decorate([
|
|
|
1341
1348
|
|
|
1342
1349
|
// src/push-iterable.ts
|
|
1343
1350
|
import { invariant as invariant2 } from "@dxos/invariant";
|
|
1344
|
-
var
|
|
1351
|
+
var __dxlog_file6 = "/__w/dxos/dxos/packages/common/async/src/push-iterable.ts";
|
|
1345
1352
|
var makePushIterable = () => {
|
|
1346
1353
|
const buf = [];
|
|
1347
1354
|
const trigger2 = new Trigger({
|
|
@@ -1356,7 +1363,7 @@ var makePushIterable = () => {
|
|
|
1356
1363
|
}
|
|
1357
1364
|
const item = buf.shift();
|
|
1358
1365
|
invariant2(item, void 0, {
|
|
1359
|
-
F:
|
|
1366
|
+
F: __dxlog_file6,
|
|
1360
1367
|
L: 42,
|
|
1361
1368
|
S: this,
|
|
1362
1369
|
A: [
|