Update conflict appenditures. Add updated_at field

This commit is contained in:
Benjamin Toby 2026-04-11 08:58:38 +01:00
parent e6af7de865
commit 31a7fb40cb
3 changed files with 13 additions and 7 deletions

View File

@ -3,10 +3,11 @@ export default async function ({ sql: passed_sql, table, data }) {
let sql = passed_sql; let sql = passed_sql;
const { dbSchema } = await init(); const { dbSchema } = await init();
const table_schema = dbSchema.tables.find((t) => t.tableName == table); const table_schema = dbSchema.tables.find((t) => t.tableName == table);
const now = Date.now();
if (table_schema?.tableName) { if (table_schema?.tableName) {
const set_sql = Object.keys(data[0]) const set_sql_arr = Object.keys(data[0]).map((field) => `${field} = excluded.${field}`);
.map((field) => `${field} = excluded.${field}`) set_sql_arr.push(`updated_at = ${now}`);
.join(", "); const set_sql = set_sql_arr.join(", ");
const unique_fields = table_schema.fields.filter((f) => f.unique); const unique_fields = table_schema.fields.filter((f) => f.unique);
for (let i = 0; i < unique_fields.length; i++) { for (let i = 0; i < unique_fields.length; i++) {
const field = unique_fields[i]; const field = unique_fields[i];

View File

@ -1,6 +1,6 @@
{ {
"name": "@moduletrace/bun-sqlite", "name": "@moduletrace/bun-sqlite",
"version": "1.0.28", "version": "1.0.29",
"description": "SQLite manager for Bun", "description": "SQLite manager for Bun",
"author": "Benjamin Toby", "author": "Benjamin Toby",
"main": "dist/index.js", "main": "dist/index.js",

View File

@ -10,11 +10,16 @@ export default async function ({ sql: passed_sql, table, data }: Params) {
let sql = passed_sql; let sql = passed_sql;
const { dbSchema } = await init(); const { dbSchema } = await init();
const table_schema = dbSchema.tables.find((t) => t.tableName == table); const table_schema = dbSchema.tables.find((t) => t.tableName == table);
const now = Date.now();
if (table_schema?.tableName) { if (table_schema?.tableName) {
const set_sql = Object.keys(data[0]) const set_sql_arr = Object.keys(data[0]).map(
.map((field) => `${field} = excluded.${field}`) (field) => `${field} = excluded.${field}`,
.join(", "); );
set_sql_arr.push(`updated_at = ${now}`);
const set_sql = set_sql_arr.join(", ");
const unique_fields = table_schema.fields.filter((f) => f.unique); const unique_fields = table_schema.fields.filter((f) => f.unique);