refactor(sqlite): remove the better-sqlite3 backend #11

Open
opened 2026-07-20 21:37:23 +02:00 by codinget · 0 comments
Owner

Goal

Remove the better-sqlite3 backend and retain node:sqlite as the only SQLite implementation.

Dependency

Blocked by #10. The Node runtime upgrade provides a baseline where node:sqlite is in release-candidate status and no longer experimental, so the extra native backend is no longer needed.

Scope

  • Remove better-sqlite3 and its type package from dependency metadata and the lockfile.
  • Delete WrappedBetterSqlite3Db and its backend-selection/registration code.
  • Remove native-module discovery, packaging, build configuration, and tests that exist only for better-sqlite3, while preserving anything used by other native dependencies.
  • Make SQLite URLs instantiate the node:sqlite implementation consistently, including readonly handling.
  • Keep the shared SQLite and database contract suites running against node:sqlite.
  • Update documentation and container/build assumptions so SQLite no longer needs a native addon toolchain or binary artifact.

Acceptance criteria

  • #10 is complete and the project runs on its new supported Node baseline.
  • Neither better-sqlite3 nor @types/better-sqlite3 appears in package.json or package-lock.json.
  • No better-sqlite3 implementation, dynamic selection path, native lookup, or backend-specific test remains.
  • Existing SQLite URLs and readonly behavior continue to work through node:sqlite.
  • SQLite migrations and all shared backend/API contract tests pass.
  • Build and Docker outputs contain no better_sqlite3.node binary.
  • Installation no longer requires compiling or downloading the better-sqlite3 native addon.
  • Documentation identifies node:sqlite as the sole SQLite backend.
## Goal Remove the `better-sqlite3` backend and retain `node:sqlite` as the only SQLite implementation. ## Dependency Blocked by #10. The Node runtime upgrade provides a baseline where `node:sqlite` is in release-candidate status and no longer experimental, so the extra native backend is no longer needed. ## Scope - Remove `better-sqlite3` and its type package from dependency metadata and the lockfile. - Delete `WrappedBetterSqlite3Db` and its backend-selection/registration code. - Remove native-module discovery, packaging, build configuration, and tests that exist only for `better-sqlite3`, while preserving anything used by other native dependencies. - Make SQLite URLs instantiate the `node:sqlite` implementation consistently, including readonly handling. - Keep the shared SQLite and database contract suites running against `node:sqlite`. - Update documentation and container/build assumptions so SQLite no longer needs a native addon toolchain or binary artifact. ## Acceptance criteria - #10 is complete and the project runs on its new supported Node baseline. - Neither `better-sqlite3` nor `@types/better-sqlite3` appears in `package.json` or `package-lock.json`. - No `better-sqlite3` implementation, dynamic selection path, native lookup, or backend-specific test remains. - Existing SQLite URLs and readonly behavior continue to work through `node:sqlite`. - SQLite migrations and all shared backend/API contract tests pass. - Build and Docker outputs contain no `better_sqlite3.node` binary. - Installation no longer requires compiling or downloading the `better-sqlite3` native addon. - Documentation identifies `node:sqlite` as the sole SQLite backend.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: codinget/abode#11