Askr
Reference

Glossary

Use glossary with the current published Askr packages.

  • @askrjs/askr0.0.59

How to use glossary

Import only the entrypoint that owns the API. Use generated reference pages for exact signatures and this guide for behavioral constraints.

  1. Import the published @askrjs/askr entrypoint.
  2. Keep glossary configuration next to the component, route, or server composition root that owns it.
  3. Handle pending, unavailable, cancellation, and failure states, then verify the production path.
import * as api from '@askrjs/askr';

// Stay on the published entrypoint instead of reaching into dist/ or src/.
const availableExports = Object.keys(api);

Runtime terms

**State** is a readable/settable cell created by `state()`, returned as a tuple-like `StateTuple<T>` you can both call and destructure. **Scope** is a `defineScope()`/`readScope()` pair for passing a value down the component tree without prop drilling. **Derived** and **Selector** wrap `derive()` and `selector()` — computed values that stay in sync with their sources without you manually re-running the calculation.

Routing terms

A **route** is registered with `route(path, component, options?)` and matches a `RouteContext` carrying `params`, `pathname`, `search`, `hash`, and an `AbortSignal`. **Route mode** is one of `'spa' | 'ssr' | 'ssg'`, and an **access decision** from a route policy is one of `allow`, `redirect` (with a status like 301–308), or `deny` (401/403/404).

Data terms

A **query** (from @askrjs/askr/data) tracks async data with loading, error, stale, refreshing, and pending-write states — the same states @askrjs/askr/testing's `mockQuery` lets you construct directly for tests. **Invalidation** marks a cache prefix as stale so the next read triggers a refetch, and an **invalidation recorder** is the testing utility that captures those calls.

Rendering terms

A **VNode** is the lightweight render output shape — a string, number, boolean, null/undefined, or a `DOMElement` with `type`/`props`/`children`. A **component instance** is the runtime's bookkeeping record for one mounted component (its abort controller, state values, cleanup functions); **hydration** is the process of attaching that runtime bookkeeping to server-rendered markup already sitting in the DOM.