The canonical API
Aegis exports a lot (about 260 names, most of them small helpers). You need about a dozen; the rest are for specific jobs. Older aliases still work, but they are marked @deprecated in aegis.d.ts and are not documented here.
| Job | Use | Not |
|---|---|---|
| Component on a server page | island(name, Component, { types }) |
register() (low-level; keep for { load }) |
| Component anywhere else | mount(el, Component) |
component() |
| Custom element | element(tag, Component, { props }) |
defineElement() |
| State | signal, computed, effect, reactive |
store() |
| Template | html``, when, list, show |
text/attr/cls/style (for adopting existing DOM) |
| Data | resource(url, { cache, offline, params, loader }), mutation, api, invalidate('/api/users*') / invalidate(['users']) |
cachedResource(), offlineResource() |
| Forms | wireForm(formEl) for server forms, form(defaults) for virtual ones |
— |
| Server HTML | swap, adopt, boost |
innerHTML with data |
| Router | router({ '/users/:id': { loader, component: Page } }, { outlet, hash }) — props = params + { data, query } |
handler + manual mount() |
Component is one contract everywhere: ({ props, html, signal, on, … }) => Node | api | void.