Open
Description
Issue Summary
When I call
db.close((err) => {
if (err) {
reject(err);
} else {
resolve(db);
}
});
I get the error:
node:events:513
const handler = events[type];
^
TypeError: Cannot read properties of null (reading 'close')
at Database.emit (node:events:513:25)
The value of db
is
Steps to Reproduce
// see below for how I defined the sqlite_* functions
// they're basically promisified versions of open/serialize/close
const db = await sqlite_open("../feeds.sqlite");
await sqlite_serialize({db: db, statements: [...]});
await sqlite_close(db);
export async function sqlite_open(filename: string): Promise<sqlite3.Database> {
return await new Promise<sqlite3.Database>((resolve, reject) => {
const db = new sqlite3.Database(filename, (err) => {
if (err) {
reject(err);
} else {
resolve(db);
}
});
});
}
export async function sqlite_close(db: sqlite3.Database): Promise<{}> {
return await new Promise<{}>((resolve, reject) => {
debugger;
db.close((err) => {
if (err) {
reject(err);
} else {
resolve({});
}
});
});
}
export async function sqlite_serialize({
db,
statements,
}: {
db: sqlite3.Database;
statements: string[];
}): Promise<{}> {
const promises: Promise<{}>[] = [];
db.serialize(() => {
for (const statement of statements) {
console.info(statement);
promises.push(
new Promise<{}>((resolve, reject) => {
db.run(statement, [], (err) => {
if (err) {
reject(err);
} else {
resolve({});
}
});
})
);
}
});
await Promise.all(promises);
return {};
}
Version
5.1.7
Node.js Version
18.20.4
How did you install the library?
yarn add sqlite3