API reference › @evolu/common › Assert › 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.