EIDOS

Never lose a write.

When someone hits Save, Eidos keeps that click until the server says OK — even if the network dies mid-way.

Two words

  • Save → action()

    Pocket the click. Replay when online. Same ticket number every retry.

  • Read → resource()

    Cache the shelf so the list still opens on a dead network.

src/lib/eidos.ts
import { resource, action } from '@sweidos/eidos'
// Read — still works offline
export const products = resource('/api/products', { offline: true })
// Save — never lose this click
export const createOrder = action(submitOrder, {
reliability: 'neverLose',
name: 'createOrder',
})

Honest promise

Delivery is at least once. Your server must dedupe with the idempotency key. Eidos is not magical exactly-once. If you only need online cache UI, use TanStack Query. If you only need SW assets, use Workbox.