@dxos/async 0.8.1 → 0.8.2-main.2f9c567

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 +1 @@
1
- {"inputs":{"packages/common/async/src/callback.ts":{"bytes":1594,"imports":[],"format":"esm"},"packages/common/async/src/chain.ts":{"bytes":1701,"imports":[],"format":"esm"},"packages/common/async/src/cleanup.ts":{"bytes":3565,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/common/async/src/debounce.ts":{"bytes":1275,"imports":[],"format":"esm"},"packages/common/async/src/errors.ts":{"bytes":3008,"imports":[],"format":"esm"},"packages/common/async/src/timeout.ts":{"bytes":7907,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"packages/common/async/src/callback.ts","kind":"import-statement","original":"./callback"},{"path":"packages/common/async/src/errors.ts","kind":"import-statement","original":"./errors"}],"format":"esm"},"packages/common/async/src/event-emitter.ts":{"bytes":4236,"imports":[{"path":"packages/common/async/src/timeout.ts","kind":"import-statement","original":"./timeout"}],"format":"esm"},"packages/common/async/src/events.ts":{"bytes":39310,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true}],"format":"esm"},"packages/common/async/src/latch.ts":{"bytes":4484,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true}],"format":"esm"},"packages/common/async/src/mutex.ts":{"bytes":12860,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true}],"format":"esm"},"packages/common/async/src/trigger.ts":{"bytes":10376,"imports":[{"path":"packages/common/async/src/errors.ts","kind":"import-statement","original":"./errors"},{"path":"packages/common/async/src/timeout.ts","kind":"import-statement","original":"./timeout"}],"format":"esm"},"packages/common/async/src/observable.ts":{"bytes":18063,"imports":[{"path":"zen-observable","kind":"import-statement","external":true},{"path":"zen-push","kind":"import-statement","external":true},{"path":"packages/common/async/src/trigger.ts","kind":"import-statement","original":"./trigger"}],"format":"esm"},"packages/common/async/src/observable-value.ts":{"bytes":6582,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/common/async/src/track-leaks.ts":{"bytes":8583,"imports":[{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/common/async/src/task-scheduling.ts":{"bytes":15693,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"packages/common/async/src/track-leaks.ts","kind":"import-statement","original":"./track-leaks"},{"path":"packages/common/async/src/trigger.ts","kind":"import-statement","original":"./trigger"}],"format":"esm"},"packages/common/async/src/persistent-lifecycle.ts":{"bytes":12924,"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":"packages/common/async/src/mutex.ts","kind":"import-statement","original":"./mutex"},{"path":"packages/common/async/src/task-scheduling.ts","kind":"import-statement","original":"./task-scheduling"},{"path":"packages/common/async/src/timeout.ts","kind":"import-statement","original":"./timeout"}],"format":"esm"},"packages/common/async/src/push-iterable.ts":{"bytes":6055,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"packages/common/async/src/trigger.ts","kind":"import-statement","original":"./trigger"}],"format":"esm"},"packages/common/async/src/sink.ts":{"bytes":2055,"imports":[{"path":"packages/common/async/src/trigger.ts","kind":"import-statement","original":"./trigger"}],"format":"esm"},"packages/common/async/src/stream-to-array.ts":{"bytes":5040,"imports":[],"format":"esm"},"packages/common/async/src/test-stream.ts":{"bytes":5087,"imports":[{"path":"node:stream","kind":"import-statement","external":true},{"path":"packages/common/async/src/events.ts","kind":"import-statement","original":"./events"},{"path":"packages/common/async/src/timeout.ts","kind":"import-statement","original":"./timeout"}],"format":"esm"},"packages/common/async/src/testing.ts":{"bytes":4756,"imports":[{"path":"packages/common/async/src/timeout.ts","kind":"import-statement","original":"./timeout"},{"path":"packages/common/async/src/trigger.ts","kind":"import-statement","original":"./trigger"}],"format":"esm"},"packages/common/async/src/timer.ts":{"bytes":6062,"imports":[{"path":"packages/common/async/src/events.ts","kind":"import-statement","original":"./events"}],"format":"esm"},"packages/common/async/src/types.ts":{"bytes":517,"imports":[],"format":"esm"},"packages/common/async/src/until.ts":{"bytes":4408,"imports":[],"format":"esm"},"packages/common/async/src/update-scheduler.ts":{"bytes":9920,"imports":[{"path":"packages/common/async/src/task-scheduling.ts","kind":"import-statement","original":"./task-scheduling"}],"format":"esm"},"packages/common/async/src/index.ts":{"bytes":2731,"imports":[{"path":"packages/common/async/src/callback.ts","kind":"import-statement","original":"./callback"},{"path":"packages/common/async/src/chain.ts","kind":"import-statement","original":"./chain"},{"path":"packages/common/async/src/cleanup.ts","kind":"import-statement","original":"./cleanup"},{"path":"packages/common/async/src/debounce.ts","kind":"import-statement","original":"./debounce"},{"path":"packages/common/async/src/errors.ts","kind":"import-statement","original":"./errors"},{"path":"packages/common/async/src/event-emitter.ts","kind":"import-statement","original":"./event-emitter"},{"path":"packages/common/async/src/events.ts","kind":"import-statement","original":"./events"},{"path":"packages/common/async/src/latch.ts","kind":"import-statement","original":"./latch"},{"path":"packages/common/async/src/mutex.ts","kind":"import-statement","original":"./mutex"},{"path":"packages/common/async/src/observable.ts","kind":"import-statement","original":"./observable"},{"path":"packages/common/async/src/observable-value.ts","kind":"import-statement","original":"./observable-value"},{"path":"packages/common/async/src/persistent-lifecycle.ts","kind":"import-statement","original":"./persistent-lifecycle"},{"path":"packages/common/async/src/push-iterable.ts","kind":"import-statement","original":"./push-iterable"},{"path":"packages/common/async/src/sink.ts","kind":"import-statement","original":"./sink"},{"path":"packages/common/async/src/stream-to-array.ts","kind":"import-statement","original":"./stream-to-array"},{"path":"packages/common/async/src/task-scheduling.ts","kind":"import-statement","original":"./task-scheduling"},{"path":"packages/common/async/src/test-stream.ts","kind":"import-statement","original":"./test-stream"},{"path":"packages/common/async/src/testing.ts","kind":"import-statement","original":"./testing"},{"path":"packages/common/async/src/timeout.ts","kind":"import-statement","original":"./timeout"},{"path":"packages/common/async/src/timer.ts","kind":"import-statement","original":"./timer"},{"path":"packages/common/async/src/track-leaks.ts","kind":"import-statement","original":"./track-leaks"},{"path":"packages/common/async/src/trigger.ts","kind":"import-statement","original":"./trigger"},{"path":"packages/common/async/src/types.ts","kind":"import-statement","original":"./types"},{"path":"packages/common/async/src/until.ts","kind":"import-statement","original":"./until"},{"path":"packages/common/async/src/update-scheduler.ts","kind":"import-statement","original":"./update-scheduler"}],"format":"esm"}},"outputs":{"packages/common/async/dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":95534},"packages/common/async/dist/lib/node-esm/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/invariant","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/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":"node:stream","kind":"import-statement","external":true}],"exports":["CancellableObservableProvider","DeferredTask","Event","MulticastObservable","Mutex","MutexGuard","Observable","ObservableProvider","PersistentLifecycle","PushStream","SubscriptionList","SubscriptionSet","TestStream","TimeoutError","Timer","Trigger","TriggerState","UpdateScheduler","addListener","asyncChain","asyncReturn","asyncTimeout","combine","createPromiseFromCallback","debounce","dumpLeaks","latch","makePushIterable","observableError","onEvent","runInContext","runInContextAsync","scheduleExponentialBackoffTaskInterval","scheduleMicroTask","scheduleTask","scheduleTaskInterval","sink","sleep","sleepWithContext","streamToArray","synchronized","toError","trackLeaks","trackResource","trigger","unrefTimeout","until","untilError","untilPromise","waitForCondition","waitForEvent"],"entryPoint":"packages/common/async/src/index.ts","inputs":{"packages/common/async/src/callback.ts":{"bytesInOutput":191},"packages/common/async/src/index.ts":{"bytesInOutput":0},"packages/common/async/src/chain.ts":{"bytesInOutput":219},"packages/common/async/src/cleanup.ts":{"bytesInOutput":670},"packages/common/async/src/debounce.ts":{"bytesInOutput":144},"packages/common/async/src/errors.ts":{"bytesInOutput":473},"packages/common/async/src/timeout.ts":{"bytesInOutput":1487},"packages/common/async/src/event-emitter.ts":{"bytesInOutput":694},"packages/common/async/src/events.ts":{"bytesInOutput":8580},"packages/common/async/src/latch.ts":{"bytesInOutput":987},"packages/common/async/src/mutex.ts":{"bytesInOutput":2444},"packages/common/async/src/observable.ts":{"bytesInOutput":3695},"packages/common/async/src/trigger.ts":{"bytesInOutput":1959},"packages/common/async/src/observable-value.ts":{"bytesInOutput":975},"packages/common/async/src/persistent-lifecycle.ts":{"bytesInOutput":3511},"packages/common/async/src/task-scheduling.ts":{"bytesInOutput":3142},"packages/common/async/src/track-leaks.ts":{"bytesInOutput":2149},"packages/common/async/src/push-iterable.ts":{"bytesInOutput":1402},"packages/common/async/src/sink.ts":{"bytesInOutput":285},"packages/common/async/src/stream-to-array.ts":{"bytesInOutput":967},"packages/common/async/src/test-stream.ts":{"bytesInOutput":925},"packages/common/async/src/testing.ts":{"bytesInOutput":587},"packages/common/async/src/timer.ts":{"bytesInOutput":1054},"packages/common/async/src/until.ts":{"bytesInOutput":760},"packages/common/async/src/update-scheduler.ts":{"bytesInOutput":1855}},"bytes":41320}}}
1
+ {"inputs":{"packages/common/async/src/callback.ts":{"bytes":1594,"imports":[],"format":"esm"},"packages/common/async/src/chain.ts":{"bytes":1701,"imports":[],"format":"esm"},"packages/common/async/src/cleanup.ts":{"bytes":5335,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/common/async/src/debounce.ts":{"bytes":1275,"imports":[],"format":"esm"},"packages/common/async/src/errors.ts":{"bytes":3008,"imports":[],"format":"esm"},"packages/common/async/src/timeout.ts":{"bytes":8100,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"packages/common/async/src/callback.ts","kind":"import-statement","original":"./callback"},{"path":"packages/common/async/src/errors.ts","kind":"import-statement","original":"./errors"}],"format":"esm"},"packages/common/async/src/event-emitter.ts":{"bytes":4236,"imports":[{"path":"packages/common/async/src/timeout.ts","kind":"import-statement","original":"./timeout"}],"format":"esm"},"packages/common/async/src/events.ts":{"bytes":39310,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true}],"format":"esm"},"packages/common/async/src/latch.ts":{"bytes":4484,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true}],"format":"esm"},"packages/common/async/src/mutex.ts":{"bytes":12872,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true}],"format":"esm"},"packages/common/async/src/trigger.ts":{"bytes":10376,"imports":[{"path":"packages/common/async/src/errors.ts","kind":"import-statement","original":"./errors"},{"path":"packages/common/async/src/timeout.ts","kind":"import-statement","original":"./timeout"}],"format":"esm"},"packages/common/async/src/observable.ts":{"bytes":18063,"imports":[{"path":"zen-observable","kind":"import-statement","external":true},{"path":"zen-push","kind":"import-statement","external":true},{"path":"packages/common/async/src/trigger.ts","kind":"import-statement","original":"./trigger"}],"format":"esm"},"packages/common/async/src/observable-value.ts":{"bytes":6582,"imports":[{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/common/async/src/track-leaks.ts":{"bytes":8583,"imports":[{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/common/async/src/task-scheduling.ts":{"bytes":15693,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"packages/common/async/src/track-leaks.ts","kind":"import-statement","original":"./track-leaks"},{"path":"packages/common/async/src/trigger.ts","kind":"import-statement","original":"./trigger"}],"format":"esm"},"packages/common/async/src/persistent-lifecycle.ts":{"bytes":12938,"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":"packages/common/async/src/mutex.ts","kind":"import-statement","original":"./mutex"},{"path":"packages/common/async/src/task-scheduling.ts","kind":"import-statement","original":"./task-scheduling"},{"path":"packages/common/async/src/timeout.ts","kind":"import-statement","original":"./timeout"}],"format":"esm"},"packages/common/async/src/push-iterable.ts":{"bytes":6055,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"packages/common/async/src/trigger.ts","kind":"import-statement","original":"./trigger"}],"format":"esm"},"packages/common/async/src/sink.ts":{"bytes":2055,"imports":[{"path":"packages/common/async/src/trigger.ts","kind":"import-statement","original":"./trigger"}],"format":"esm"},"packages/common/async/src/stream-to-array.ts":{"bytes":5040,"imports":[],"format":"esm"},"packages/common/async/src/test-stream.ts":{"bytes":5087,"imports":[{"path":"node:stream","kind":"import-statement","external":true},{"path":"packages/common/async/src/events.ts","kind":"import-statement","original":"./events"},{"path":"packages/common/async/src/timeout.ts","kind":"import-statement","original":"./timeout"}],"format":"esm"},"packages/common/async/src/testing.ts":{"bytes":4756,"imports":[{"path":"packages/common/async/src/timeout.ts","kind":"import-statement","original":"./timeout"},{"path":"packages/common/async/src/trigger.ts","kind":"import-statement","original":"./trigger"}],"format":"esm"},"packages/common/async/src/timer.ts":{"bytes":6062,"imports":[{"path":"packages/common/async/src/events.ts","kind":"import-statement","original":"./events"}],"format":"esm"},"packages/common/async/src/types.ts":{"bytes":517,"imports":[],"format":"esm"},"packages/common/async/src/until.ts":{"bytes":4408,"imports":[],"format":"esm"},"packages/common/async/src/update-scheduler.ts":{"bytes":9920,"imports":[{"path":"packages/common/async/src/task-scheduling.ts","kind":"import-statement","original":"./task-scheduling"}],"format":"esm"},"packages/common/async/src/index.ts":{"bytes":2731,"imports":[{"path":"packages/common/async/src/callback.ts","kind":"import-statement","original":"./callback"},{"path":"packages/common/async/src/chain.ts","kind":"import-statement","original":"./chain"},{"path":"packages/common/async/src/cleanup.ts","kind":"import-statement","original":"./cleanup"},{"path":"packages/common/async/src/debounce.ts","kind":"import-statement","original":"./debounce"},{"path":"packages/common/async/src/errors.ts","kind":"import-statement","original":"./errors"},{"path":"packages/common/async/src/event-emitter.ts","kind":"import-statement","original":"./event-emitter"},{"path":"packages/common/async/src/events.ts","kind":"import-statement","original":"./events"},{"path":"packages/common/async/src/latch.ts","kind":"import-statement","original":"./latch"},{"path":"packages/common/async/src/mutex.ts","kind":"import-statement","original":"./mutex"},{"path":"packages/common/async/src/observable.ts","kind":"import-statement","original":"./observable"},{"path":"packages/common/async/src/observable-value.ts","kind":"import-statement","original":"./observable-value"},{"path":"packages/common/async/src/persistent-lifecycle.ts","kind":"import-statement","original":"./persistent-lifecycle"},{"path":"packages/common/async/src/push-iterable.ts","kind":"import-statement","original":"./push-iterable"},{"path":"packages/common/async/src/sink.ts","kind":"import-statement","original":"./sink"},{"path":"packages/common/async/src/stream-to-array.ts","kind":"import-statement","original":"./stream-to-array"},{"path":"packages/common/async/src/task-scheduling.ts","kind":"import-statement","original":"./task-scheduling"},{"path":"packages/common/async/src/test-stream.ts","kind":"import-statement","original":"./test-stream"},{"path":"packages/common/async/src/testing.ts","kind":"import-statement","original":"./testing"},{"path":"packages/common/async/src/timeout.ts","kind":"import-statement","original":"./timeout"},{"path":"packages/common/async/src/timer.ts","kind":"import-statement","original":"./timer"},{"path":"packages/common/async/src/track-leaks.ts","kind":"import-statement","original":"./track-leaks"},{"path":"packages/common/async/src/trigger.ts","kind":"import-statement","original":"./trigger"},{"path":"packages/common/async/src/types.ts","kind":"import-statement","original":"./types"},{"path":"packages/common/async/src/until.ts","kind":"import-statement","original":"./until"},{"path":"packages/common/async/src/update-scheduler.ts","kind":"import-statement","original":"./update-scheduler"}],"format":"esm"}},"outputs":{"packages/common/async/dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":96580},"packages/common/async/dist/lib/node-esm/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/invariant","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/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":"node:stream","kind":"import-statement","external":true}],"exports":["CancellableObservableProvider","DeferredTask","Event","MulticastObservable","Mutex","MutexGuard","Observable","ObservableProvider","PersistentLifecycle","PushStream","SubscriptionList","SubscriptionSet","TestStream","TimeoutError","Timer","Trigger","TriggerState","UpdateScheduler","addEventListener","addListener","asyncChain","asyncReturn","asyncTimeout","combine","createPromiseFromCallback","debounce","dumpLeaks","latch","makePushIterable","observableError","onEvent","runInContext","runInContextAsync","scheduleExponentialBackoffTaskInterval","scheduleMicroTask","scheduleTask","scheduleTaskInterval","sink","sleep","sleepWithContext","streamToArray","synchronized","toError","trackLeaks","trackResource","trigger","unrefTimeout","until","untilError","untilPromise","waitForCondition","waitForEvent"],"entryPoint":"packages/common/async/src/index.ts","inputs":{"packages/common/async/src/callback.ts":{"bytesInOutput":191},"packages/common/async/src/index.ts":{"bytesInOutput":0},"packages/common/async/src/chain.ts":{"bytesInOutput":219},"packages/common/async/src/cleanup.ts":{"bytesInOutput":843},"packages/common/async/src/debounce.ts":{"bytesInOutput":144},"packages/common/async/src/errors.ts":{"bytesInOutput":473},"packages/common/async/src/timeout.ts":{"bytesInOutput":1487},"packages/common/async/src/event-emitter.ts":{"bytesInOutput":694},"packages/common/async/src/events.ts":{"bytesInOutput":8580},"packages/common/async/src/latch.ts":{"bytesInOutput":987},"packages/common/async/src/mutex.ts":{"bytesInOutput":2444},"packages/common/async/src/observable.ts":{"bytesInOutput":3695},"packages/common/async/src/trigger.ts":{"bytesInOutput":1959},"packages/common/async/src/observable-value.ts":{"bytesInOutput":975},"packages/common/async/src/persistent-lifecycle.ts":{"bytesInOutput":3517},"packages/common/async/src/task-scheduling.ts":{"bytesInOutput":3142},"packages/common/async/src/track-leaks.ts":{"bytesInOutput":2149},"packages/common/async/src/push-iterable.ts":{"bytesInOutput":1402},"packages/common/async/src/sink.ts":{"bytesInOutput":285},"packages/common/async/src/stream-to-array.ts":{"bytesInOutput":967},"packages/common/async/src/test-stream.ts":{"bytesInOutput":925},"packages/common/async/src/testing.ts":{"bytesInOutput":587},"packages/common/async/src/timer.ts":{"bytesInOutput":1054},"packages/common/async/src/until.ts":{"bytesInOutput":760},"packages/common/async/src/update-scheduler.ts":{"bytesInOutput":1855}},"bytes":41519}}}
@@ -1,6 +1,15 @@
1
1
  import { type PrimitiveProjection } from '@dxos/util';
2
2
  export type CleanupFn = () => void;
3
+ /**
4
+ * Combine multiple cleanup functions into a single cleanup function.
5
+ * Can be used in effect hooks in conjunction with `addEventListener`.
6
+ */
3
7
  export declare const combine: (...cleanupFns: CleanupFn[]) => CleanupFn;
8
+ /**
9
+ * Add the event listener and return a cleanup function.
10
+ * Can be used in effect hooks in conjunction with `combine`.
11
+ */
12
+ export declare const addEventListener: <T extends Event = Event>(el: HTMLElement | Window, event: string, handler: EventListenerOrEventListenerObject | ((event: T) => void), options?: boolean | AddEventListenerOptions) => CleanupFn;
4
13
  export declare class SubscriptionList {
5
14
  private readonly _cleanups;
6
15
  add(cb: CleanupFn): this;
@@ -1 +1 @@
1
- {"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../../src/cleanup.ts"],"names":[],"mappings":"AAIA,OAAO,EAAc,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAElE,MAAM,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC;AAEnC,eAAO,MAAM,OAAO,kBAAmB,SAAS,EAAE,KAAG,SAIpD,CAAC;AAEF,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAE7C,GAAG,CAAC,EAAE,EAAE,SAAS;IAKjB,KAAK;CAIN;AAED,qBAAa,eAAe,CAAC,CAAC,GAAG,GAAG;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2B;gBAE3C,aAAa,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAIjD,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS;IAKzB,KAAK;CAIN"}
1
+ {"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../../src/cleanup.ts"],"names":[],"mappings":"AAIA,OAAO,EAAc,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAElE,MAAM,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC;AAEnC;;;GAGG;AACH,eAAO,MAAM,OAAO,kBAAmB,SAAS,EAAE,KAAG,SAIpD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,KAAK,cAC1C,WAAW,GAAG,MAAM,SACjB,MAAM,WACJ,kCAAkC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,YACxD,OAAO,GAAG,uBAAuB,KAC1C,SAGF,CAAC;AAEF,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAE7C,GAAG,CAAC,EAAE,EAAE,SAAS;IAKjB,KAAK;CAIN;AAED,qBAAa,eAAe,CAAC,CAAC,GAAG,GAAG;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2B;gBAE3C,aAAa,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAIjD,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS;IAKzB,KAAK;CAIN"}
@@ -50,5 +50,5 @@ export declare class MutexGuard {
50
50
  * Uses a lock global to the current class instance.
51
51
  * This way every synchronized method on the same instance will share a single lock.
52
52
  */
53
- export declare const synchronized: (target: any, propertyName: string, descriptor: TypedPropertyDescriptor<(...args: any) => any>) => void;
53
+ export declare const synchronized: (target: any, propertyName: string, descriptor: TypedPropertyDescriptor<(...args: any) => Promise<any>>) => void;
54
54
  //# sourceMappingURL=mutex.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mutex.d.ts","sourceRoot":"","sources":["../../../src/mutex.ts"],"names":[],"mappings":"AAKA,OAAO,YAAY,CAAC;AAGpB;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,YAAY,CAAK;IAEzB,OAAO,CAAC,IAAI,CAAuB;IAEnC,IAAI,GAAG,kBAEN;IAED,QAAQ,IAAI,OAAO;IAInB;;;;;OAKG;IACG,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAsBhD;;;;;OAKG;IACG,mBAAmB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAShE;AAED,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,MAAM,IAAI;IAEjD;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;CAGzB;AAaD;;;;GAIG;AACH,eAAO,MAAM,YAAY,WACf,GAAG,gBACG,MAAM,cACR,uBAAuB,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC,SAuB3D,CAAC"}
1
+ {"version":3,"file":"mutex.d.ts","sourceRoot":"","sources":["../../../src/mutex.ts"],"names":[],"mappings":"AAKA,OAAO,YAAY,CAAC;AAGpB;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,YAAY,CAAK;IAEzB,OAAO,CAAC,IAAI,CAAuB;IAEnC,IAAI,GAAG,kBAEN;IAED,QAAQ,IAAI,OAAO;IAInB;;;;;OAKG;IACG,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAsBhD;;;;;OAKG;IACG,mBAAmB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAShE;AAED,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,MAAM,IAAI;IAEjD;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;CAGzB;AAaD;;;;GAIG;AACH,eAAO,MAAM,YAAY,WACf,GAAG,gBACG,MAAM,cACR,uBAAuB,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,SAuBpE,CAAC"}
@@ -40,6 +40,6 @@ export declare class PersistentLifecycle<T> extends Resource {
40
40
  /**
41
41
  * Scheduling restart should be done from outside.
42
42
  */
43
- scheduleRestart(): void;
43
+ scheduleRestart(): Promise<void>;
44
44
  }
45
45
  //# sourceMappingURL=persistent-lifecycle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"persistent-lifecycle.d.ts","sourceRoot":"","sources":["../../../src/persistent-lifecycle.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkB,QAAQ,EAAqB,MAAM,eAAe,CAAC;AAW5E,MAAM,MAAM,yBAAyB,CAAC,CAAC,IAAI;IACzC;;;OAGG;IACH,KAAK,EAAE,MAAM,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAEpC;;OAEG;IACH,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAElC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;;GAGG;AACH,qBAAa,mBAAmB,CAAC,CAAC,CAAE,SAAQ,QAAQ;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+B;IACtD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8B;IACpD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAsB;IAClD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAE1C,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,YAAY,CAAC,CAA2B;IAChD,OAAO,CAAC,aAAa,CAAK;gBAEd,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,eAA2C,EAAE,EAAE,yBAAyB,CAAC,CAAC,CAAC;IAQjH,IAAI,KAAK,kBAER;cAGwB,KAAK;cAgBL,MAAM;YAMjB,QAAQ;YAkBR,iBAAiB;IAW/B;;OAEG;IAEH,eAAe;CAMhB"}
1
+ {"version":3,"file":"persistent-lifecycle.d.ts","sourceRoot":"","sources":["../../../src/persistent-lifecycle.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkB,QAAQ,EAAqB,MAAM,eAAe,CAAC;AAW5E,MAAM,MAAM,yBAAyB,CAAC,CAAC,IAAI;IACzC;;;OAGG;IACH,KAAK,EAAE,MAAM,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAEpC;;OAEG;IACH,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAElC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;;GAGG;AACH,qBAAa,mBAAmB,CAAC,CAAC,CAAE,SAAQ,QAAQ;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+B;IACtD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8B;IACpD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAsB;IAClD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAE1C,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,YAAY,CAAC,CAA2B;IAChD,OAAO,CAAC,aAAa,CAAK;gBAEd,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,eAA2C,EAAE,EAAE,yBAAyB,CAAC,CAAC,CAAC;IAQjH,IAAI,KAAK,kBAER;cAGwB,KAAK;cAgBL,MAAM;YAMjB,QAAQ;YAkBR,iBAAiB;IAW/B;;OAEG;IAEG,eAAe;CAMtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"timeout.d.ts","sourceRoot":"","sources":["../../../src/timeout.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAAwB,MAAM,eAAe,CAAC;AAKnE;;GAEG;AACH,eAAO,MAAM,KAAK,OAAQ,MAAM,kBAgB/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,qBAAiB,CAAC;AAE1C;;GAEG;AACH,eAAO,MAAM,YAAY,GAAU,CAAC,WACzB,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,WAC/B,MAAM,QACT,KAAK,GAAG,MAAM,KACnB,OAAO,CAAC,CAAC,CAeX,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,cAAe,MAAM,CAAC,OAAO,SAIrD,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAS,OAAO,MAAM,MAAM,kBAkBxD,CAAC"}
1
+ {"version":3,"file":"timeout.d.ts","sourceRoot":"","sources":["../../../src/timeout.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAAwB,MAAM,eAAe,CAAC;AAKnE;;GAEG;AACH,eAAO,MAAM,KAAK,OAAQ,MAAM,kBAgB/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,qBAAiB,CAAC;AAE1C;;GAEG;AACH,eAAO,MAAM,YAAY,GAAU,CAAC,WAEzB,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,WAC/B,MAAM,QACT,KAAK,GAAG,MAAM,KACnB,OAAO,CAAC,CAAC,CAeX,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,cAAe,MAAM,CAAC,OAAO,SAIrD,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAS,OAAO,MAAM,MAAM,kBAkBxD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/async",
3
- "version": "0.8.1",
3
+ "version": "0.8.2-main.2f9c567",
4
4
  "description": "Async utilities.",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -29,12 +29,12 @@
29
29
  "dependencies": {
30
30
  "zen-observable": "^0.10.0",
31
31
  "zen-push": "^0.3.1",
32
- "@dxos/context": "0.8.1",
33
- "@dxos/debug": "0.8.1",
34
- "@dxos/log": "0.8.1",
35
- "@dxos/invariant": "0.8.1",
36
- "@dxos/util": "0.8.1",
37
- "@dxos/node-std": "0.8.1"
32
+ "@dxos/context": "0.8.2-main.2f9c567",
33
+ "@dxos/debug": "0.8.2-main.2f9c567",
34
+ "@dxos/invariant": "0.8.2-main.2f9c567",
35
+ "@dxos/log": "0.8.2-main.2f9c567",
36
+ "@dxos/util": "0.8.2-main.2f9c567",
37
+ "@dxos/node-std": "0.8.2-main.2f9c567"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@types/zen-observable": "^0.8.3"
package/src/cleanup.ts CHANGED
@@ -6,12 +6,30 @@ import { ComplexMap, type PrimitiveProjection } from '@dxos/util';
6
6
 
7
7
  export type CleanupFn = () => void;
8
8
 
9
+ /**
10
+ * Combine multiple cleanup functions into a single cleanup function.
11
+ * Can be used in effect hooks in conjunction with `addEventListener`.
12
+ */
9
13
  export const combine = (...cleanupFns: CleanupFn[]): CleanupFn => {
10
14
  return () => {
11
15
  cleanupFns.forEach((cleanupFn) => cleanupFn());
12
16
  };
13
17
  };
14
18
 
19
+ /**
20
+ * Add the event listener and return a cleanup function.
21
+ * Can be used in effect hooks in conjunction with `combine`.
22
+ */
23
+ export const addEventListener = <T extends Event = Event>(
24
+ el: HTMLElement | Window,
25
+ event: string,
26
+ handler: EventListenerOrEventListenerObject | ((event: T) => void),
27
+ options?: boolean | AddEventListenerOptions,
28
+ ): CleanupFn => {
29
+ el.addEventListener(event, handler as EventListenerOrEventListenerObject, options);
30
+ return () => el.removeEventListener(event, handler as EventListenerOrEventListenerObject, options);
31
+ };
32
+
15
33
  export class SubscriptionList {
16
34
  private readonly _cleanups: CleanupFn[] = [];
17
35
 
package/src/mutex.ts CHANGED
@@ -115,7 +115,7 @@ const enableWarning = !FORCE_DISABLE_WARNING && (globalThis as any).mochaExecuto
115
115
  export const synchronized = (
116
116
  target: any,
117
117
  propertyName: string,
118
- descriptor: TypedPropertyDescriptor<(...args: any) => any>,
118
+ descriptor: TypedPropertyDescriptor<(...args: any) => Promise<any>>,
119
119
  ) => {
120
120
  const method = descriptor.value!;
121
121
  descriptor.value = async function synchronizedMethod(this: any & LockableClass, ...args: any) {
@@ -25,7 +25,7 @@ describe('ConnectionState', () => {
25
25
  });
26
26
 
27
27
  const triggerTimestamp = Date.now();
28
- persistentLifecycle.scheduleRestart();
28
+ void persistentLifecycle.scheduleRestart();
29
29
  const timeToTrigger = (await triggerCall.wait({ timeout: 1000 })) - triggerTimestamp;
30
30
  expect(timeToTrigger).to.be.lessThan(50);
31
31
  });
@@ -69,7 +69,7 @@ describe('ConnectionState', () => {
69
69
 
70
70
  await persistentLifecycle.open();
71
71
 
72
- persistentLifecycle.scheduleRestart();
72
+ void persistentLifecycle.scheduleRestart();
73
73
  await sleep(10);
74
74
  await persistentLifecycle.close();
75
75
  expect(restarted).to.be.true;
@@ -119,7 +119,7 @@ export class PersistentLifecycle<T> extends Resource {
119
119
  * Scheduling restart should be done from outside.
120
120
  */
121
121
  @synchronized
122
- scheduleRestart() {
122
+ async scheduleRestart() {
123
123
  if (this._lifecycleState !== LifecycleState.OPEN) {
124
124
  return;
125
125
  }
package/src/timeout.ts CHANGED
@@ -37,6 +37,7 @@ export const asyncReturn = () => sleep(0);
37
37
  * Wait for promise or throw error.
38
38
  */
39
39
  export const asyncTimeout = async <T>(
40
+ // TODO(dmaretskyi): This callback API is unintuitive and leads to bugs.
40
41
  promise: Promise<T> | (() => Promise<T>),
41
42
  timeout: number,
42
43
  err?: Error | string,