diff --git a/dist/lib/sqlite/db-delete.d.ts b/dist/lib/sqlite/db-delete.d.ts index 0c52179..c1c63ba 100644 --- a/dist/lib/sqlite/db-delete.d.ts +++ b/dist/lib/sqlite/db-delete.d.ts @@ -1,16 +1,16 @@ import type { APIResponseObject, ServerQueryParam } from "../../types"; -type Params = { - table: string; - query?: ServerQueryParam; +}, Table extends string = string> = { + table: Table; + query?: ServerQueryParam; targetId?: number | string; }; -export default function DbDelete({ table, query, targetId }: Params): Promise; +}, Table extends string = string>({ table, query, targetId, }: Params): Promise; export {}; diff --git a/dist/lib/sqlite/db-delete.js b/dist/lib/sqlite/db-delete.js index cddec14..34c3370 100644 --- a/dist/lib/sqlite/db-delete.js +++ b/dist/lib/sqlite/db-delete.js @@ -1,7 +1,7 @@ import DbClient from "."; import _ from "lodash"; import sqlGenerator from "../../utils/sql-generator"; -export default async function DbDelete({ table, query, targetId }) { +export default async function DbDelete({ table, query, targetId, }) { try { let finalQuery = query || {}; if (targetId) { diff --git a/dist/lib/sqlite/db-insert.d.ts b/dist/lib/sqlite/db-insert.d.ts index a33d834..62725f7 100644 --- a/dist/lib/sqlite/db-insert.d.ts +++ b/dist/lib/sqlite/db-insert.d.ts @@ -1,15 +1,15 @@ import type { APIResponseObject } from "../../types"; -type Params = { - table: string; - data: T[]; +}, Table extends string = string> = { + table: Table; + data: Schema[]; }; -export default function DbInsert({ table, data }: Params): Promise; +}, Table extends string = string>({ table, data }: Params): Promise; export {}; diff --git a/dist/lib/sqlite/db-select.d.ts b/dist/lib/sqlite/db-select.d.ts index b3c001b..ed27786 100644 --- a/dist/lib/sqlite/db-select.d.ts +++ b/dist/lib/sqlite/db-select.d.ts @@ -1,17 +1,17 @@ import type { APIResponseObject, ServerQueryParam } from "../../types"; -type Params = { - query?: ServerQueryParam; - table: string; +}, Table extends string = string> = { + query?: ServerQueryParam; + table: Table; count?: boolean; targetId?: number | string; }; -export default function DbSelect({ table, query, count, targetId }: Params): Promise>; +}, Table extends string = string>({ table, query, count, targetId, }: Params): Promise>; export {}; diff --git a/dist/lib/sqlite/db-select.js b/dist/lib/sqlite/db-select.js index 2f66f11..dfd50ed 100644 --- a/dist/lib/sqlite/db-select.js +++ b/dist/lib/sqlite/db-select.js @@ -2,7 +2,7 @@ import mysql from "mysql"; import DbClient from "."; import _ from "lodash"; import sqlGenerator from "../../utils/sql-generator"; -export default async function DbSelect({ table, query, count, targetId }) { +export default async function DbSelect({ table, query, count, targetId, }) { try { let finalQuery = query || {}; if (targetId) { diff --git a/dist/lib/sqlite/db-update.d.ts b/dist/lib/sqlite/db-update.d.ts index ec45082..68bff0c 100644 --- a/dist/lib/sqlite/db-update.d.ts +++ b/dist/lib/sqlite/db-update.d.ts @@ -1,17 +1,17 @@ import type { APIResponseObject, ServerQueryParam } from "../../types"; -type Params = { - table: string; - data: T; - query?: ServerQueryParam; +}, Table extends string = string> = { + table: Table; + data: Schema; + query?: ServerQueryParam; targetId?: number | string; }; -export default function DbUpdate({ table, data, query, targetId }: Params): Promise; +}, Table extends string = string>({ table, data, query, targetId, }: Params): Promise; export {}; diff --git a/dist/lib/sqlite/db-update.js b/dist/lib/sqlite/db-update.js index 57543e8..54ae816 100644 --- a/dist/lib/sqlite/db-update.js +++ b/dist/lib/sqlite/db-update.js @@ -1,7 +1,7 @@ import DbClient from "."; import _ from "lodash"; import sqlGenerator from "../../utils/sql-generator"; -export default async function DbUpdate({ table, data, query, targetId }) { +export default async function DbUpdate({ table, data, query, targetId, }) { try { let finalQuery = query || {}; if (targetId) { diff --git a/package.json b/package.json index 51fff86..be73ae9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@moduletrace/bun-sqlite", - "version": "1.0.4", + "version": "1.0.5", "description": "SQLite manager for Bun", "author": "Benjamin Toby", "main": "dist/index.js", diff --git a/src/lib/sqlite/db-delete.ts b/src/lib/sqlite/db-delete.ts index 7df26cf..690ddb6 100644 --- a/src/lib/sqlite/db-delete.ts +++ b/src/lib/sqlite/db-delete.ts @@ -3,15 +3,23 @@ import _ from "lodash"; import type { APIResponseObject, ServerQueryParam } from "../../types"; import sqlGenerator from "../../utils/sql-generator"; -type Params = { - table: string; - query?: ServerQueryParam; +type Params< + Schema extends { [k: string]: any } = { [k: string]: any }, + Table extends string = string, +> = { + table: Table; + query?: ServerQueryParam; targetId?: number | string; }; export default async function DbDelete< - T extends { [k: string]: any } = { [k: string]: any }, ->({ table, query, targetId }: Params): Promise { + Schema extends { [k: string]: any } = { [k: string]: any }, + Table extends string = string, +>({ + table, + query, + targetId, +}: Params): Promise { try { let finalQuery = query || {}; diff --git a/src/lib/sqlite/db-insert.ts b/src/lib/sqlite/db-insert.ts index 1e4fcbf..d8e57a2 100644 --- a/src/lib/sqlite/db-insert.ts +++ b/src/lib/sqlite/db-insert.ts @@ -2,14 +2,18 @@ import DbClient from "."; import type { APIResponseObject } from "../../types"; import sqlInsertGenerator from "../../utils/sql-insert-generator"; -type Params = { - table: string; - data: T[]; +type Params< + Schema extends { [k: string]: any } = { [k: string]: any }, + Table extends string = string, +> = { + table: Table; + data: Schema[]; }; export default async function DbInsert< - T extends { [k: string]: any } = { [k: string]: any }, ->({ table, data }: Params): Promise { + Schema extends { [k: string]: any } = { [k: string]: any }, + Table extends string = string, +>({ table, data }: Params): Promise { try { const finalData: { [k: string]: any }[] = data.map((d) => ({ ...d, diff --git a/src/lib/sqlite/db-select.ts b/src/lib/sqlite/db-select.ts index 27cda7d..da999b0 100644 --- a/src/lib/sqlite/db-select.ts +++ b/src/lib/sqlite/db-select.ts @@ -4,16 +4,25 @@ import _ from "lodash"; import type { APIResponseObject, ServerQueryParam } from "../../types"; import sqlGenerator from "../../utils/sql-generator"; -type Params = { - query?: ServerQueryParam; - table: string; +type Params< + Schema extends { [k: string]: any } = { [k: string]: any }, + Table extends string = string, +> = { + query?: ServerQueryParam; + table: Table; count?: boolean; targetId?: number | string; }; export default async function DbSelect< - T extends { [k: string]: any } = { [k: string]: any }, ->({ table, query, count, targetId }: Params): Promise> { + Schema extends { [k: string]: any } = { [k: string]: any }, + Table extends string = string, +>({ + table, + query, + count, + targetId, +}: Params): Promise> { try { let finalQuery = query || {}; @@ -38,10 +47,10 @@ export default async function DbSelect< const sql = mysql.format(sqlObj.string, sqlObj.values); - const res = DbClient.query(sql); + const res = DbClient.query(sql); const batchRes = res.all(); - let resp: APIResponseObject = { + let resp: APIResponseObject = { success: Boolean(batchRes[0]), payload: batchRes, singleRes: batchRes[0], diff --git a/src/lib/sqlite/db-update.ts b/src/lib/sqlite/db-update.ts index ad69d38..10be70a 100644 --- a/src/lib/sqlite/db-update.ts +++ b/src/lib/sqlite/db-update.ts @@ -3,16 +3,25 @@ import _ from "lodash"; import type { APIResponseObject, ServerQueryParam } from "../../types"; import sqlGenerator from "../../utils/sql-generator"; -type Params = { - table: string; - data: T; - query?: ServerQueryParam; +type Params< + Schema extends { [k: string]: any } = { [k: string]: any }, + Table extends string = string, +> = { + table: Table; + data: Schema; + query?: ServerQueryParam; targetId?: number | string; }; export default async function DbUpdate< - T extends { [k: string]: any } = { [k: string]: any }, ->({ table, data, query, targetId }: Params): Promise { + Schema extends { [k: string]: any } = { [k: string]: any }, + Table extends string = string, +>({ + table, + data, + query, + targetId, +}: Params): Promise { try { let finalQuery = query || {};