Repository navigation
v3.1.1
·
22 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Changed
- Getter errors retain their identity: constructor option/limit getters and named-parameter getters in
get(),run(), andall()now propagate the exact thrown value, matchingnode:sqlite. Constructor getter errors are no longer wrapped asERR_SQLITE_ERROR.
Fixed
- Statement lifetime: statements now keep their database alive, so dropping the database reference no longer finalizes a statement or interrupts its iterator during garbage collection.
- Session lifetime: sessions now keep their database alive, so dropping the database reference no longer makes session methods fail with
database is not openafter garbage collection. - Worker shutdown:
process.exit()andworker.terminate()during authorizer, changeset, diagnostics, or aggregate callbacks, or while reading argument getters andProxytraps, no longer abort the whole process. The worker exits normally. - Concurrent builds (developer tooling):
npm run build:distreplaces output files atomically, preventing overlappingnpm testruns from loading missing or partially written files. - Stale native binaries (developer tooling):
npm run build:nativenow runs an incremental build oncebuild/is configured, so changed sources, headers, or build settings are recompiled before testing. - Source-build portability: explicitly include the required header for
std::strtol, avoiding reliance on compiler-specific indirect includes. - Optional benchmark drivers (developer tooling): skip
better-sqlite3when its native binding is missing or incompatible with the running Node.js version, instead of failing when opening a benchmark database. - Docker tests (developer tooling): cached builds on macOS no longer treat AppleDouble metadata as test files. Debian tests now default to Node.js 22, 24, and 26.
Full Changelog: v3.1.0...v3.1.1