chore(8.0): modernize toolchain + position Bun as a runtime
Consumer-invisible modernization pass — no public API or runtime-behavior
change; dist for the override-only files is byte-identical.
Toolchain:
- CI: GitHub Actions matrix — Node 22/24 (test:unit) + Bun latest (test:bun).
- engines: node ">=22" (was "22.x"), bun ">=1.1.0".
- tsconfig: isolatedModules + noImplicitOverride; add the 33 `override`
modifiers the flag requires across storage/integrations/vfs/transaction.
- deps: @types/node ^22; add prettier; drop dead standard-version,
@rollup/plugin-* and the redundant embedded eslintConfig (flat
eslint.config.js is the active config — verified identical lint output).
paramValidation: replace the top-level `await import('node:os'/'node:fs')`
with static ESM imports. The top-level-await form poisoned the module graph;
static imports also drop the browser/edge fallback branches no supported
runtime reaches (8.0 is Node/Bun/Deno-only).
Bun positioning: recommend Bun as a runtime (`bun add` / `bun run`), which is
green (test:bun 8/8). Drop single-binary `bun build --compile` as a target —
native addons cannot embed into it, and Bun 1.3.10 has a `--compile` codegen
regression around top-level await. Rename the Bun test to bun-runtime-test.ts
and correct docs that overclaimed single-binary support.
Gates: typecheck 0, build 0, test:unit 1743/1743, test:bun 8/8.
This commit is contained in:
parent
ae55d54cb5
commit
ca9129a924
20 changed files with 159 additions and 2330 deletions
|
|
@ -10,15 +10,13 @@ import { NounType, VerbType } from '../types/graphTypes.js'
|
|||
import { prodLog } from './logger.js'
|
||||
import { findCallerLocation } from './callerLocation.js'
|
||||
|
||||
// Dynamic import for Node.js os and fs modules
|
||||
let os: any = null
|
||||
let fs: any = null
|
||||
try {
|
||||
os = await import('node:os')
|
||||
fs = await import('node:fs')
|
||||
} catch (e) {
|
||||
// OS/FS modules not available
|
||||
}
|
||||
// 8.0 is Node/Bun/Deno-only (no browser path), so `node:os` / `node:fs` are
|
||||
// always present — static ESM imports instead of a top-level `await import()`.
|
||||
// The TLA form poisoned the module graph with a top-level await, which `bun
|
||||
// build --compile` refuses; the static form also drops the browser/edge
|
||||
// fallback branches that no supported runtime can reach.
|
||||
import * as os from 'node:os'
|
||||
import * as fs from 'node:fs'
|
||||
|
||||
const getSystemMemory = (): number => {
|
||||
if (os) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue