17 lines
747 B
JavaScript
17 lines
747 B
JavaScript
'use strict';
|
|
exports.readonly = false; // Inserting rows individually (`.run()`)
|
|
|
|
exports['better-sqlite3'] = (db, { table, columns }) => {
|
|
const stmt = db.prepare(`INSERT INTO ${table} (${columns.join(', ')}) VALUES (${columns.map(x => '@' + x).join(', ')})`);
|
|
const row = db.prepare(`SELECT * FROM ${table} LIMIT 1`).get();
|
|
return () => stmt.run(row);
|
|
};
|
|
|
|
exports['node-sqlite3'] = async (db, { table, columns }) => {
|
|
const sql = `INSERT INTO ${table} (${columns.join(', ')}) VALUES (${columns.map(x => '@' + x).join(', ')})`;
|
|
const row = Object.assign({}, ...Object.entries(await db.get(`SELECT * FROM ${table} LIMIT 1`))
|
|
.filter(([k]) => columns.includes(k))
|
|
.map(([k, v]) => ({ ['@' + k]: v })));
|
|
return () => db.run(sql, row);
|
|
};
|