Omni Async
Asynchronous state for JavaScript, TypeScript, React, Vue, and Svelte.
Omni Async shares request ordering and cancellation rules across runtimes. The standalone core operation owns observable state for JavaScript and TypeScript; React, Vue, and Svelte adapters own state through their native reactivity models.
Why Omni Async?
- Shared request rules — adapters use the same request ordering and cancellation semantics.
- Separate state fields — consume
data,error, loading state, and status independently. - Typed parameters and data — handlers determine trigger arguments and result types.
- Explicit concurrency — keep all requests active or let only the latest update state.
- Cancellation — abort supported work and prevent stale requests from updating state.
- Custom equality — suppress notifications when an update is not meaningful to your application.
Packages
| Package | Purpose |
|---|---|
omni-async | Unified API with framework-specific subpaths |
@omni-async/core | Dependency-free async operation primitive |
@omni-async/react | React hooks using React-owned state |
@omni-async/vue | Vue composables backed by refs and computed state |
@omni-async/svelte | Svelte readable stores and lifecycle helpers |
Continue with the quick start.