API reference@evolu/commonAssert › assertNotDisposed

function assertNotDisposed(
  value:
    | DisposableStack
    | AsyncDisposableStack
    | {
        disposed: boolean;
      },
): void;

Defined in: packages/common/src/Assert.ts:506

Guards synchronous methods on objects that may be called after disposal.

Use when an API must fail fast before touching already-disposed state.

Example

import {
  assert,
  assertEqual,
  assertErr,
  assertNotDisposed,
  trySync,
} from "@evolu/common";

await using disposer = new globalThis.AsyncDisposableStack();
assertNotDisposed(disposer);
await disposer.disposeAsync();
const result = trySync(() => assertNotDisposed(disposer));
assertErr(result);
assert(result.error instanceof Error, "Expected an Error.");
assertEqual(result.error.message, "Cannot use a disposed object.");

This is the JavaScript equivalent of the .NET ObjectDisposedException pattern: once a helper has been disposed, calling its synchronous methods is a programmer error and should throw immediately instead of continuing with invalid state.