Breaking changes
- Dropped support for Node.js versions < 10
- Replaced the
Integer
library with nativeBigInts
- Removed the
db.checkpoint()
method in favor ofdb.pragma('wal_checkpoint(RESTART)')
- Removed the "memory" option when opening databases in favor of SQLite3's
":memory:"
filename convention
Non-breaking changes
- Added support for worker threads (see an example here)
- Added support for Jest environments
- Fixed many issues related to users building packaged executables, including:
FATAL ERROR: v8::ToLocalChecked Empty MaybeLocal
FATAL ERROR: v8::Object::GetAlignedPointerFromInternalField()
Error: Cannot find module '...\node_modules\integer\node
- Various electron-related issues
- Added an optional second parameter to
db.loadExtension()
which allows users to specify the entry point of the extension - Improved documentation for building custom configurations
- Documented some undocumented features.
- Enabled SQLITE_ENABLE_GEOPOLY
- Enabled SQLITE_THREADSAFE=2
- Enabled SQLITE_OMIT_SHARED_CACHE
- Removed SQLITE_USE_URI
- The "verbose" option now logs SQL passed to db.exec() in statement-by-statement fashion, rather than all at once (to match the behavior of using prepared statements)
- Added "unsafe mode" which allows advanced users to do dangerous things at their own risk:
- allows users to mutate the database while iterating through a query, which has non-deterministic behavior
- disables
SQLITE_DBCONFIG_DEFENSIVE
which allows users to corrupt their database file and execute undefined behavior