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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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