Stable Bun 1.4.3 runs installs, the development server, standalone type checks, the native test runner and a Bun.serve static server. Native lint/fmt are canary-only, and Angular's server build needs Node loader hooks Bun does not apply, so the spec now keeps ESLint/Prettier until a stable release, builds Angular client-only behind a Bun static server, converts line coverage from lcov, and replaces the heap cap with a container memory limit. Refs #289 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1.3 KiB
status
| status |
|---|
| proposed |
Bun Runtime and Native Tooling
VacOptimizer will use Bun as the runtime for project-owned JavaScript in
development, CI, and production, adopting its native test runner, linter,
formatter, type checker, and HTTP server even without measured performance gains.
This deliberately accepts Bun-specific tooling and migration work while retaining
Angular's standard compiler and build pipeline, including TypeScript 6 for
Angular compilation alongside bun check for standalone TypeScript checking.
Verification on stable Bun 1.4.3 narrowed this: ESLint and Prettier stay,
run by Bun, until a stable release ships the native linter and formatter;
Angular builds a client-only bundle, because its server build relies on Node
loader hooks Bun does not apply, and a small Bun.serve server delivers it,
giving up @angular/ssr; coverage is line-level, converted from lcov to the
existing HTML and Cobertura reports; and the benchmark's heap cap becomes a
container memory limit.
Existing behavior, tests, lint rules, coverage reporting, and benchmark budgets must be preserved; incompatibilities must be fixed or reported as blockers before declaring completion, and a Node.js fallback does not meet the runtime requirement. The development spec records the agreed boundaries, acceptance criteria, and remaining verification.