|
|
@@ -97,7 +97,16 @@ function createSqliteStore({ file }) {
|
|
|
function open() {
|
|
|
if (db) return db;
|
|
|
fs.mkdirSync(path.dirname(dbFile), { recursive: true });
|
|
|
- const { DatabaseSync } = require('node:sqlite');
|
|
|
+ let DatabaseSync;
|
|
|
+ try {
|
|
|
+ ({ DatabaseSync } = require('node:sqlite'));
|
|
|
+ } catch (e) {
|
|
|
+ // Node < 22.5 没有内置 sqlite:单独给一个可读原因,前端据此提示升级 Node
|
|
|
+ const err = new Error(`当前 Node 版本不支持内置 SQLite(需要 22.5 及以上,当前 ${process.version})`);
|
|
|
+ err.reason = 'sqlite-unavailable';
|
|
|
+ err.cause = e;
|
|
|
+ throw err;
|
|
|
+ }
|
|
|
db = new DatabaseSync(dbFile);
|
|
|
db.exec('PRAGMA journal_mode = WAL');
|
|
|
db.exec('PRAGMA busy_timeout = 5000');
|