stable

solid

SolidJS signal primitives — createCollectionSignal, createQuerySignal, createSyncSignal — backed by noy-db change events, no DOM dependency.

@noy-db/in-solid · pnpm add @noy-db/hub @noy-db/in-solid SolidJS signal primitives for noy-db.

What it does

Three primitives built on createSignal + createRenderEffect + onCleanup: createCollectionSignal returns [records, loading, error] accessors for a collection's full list; createQuerySignal returns the reactive result of a query builder; createSyncSignal returns an accessor for the hub's last change event. Subscriptions register synchronously inside createRenderEffect (no scheduler deferral), so no event fired between mount and first flush is missed. No DOM dependency — works in SSR and test environments via createRoot.

Usage

import { createCollectionSignal } from '@noy-db/in-solid'

const [invoices, loading] = createCollectionSignal<Invoice>(vault, 'invoices')
<Show when={!loading()} fallback={<p>Loading…</p>}>
  <For each={invoices()}>{(inv) => <li>{inv.number}</li>}</For>
</Show>

See also