Update insert value types. Allow buffers

This commit is contained in:
Benjamin Toby 2026-04-05 07:37:08 +01:00
parent b3bd5866e6
commit 88fff6c507
5 changed files with 30 additions and 15 deletions

View File

@ -978,14 +978,15 @@ export type BUNSQLITEErrorObject = {
};
export interface SQLInsertGenReturn {
query: string;
values: (string | number)[];
values: SQLInsertGenValueType[];
}
export type SQLInsertGenValueType = string | number | Float32Array<ArrayBuffer> | Buffer<ArrayBuffer>;
export type SQLInsertGenDataFn = () => {
placeholder: string;
value: string | number | Float32Array<ArrayBuffer>;
value: SQLInsertGenValueType;
};
export type SQLInsertGenDataType = {
[k: string]: string | number | SQLInsertGenDataFn | undefined | null;
[k: string]: SQLInsertGenValueType | SQLInsertGenDataFn | undefined | null;
};
export type SQLInsertGenParams = {
data: SQLInsertGenDataType[];

View File

@ -23,8 +23,10 @@ export default function sqlInsertGenerator({ tableName, data, dbFullName, }) {
const finalValue = typeof value == "string" ||
typeof value == "number"
? value
: typeof value == "function"
? value().value
: value
? String(value().value)
? value
: null;
if (!finalValue) {
queryValues.push("");

View File

@ -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",

View File

@ -1131,16 +1131,22 @@ export type BUNSQLITEErrorObject = {
export interface SQLInsertGenReturn {
query: string;
values: (string | number)[];
values: SQLInsertGenValueType[];
}
export type SQLInsertGenValueType =
| string
| number
| Float32Array<ArrayBuffer>
| Buffer<ArrayBuffer>;
export type SQLInsertGenDataFn = () => {
placeholder: string;
value: string | number | Float32Array<ArrayBuffer>;
value: SQLInsertGenValueType;
};
export type SQLInsertGenDataType = {
[k: string]: string | number | SQLInsertGenDataFn | undefined | null;
[k: string]: SQLInsertGenValueType | SQLInsertGenDataFn | undefined | null;
};
export type SQLInsertGenParams = {

View File

@ -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,8 +40,10 @@ export default function sqlInsertGenerator({
typeof value == "string" ||
typeof value == "number"
? value
: typeof value == "function"
? value().value
: value
? String(value().value)
? value
: null;
if (!finalValue) {