From 88fff6c507c22e5cfba01493df3378207518fc22 Mon Sep 17 00:00:00 2001 From: Benjamin Toby Date: Sun, 5 Apr 2026 07:37:08 +0100 Subject: [PATCH] Update insert value types. Allow buffers --- dist/types/index.d.ts | 7 ++++--- dist/utils/sql-insert-generator.js | 8 +++++--- package.json | 2 +- src/types/index.ts | 12 +++++++++--- src/utils/sql-insert-generator.ts | 16 +++++++++++----- 5 files changed, 30 insertions(+), 15 deletions(-) diff --git a/dist/types/index.d.ts b/dist/types/index.d.ts index cb454e9..7327827 100644 --- a/dist/types/index.d.ts +++ b/dist/types/index.d.ts @@ -978,14 +978,15 @@ export type BUNSQLITEErrorObject = { }; export interface SQLInsertGenReturn { query: string; - values: (string | number)[]; + values: SQLInsertGenValueType[]; } +export type SQLInsertGenValueType = string | number | Float32Array | Buffer; export type SQLInsertGenDataFn = () => { placeholder: string; - value: string | number | Float32Array; + value: SQLInsertGenValueType; }; export type SQLInsertGenDataType = { - [k: string]: string | number | SQLInsertGenDataFn | undefined | null; + [k: string]: SQLInsertGenValueType | SQLInsertGenDataFn | undefined | null; }; export type SQLInsertGenParams = { data: SQLInsertGenDataType[]; diff --git a/dist/utils/sql-insert-generator.js b/dist/utils/sql-insert-generator.js index 7b0ddc7..1d6d49e 100644 --- a/dist/utils/sql-insert-generator.js +++ b/dist/utils/sql-insert-generator.js @@ -23,9 +23,11 @@ export default function sqlInsertGenerator({ tableName, data, dbFullName, }) { const finalValue = typeof value == "string" || typeof value == "number" ? value - : value - ? String(value().value) - : null; + : typeof value == "function" + ? value().value + : value + ? value + : null; if (!finalValue) { queryValues.push(""); return "?"; diff --git a/package.json b/package.json index 3b18cb6..b236bd2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@moduletrace/bun-sqlite", - "version": "1.0.21", + "version": "1.0.22", "description": "SQLite manager for Bun", "author": "Benjamin Toby", "main": "dist/index.js", diff --git a/src/types/index.ts b/src/types/index.ts index ad8b65b..0fcb556 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -1131,16 +1131,22 @@ export type BUNSQLITEErrorObject = { export interface SQLInsertGenReturn { query: string; - values: (string | number)[]; + values: SQLInsertGenValueType[]; } +export type SQLInsertGenValueType = + | string + | number + | Float32Array + | Buffer; + export type SQLInsertGenDataFn = () => { placeholder: string; - value: string | number | Float32Array; + value: SQLInsertGenValueType; }; export type SQLInsertGenDataType = { - [k: string]: string | number | SQLInsertGenDataFn | undefined | null; + [k: string]: SQLInsertGenValueType | SQLInsertGenDataFn | undefined | null; }; export type SQLInsertGenParams = { diff --git a/src/utils/sql-insert-generator.ts b/src/utils/sql-insert-generator.ts index 5b60de4..5645269 100644 --- a/src/utils/sql-insert-generator.ts +++ b/src/utils/sql-insert-generator.ts @@ -1,4 +1,8 @@ -import type { SQLInsertGenParams, SQLInsertGenReturn } from "../types"; +import type { + SQLInsertGenParams, + SQLInsertGenReturn, + SQLInsertGenValueType, +} from "../types"; /** * # SQL Insert Generator @@ -24,7 +28,7 @@ export default function sqlInsertGenerator({ }); let queryBatches: string[] = []; - let queryValues: (string | number)[] = []; + let queryValues: SQLInsertGenValueType[] = []; data.forEach((item) => { queryBatches.push( @@ -36,9 +40,11 @@ export default function sqlInsertGenerator({ typeof value == "string" || typeof value == "number" ? value - : value - ? String(value().value) - : null; + : typeof value == "function" + ? value().value + : value + ? value + : null; if (!finalValue) { queryValues.push("");