[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [Assert](https://evolu.dev/docs/api-reference/common/Assert) › assertNotDisposed

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

Defined in: [packages/common/src/Assert.ts:967](https://github.com/evoluhq/evolu/blob/ecbac001e0c18bbc45b44715f49ecc3a768c5ec9/packages/common/src/Assert.ts#L967)

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

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

### Example

```ts
import {
  assertEqual,
  assertErr,
  assertInstanceOf,
  assertNotDisposed,
  trySync,
} from "@evolu/common";

await using disposer = new AsyncDisposableStack();
assertNotDisposed(disposer);
await disposer.disposeAsync();
const result = trySync(() => assertNotDisposed(disposer));
assertErr(result);
assertInstanceOf(result.error, 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 bug and should throw immediately instead of continuing with invalid state.