aero.config.ts
How they connect
on:* handlers can call GET / POST without an import. Calls from <script is:state> need import { GET } from '@aero-js/hypermedia' (do not import these in is:build).
You do not call process() manually for standard hypermedia targets when both flags are on — the runtime runs destroy → swap → remount/process for compiled regions.
Form state + partial server response
Keep editable fields reactive; post current values; show server result in a target:data-aero-* bindings is processed automatically.
Reactive fragments from the server
Return HTML that uses runtime directive attributes. Prefix signal paths with$ to read the page store:
server/api/greeting.get.ts
note because process wires $note to the shared store.
Manual process for client-inserted HTML
When you insert markup outside hypermedia (for example a client script building a preview):data-aero-switch and other patterns.
busy requires both flags
The busy attribute and hypermedia state option reference boolean let bindings. The compiler enforces reactivity: true and hypermedia: true.
Decision checklist
- Client-only UI (toggle, local form) → reactivity alone
- Server HTML partial (load panel, submit form region) → reactivity + hypermedia + server route
- Swapped fragment must bind to page state → both flags; use
$signalin fragment or compile reactive markup server-side - No client JS → hypermedia fallbacks on
<a>/<form>only; reactive bindings will not run
Related
Reactivity
Enable flag,
is:state, and binding overview.Hypermedia
Actions, swap modes, and loading state.
Reactivity recipes
Forms, lists, reactive props.
Hypermedia recipes
Panels, partial posts, lifecycle.