@dxos/async 0.8.4-main.c85a9c8dae → 0.8.4-main.cb12b3f963
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 +20 -83
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +20 -83
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/callback.d.ts.map +1 -1
- package/dist/types/src/chain.d.ts.map +1 -1
- package/dist/types/src/cleanup.d.ts +0 -1
- package/dist/types/src/cleanup.d.ts.map +1 -1
- package/dist/types/src/debounce.d.ts.map +1 -1
- package/dist/types/src/errors.d.ts.map +1 -1
- package/dist/types/src/event-emitter.d.ts.map +1 -1
- package/dist/types/src/events.d.ts.map +1 -1
- package/dist/types/src/mutex.d.ts.map +1 -1
- package/dist/types/src/observable-value.d.ts.map +1 -1
- package/dist/types/src/observable.d.ts.map +1 -1
- package/dist/types/src/persistent-lifecycle.d.ts.map +1 -1
- package/dist/types/src/stream-to-array.d.ts.map +1 -1
- package/dist/types/src/task-scheduling.d.ts.map +1 -1
- package/dist/types/src/test-stream.d.ts.map +1 -1
- 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/timer.d.ts.map +1 -1
- package/dist/types/src/track-leaks.d.ts.map +1 -1
- package/dist/types/src/trigger.d.ts.map +1 -1
- package/dist/types/src/update-scheduler.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -10
- package/src/cleanup.ts +0 -1
- package/src/event-emitter.test.ts +0 -1
- package/src/persistent-lifecycle.ts +8 -0
- package/src/timeout.ts +6 -9
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/async",
|
|
3
|
-
"version": "0.8.4-main.
|
|
3
|
+
"version": "0.8.4-main.cb12b3f963",
|
|
4
4
|
"description": "Async utilities.",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -23,9 +23,6 @@
|
|
|
23
23
|
}
|
|
24
24
|
},
|
|
25
25
|
"types": "dist/types/src/index.d.ts",
|
|
26
|
-
"typesVersions": {
|
|
27
|
-
"*": {}
|
|
28
|
-
},
|
|
29
26
|
"files": [
|
|
30
27
|
"dist",
|
|
31
28
|
"src"
|
|
@@ -33,12 +30,12 @@
|
|
|
33
30
|
"dependencies": {
|
|
34
31
|
"zen-observable": "^0.10.0",
|
|
35
32
|
"zen-push": "^0.3.1",
|
|
36
|
-
"@dxos/context": "0.8.4-main.
|
|
37
|
-
"@dxos/debug": "0.8.4-main.
|
|
38
|
-
"@dxos/invariant": "0.8.4-main.
|
|
39
|
-
"@dxos/log": "0.8.4-main.
|
|
40
|
-
"@dxos/node-std": "0.8.4-main.
|
|
41
|
-
"@dxos/util": "0.8.4-main.
|
|
33
|
+
"@dxos/context": "0.8.4-main.cb12b3f963",
|
|
34
|
+
"@dxos/debug": "0.8.4-main.cb12b3f963",
|
|
35
|
+
"@dxos/invariant": "0.8.4-main.cb12b3f963",
|
|
36
|
+
"@dxos/log": "0.8.4-main.cb12b3f963",
|
|
37
|
+
"@dxos/node-std": "0.8.4-main.cb12b3f963",
|
|
38
|
+
"@dxos/util": "0.8.4-main.cb12b3f963"
|
|
42
39
|
},
|
|
43
40
|
"devDependencies": {
|
|
44
41
|
"@types/zen-observable": "^0.8.3"
|
package/src/cleanup.ts
CHANGED
|
@@ -40,7 +40,6 @@ type EventMap<T> = T extends Window
|
|
|
40
40
|
/**
|
|
41
41
|
* Add the event listener and return a cleanup function.
|
|
42
42
|
* Can be used in effect hooks in conjunction with `combine`.
|
|
43
|
-
* @deprecated use bind-event-listener
|
|
44
43
|
*/
|
|
45
44
|
export const addEventListener = <T extends EventTarget, K extends keyof EventMap<T>>(
|
|
46
45
|
target: T,
|
|
@@ -69,12 +69,20 @@ export class PersistentLifecycle<T> extends Resource {
|
|
|
69
69
|
try {
|
|
70
70
|
await this._restart();
|
|
71
71
|
} catch (err) {
|
|
72
|
+
// Suppress noise from restarts that race with shutdown.
|
|
73
|
+
if (this._ctx?.disposed) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
72
76
|
log.warn('Restart failed', { err });
|
|
73
77
|
this._restartTask?.schedule();
|
|
74
78
|
}
|
|
75
79
|
});
|
|
76
80
|
|
|
77
81
|
this._currentState = await this._start().catch((err) => {
|
|
82
|
+
// Suppress noise when shutdown was requested while the initial start was in flight.
|
|
83
|
+
if (this._ctx?.disposed) {
|
|
84
|
+
return undefined;
|
|
85
|
+
}
|
|
78
86
|
log.warn('Start failed', { err });
|
|
79
87
|
this._restartTask?.schedule();
|
|
80
88
|
return undefined;
|
package/src/timeout.ts
CHANGED
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
|
|
5
5
|
import { type Context, ContextDisposedError } from '@dxos/context';
|
|
6
6
|
|
|
7
|
-
import { promiseFromCallback } from './callback';
|
|
8
7
|
import { TimeoutError } from './errors';
|
|
9
8
|
|
|
10
9
|
/**
|
|
@@ -57,12 +56,11 @@ export const asyncReturn = () => sleep(0);
|
|
|
57
56
|
/**
|
|
58
57
|
* Wait for promise or throw error.
|
|
59
58
|
*/
|
|
60
|
-
export const asyncTimeout = async <T>(
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
): Promise<T> => {
|
|
59
|
+
export const asyncTimeout = async <T>(promise: Promise<T>, timeout: number, err?: Error | string): Promise<T> => {
|
|
60
|
+
if (typeof promise === 'function') {
|
|
61
|
+
throw new Error('First argument must be a promise.');
|
|
62
|
+
}
|
|
63
|
+
|
|
66
64
|
let timeoutId: NodeJS.Timeout;
|
|
67
65
|
const throwable = err === undefined || typeof err === 'string' ? new TimeoutError(timeout, err) : err;
|
|
68
66
|
const timeoutPromise = new Promise<T>((resolve, reject) => {
|
|
@@ -73,8 +71,7 @@ export const asyncTimeout = async <T>(
|
|
|
73
71
|
unrefTimeout(timeoutId);
|
|
74
72
|
});
|
|
75
73
|
|
|
76
|
-
|
|
77
|
-
return await Promise.race([conditionTimeout, timeoutPromise]).finally(() => {
|
|
74
|
+
return await Promise.race([promise, timeoutPromise]).finally(() => {
|
|
78
75
|
clearTimeout(timeoutId);
|
|
79
76
|
});
|
|
80
77
|
};
|