Updates
This commit is contained in:
@@ -2,12 +2,20 @@ interface SQLInsertGenReturn {
|
||||
query: string;
|
||||
values: string[];
|
||||
}
|
||||
type DataFn = () => {
|
||||
placeholder: string;
|
||||
value: string | number | Float32Array<ArrayBuffer>;
|
||||
};
|
||||
type DataType = {
|
||||
[k: string]: string | number | DataFn | undefined | null;
|
||||
};
|
||||
type Params = {
|
||||
data: DataType[];
|
||||
tableName: string;
|
||||
dbFullName?: string;
|
||||
};
|
||||
/**
|
||||
* # SQL Insert Generator
|
||||
*/
|
||||
export default function sqlInsertGenerator({ tableName, data, dbFullName, }: {
|
||||
data: any[];
|
||||
tableName: string;
|
||||
dbFullName?: string;
|
||||
}): SQLInsertGenReturn | undefined;
|
||||
export default function sqlInsertGenerator({ tableName, data, dbFullName, }: Params): SQLInsertGenReturn | undefined;
|
||||
export {};
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
"use strict";
|
||||
// @ts-check
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = sqlInsertGenerator;
|
||||
/**
|
||||
@@ -18,19 +17,28 @@ function sqlInsertGenerator({ tableName, data, dbFullName, }) {
|
||||
}
|
||||
});
|
||||
});
|
||||
/** @type {string[]} */
|
||||
let queryBatches = [];
|
||||
/** @type {string[]} */
|
||||
let queryValues = [];
|
||||
data.forEach((item) => {
|
||||
queryBatches.push(`(${insertKeys
|
||||
.map((ky) => {
|
||||
var _a, _b;
|
||||
queryValues.push(((_b = (_a = item[ky]) === null || _a === void 0 ? void 0 : _a.toString()) === null || _b === void 0 ? void 0 : _b.match(/./))
|
||||
? item[ky]
|
||||
: null);
|
||||
return "?";
|
||||
const value = item[ky];
|
||||
const finalValue = typeof value == "string" ||
|
||||
typeof value == "number"
|
||||
? String(value)
|
||||
: value
|
||||
? String(value().value)
|
||||
: null;
|
||||
if (!finalValue) {
|
||||
return undefined;
|
||||
}
|
||||
queryValues.push(finalValue);
|
||||
const placeholder = typeof value == "function"
|
||||
? value().placeholder
|
||||
: "?";
|
||||
return placeholder;
|
||||
})
|
||||
.filter((k) => Boolean(k))
|
||||
.join(",")})`);
|
||||
});
|
||||
let query = `INSERT INTO ${finalDbName}${tableName} (${insertKeys.join(",")}) VALUES ${queryBatches.join(",")}`;
|
||||
|
||||
Vendored
+7
-1
@@ -959,7 +959,13 @@ export type ServerQueryObject<T extends object = {
|
||||
__query?: {
|
||||
[key in keyof T]: Omit<ServerQueryObject<T>, "__query">;
|
||||
};
|
||||
vector?: Float32Array<ArrayBuffer>;
|
||||
vector?: boolean;
|
||||
/**
|
||||
* ### The Function to be used to generate the vector.
|
||||
* Eg. `vec_f32`. This will come out as `vec_f32(?)`
|
||||
* instead of just `?`
|
||||
*/
|
||||
vectorFunction?: string;
|
||||
};
|
||||
export type ServerQueryQueryObject<T extends object = {
|
||||
[key: string]: any;
|
||||
|
||||
Reference in New Issue
Block a user