v0.12.2
Release notes from CHANGELOG.md for @async/framework@0.12.2 (2026-06-24).
- Added
createRouter({ mode: "signals" })for route-only shells that update
router.*state and history without rendering partials or swapping
boundaries. - Added
loader.swap(boundary, html, { scan })withauto,full, andnone
scan modes for cheaper boundary replacement when inserted content is inert or
manually scanned later. - Added
loader.swap(boundary, html, { strategy: "morph" })as an opt-in
stable-shell update path that preserves matching nodes, avoids full subtree
replacement, and still cleans removed or replaced scoped resources. - Treat partial envelopes with
html: undefinedas no route replacement and
warn instead of clearing the active route boundary;html: ""remains an
explicit clear. - Scoped lifecycle fallback hooks for components rendered through
this.render(...)sothis.onMount(...),this.onVisible(...), and
this.on("intersect", ...)target the child component's rendered root
instead of the ancestor mount root. - Preserved direct
loader.mount(target, Component)fallback behavior, where
rootless and multi-root top-level components still receive the mount target. - Updated the bundled Flow bridge to
@async/flow@0.5.0, using async signal
detection while preserving existing async signal metadata and refresh paths. - Migration note: code that intentionally used nested fallback hooks to mutate
the ancestor mount root should move that behavior to the ancestor component or
bind a specific element withon:attach. - Added
this.onAttach(fn)as the canonical component attach lifecycle helper,
withthis.onMount(fn),this.on("mount", ...), andon:mountretained as
compatibility aliases that warn about the rename. - Bundle size from bundled TypeScript source:
browser.tsraw 338,346 B (338.3 KB / 0.338 MB), gzip 63,620 B (63.6 KB / 0.064 MB), br 51,844 B (51.8 KB / 0.052 MB) ->browser.min.jsraw 142,172 B (142.2 KB / 0.142 MB), gzip 41,549 B (41.5 KB / 0.042 MB), br 36,106 B (36.1 KB / 0.036 MB); delta raw -196,174 B (-196.2 KB / -0.196 MB), gzip -22,071 B (-22.1 KB / -0.022 MB), br -15,738 B (-15.7 KB / -0.016 MB).
Release evidence
- Release type: stable
- Package profile: framework-browser
- npm pack files: 40
| File | Raw | Gzip | Brotli |
|---|---|---|---|
browser.d.ts |
36.4 KB | 6.8 KB | 6.0 KB |
browser.js |
330.3 KB | 62.5 KB | 50.6 KB |
browser.min.js |
138.8 KB | 40.6 KB | 35.3 KB |
browser.ts |
330.4 KB | 62.5 KB | 50.6 KB |
browser.umd.js |
350.8 KB | 64.0 KB | 51.3 KB |
browser.umd.min.js |
141.0 KB | 40.8 KB | 35.4 KB |
framework.d.ts |
36.8 KB | 6.9 KB | 6.1 KB |
framework.ts |
335.5 KB | 63.5 KB | 51.2 KB |
server.js |
335.5 KB | 63.5 KB | 51.2 KB |
Diff links:
- browser.d.ts: https://github.com/async/framework/compare/HEAD%5E...v0.12.2?diff=unified#diff-browser.d.ts
- browser.js: https://github.com/async/framework/compare/HEAD%5E...v0.12.2?diff=unified#diff-browser.js
- browser.ts: https://github.com/async/framework/compare/HEAD%5E...v0.12.2?diff=unified#diff-browser.ts
- browser.umd.js: https://github.com/async/framework/compare/HEAD%5E...v0.12.2?diff=unified#diff-browser.umd.js
- framework.d.ts: https://github.com/async/framework/compare/HEAD%5E...v0.12.2?diff=unified#diff-framework.d.ts
- framework.ts: https://github.com/async/framework/compare/HEAD%5E...v0.12.2?diff=unified#diff-framework.ts
- server.js: https://github.com/async/framework/compare/HEAD%5E...v0.12.2?diff=unified#diff-server.js
Source: CHANGELOG.md in tag v0.12.2.