Update SQL handlers debugging

This commit is contained in:
Benjamin Toby 2026-04-05 07:19:26 +01:00
parent 685d47d91f
commit b3bd5866e6
9 changed files with 72 additions and 32 deletions

View File

@ -2,6 +2,7 @@ import DbClient from ".";
import _ from "lodash"; import _ from "lodash";
import sqlGenerator from "../../utils/sql-generator"; import sqlGenerator from "../../utils/sql-generator";
export default async function DbDelete({ table, query, targetId, }) { export default async function DbDelete({ table, query, targetId, }) {
let sqlObj = null;
try { try {
let finalQuery = query || {}; let finalQuery = query || {};
if (targetId) { if (targetId) {
@ -13,14 +14,14 @@ export default async function DbDelete({ table, query, targetId, }) {
}, },
}); });
} }
const sqlQueryObj = sqlGenerator({ sqlObj = sqlGenerator({
tableName: table, tableName: table,
genObject: finalQuery, genObject: finalQuery,
}); });
const whereClause = sqlQueryObj.string.match(/WHERE .*/)?.[0]; const whereClause = sqlObj.string.match(/WHERE .*/)?.[0];
if (whereClause) { if (whereClause) {
let sql = `DELETE FROM ${table} ${whereClause}`; let sql = `DELETE FROM ${table} ${whereClause}`;
const res = DbClient.run(sql, sqlQueryObj.values); const res = DbClient.run(sql, sqlObj.values);
return { return {
success: Boolean(res.changes), success: Boolean(res.changes),
postInsertReturn: { postInsertReturn: {
@ -28,8 +29,7 @@ export default async function DbDelete({ table, query, targetId, }) {
insertId: Number(res.lastInsertRowid), insertId: Number(res.lastInsertRowid),
}, },
debug: { debug: {
sql, sqlObj,
values: sqlQueryObj.values,
}, },
}; };
} }
@ -37,6 +37,9 @@ export default async function DbDelete({ table, query, targetId, }) {
return { return {
success: false, success: false,
msg: `No WHERE clause`, msg: `No WHERE clause`,
debug: {
sqlObj,
},
}; };
} }
} }
@ -44,6 +47,9 @@ export default async function DbDelete({ table, query, targetId, }) {
return { return {
success: false, success: false,
error: error.message, error: error.message,
debug: {
sqlObj,
},
}; };
} }
} }

View File

@ -1,16 +1,18 @@
import DbClient from "."; import DbClient from ".";
import sqlInsertGenerator from "../../utils/sql-insert-generator"; import sqlInsertGenerator from "../../utils/sql-insert-generator";
export default async function DbInsert({ table, data }) { export default async function DbInsert({ table, data }) {
let sqlObj = null;
try { try {
const finalData = data.map((d) => ({ const finalData = data.map((d) => ({
...d, ...d,
created_at: Date.now(), created_at: Date.now(),
updated_at: Date.now(), updated_at: Date.now(),
})); }));
const sqlObj = sqlInsertGenerator({ sqlObj =
sqlInsertGenerator({
tableName: table, tableName: table,
data: finalData, data: finalData,
}); }) || null;
const res = DbClient.run(sqlObj?.query || "", sqlObj?.values || []); const res = DbClient.run(sqlObj?.query || "", sqlObj?.values || []);
return { return {
success: Boolean(Number(res.lastInsertRowid)), success: Boolean(Number(res.lastInsertRowid)),
@ -27,6 +29,9 @@ export default async function DbInsert({ table, data }) {
return { return {
success: false, success: false,
error: error.message, error: error.message,
debug: {
sqlObj,
},
}; };
} }
} }

View File

@ -3,6 +3,7 @@ import DbClient from ".";
import _ from "lodash"; import _ from "lodash";
import sqlGenerator from "../../utils/sql-generator"; import sqlGenerator from "../../utils/sql-generator";
export default async function DbSelect({ table, query, count, targetId, }) { export default async function DbSelect({ table, query, count, targetId, }) {
let sqlObj = null;
try { try {
let finalQuery = query || {}; let finalQuery = query || {};
if (targetId) { if (targetId) {
@ -14,7 +15,7 @@ export default async function DbSelect({ table, query, count, targetId, }) {
}, },
}); });
} }
const sqlObj = sqlGenerator({ sqlObj = sqlGenerator({
tableName: table, tableName: table,
genObject: finalQuery, genObject: finalQuery,
count, count,
@ -43,6 +44,9 @@ export default async function DbSelect({ table, query, count, targetId, }) {
return { return {
success: false, success: false,
error: error.message, error: error.message,
debug: {
sqlObj,
},
}; };
} }
} }

View File

@ -2,6 +2,7 @@ import DbClient from ".";
import _ from "lodash"; import _ from "lodash";
import sqlGenerator from "../../utils/sql-generator"; import sqlGenerator from "../../utils/sql-generator";
export default async function DbUpdate({ table, data, query, targetId, }) { export default async function DbUpdate({ table, data, query, targetId, }) {
let sqlObj = null;
try { try {
let finalQuery = query || {}; let finalQuery = query || {};
if (targetId) { if (targetId) {
@ -13,12 +14,12 @@ export default async function DbUpdate({ table, data, query, targetId, }) {
}, },
}); });
} }
const sqlQueryObj = sqlGenerator({ sqlObj = sqlGenerator({
tableName: table, tableName: table,
genObject: finalQuery, genObject: finalQuery,
}); });
let values = []; let values = [];
const whereClause = sqlQueryObj.string.match(/WHERE .*/)?.[0]; const whereClause = sqlObj.string.match(/WHERE .*/)?.[0];
if (whereClause) { if (whereClause) {
let sql = `UPDATE ${table} SET`; let sql = `UPDATE ${table} SET`;
const finalData = { const finalData = {
@ -38,7 +39,7 @@ export default async function DbUpdate({ table, data, query, targetId, }) {
} }
} }
sql += ` ${whereClause}`; sql += ` ${whereClause}`;
values = [...values, ...sqlQueryObj.values]; values = [...values, ...sqlObj.values];
const res = DbClient.run(sql, values); const res = DbClient.run(sql, values);
return { return {
success: Boolean(res.changes), success: Boolean(res.changes),
@ -47,8 +48,7 @@ export default async function DbUpdate({ table, data, query, targetId, }) {
insertId: Number(res.lastInsertRowid), insertId: Number(res.lastInsertRowid),
}, },
debug: { debug: {
sql, sqlObj,
values,
}, },
}; };
} }
@ -63,6 +63,9 @@ export default async function DbUpdate({ table, data, query, targetId, }) {
return { return {
success: false, success: false,
error: error.message, error: error.message,
debug: {
sqlObj,
},
}; };
} }
} }

View File

@ -1,6 +1,6 @@
{ {
"name": "@moduletrace/bun-sqlite", "name": "@moduletrace/bun-sqlite",
"version": "1.0.20", "version": "1.0.21",
"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

@ -20,6 +20,8 @@ export default async function DbDelete<
query, query,
targetId, targetId,
}: Params<Schema, Table>): Promise<APIResponseObject> { }: Params<Schema, Table>): Promise<APIResponseObject> {
let sqlObj: ReturnType<typeof sqlGenerator> | null = null;
try { try {
let finalQuery = query || {}; let finalQuery = query || {};
@ -36,17 +38,17 @@ export default async function DbDelete<
); );
} }
const sqlQueryObj = sqlGenerator({ sqlObj = sqlGenerator({
tableName: table, tableName: table,
genObject: finalQuery, genObject: finalQuery,
}); });
const whereClause = sqlQueryObj.string.match(/WHERE .*/)?.[0]; const whereClause = sqlObj.string.match(/WHERE .*/)?.[0];
if (whereClause) { if (whereClause) {
let sql = `DELETE FROM ${table} ${whereClause}`; let sql = `DELETE FROM ${table} ${whereClause}`;
const res = DbClient.run(sql, sqlQueryObj.values); const res = DbClient.run(sql, sqlObj.values);
return { return {
success: Boolean(res.changes), success: Boolean(res.changes),
@ -55,20 +57,25 @@ export default async function DbDelete<
insertId: Number(res.lastInsertRowid), insertId: Number(res.lastInsertRowid),
}, },
debug: { debug: {
sql, sqlObj,
values: sqlQueryObj.values,
}, },
}; };
} else { } else {
return { return {
success: false, success: false,
msg: `No WHERE clause`, msg: `No WHERE clause`,
debug: {
sqlObj,
},
}; };
} }
} catch (error: any) { } catch (error: any) {
return { return {
success: false, success: false,
error: error.message, error: error.message,
debug: {
sqlObj,
},
}; };
} }
} }

View File

@ -1,5 +1,5 @@
import DbClient from "."; import DbClient from ".";
import type { APIResponseObject } from "../../types"; import type { APIResponseObject, SQLInsertGenReturn } from "../../types";
import sqlInsertGenerator from "../../utils/sql-insert-generator"; import sqlInsertGenerator from "../../utils/sql-insert-generator";
type Params< type Params<
@ -14,6 +14,8 @@ export default async function DbInsert<
Schema extends { [k: string]: any } = { [k: string]: any }, Schema extends { [k: string]: any } = { [k: string]: any },
Table extends string = string, Table extends string = string,
>({ table, data }: Params<Schema, Table>): Promise<APIResponseObject> { >({ table, data }: Params<Schema, Table>): Promise<APIResponseObject> {
let sqlObj: SQLInsertGenReturn | null = null;
try { try {
const finalData: { [k: string]: any }[] = data.map((d) => ({ const finalData: { [k: string]: any }[] = data.map((d) => ({
...d, ...d,
@ -21,10 +23,11 @@ export default async function DbInsert<
updated_at: Date.now(), updated_at: Date.now(),
})); }));
const sqlObj = sqlInsertGenerator({ sqlObj =
sqlInsertGenerator({
tableName: table, tableName: table,
data: finalData as any[], data: finalData as any[],
}); }) || null;
const res = DbClient.run(sqlObj?.query || "", sqlObj?.values || []); const res = DbClient.run(sqlObj?.query || "", sqlObj?.values || []);
@ -42,6 +45,9 @@ export default async function DbInsert<
return { return {
success: false, success: false,
error: error.message, error: error.message,
debug: {
sqlObj,
},
}; };
} }
} }

View File

@ -23,6 +23,8 @@ export default async function DbSelect<
count, count,
targetId, targetId,
}: Params<Schema, Table>): Promise<APIResponseObject<Schema>> { }: Params<Schema, Table>): Promise<APIResponseObject<Schema>> {
let sqlObj: ReturnType<typeof sqlGenerator> | null = null;
try { try {
let finalQuery = query || {}; let finalQuery = query || {};
@ -39,7 +41,7 @@ export default async function DbSelect<
); );
} }
const sqlObj = sqlGenerator({ sqlObj = sqlGenerator({
tableName: table, tableName: table,
genObject: finalQuery, genObject: finalQuery,
count, count,
@ -73,6 +75,9 @@ export default async function DbSelect<
return { return {
success: false, success: false,
error: error.message, error: error.message,
debug: {
sqlObj,
},
}; };
} }
} }

View File

@ -22,6 +22,8 @@ export default async function DbUpdate<
query, query,
targetId, targetId,
}: Params<Schema, Table>): Promise<APIResponseObject> { }: Params<Schema, Table>): Promise<APIResponseObject> {
let sqlObj: ReturnType<typeof sqlGenerator> | null = null;
try { try {
let finalQuery = query || {}; let finalQuery = query || {};
@ -38,14 +40,14 @@ export default async function DbUpdate<
); );
} }
const sqlQueryObj = sqlGenerator({ sqlObj = sqlGenerator({
tableName: table, tableName: table,
genObject: finalQuery, genObject: finalQuery,
}); });
let values: (string | number)[] = []; let values: (string | number)[] = [];
const whereClause = sqlQueryObj.string.match(/WHERE .*/)?.[0]; const whereClause = sqlObj.string.match(/WHERE .*/)?.[0];
if (whereClause) { if (whereClause) {
let sql = `UPDATE ${table} SET`; let sql = `UPDATE ${table} SET`;
@ -74,7 +76,7 @@ export default async function DbUpdate<
} }
sql += ` ${whereClause}`; sql += ` ${whereClause}`;
values = [...values, ...sqlQueryObj.values]; values = [...values, ...sqlObj.values];
const res = DbClient.run(sql, values); const res = DbClient.run(sql, values);
@ -85,8 +87,7 @@ export default async function DbUpdate<
insertId: Number(res.lastInsertRowid), insertId: Number(res.lastInsertRowid),
}, },
debug: { debug: {
sql, sqlObj,
values,
}, },
}; };
} else { } else {
@ -99,6 +100,9 @@ export default async function DbUpdate<
return { return {
success: false, success: false,
error: error.message, error: error.message,
debug: {
sqlObj,
},
}; };
} }
} }