From a1e56bb1b07c07fe1c3ddc96284f6f371cd2133f Mon Sep 17 00:00:00 2001 From: Benjamin Toby Date: Wed, 6 Aug 2025 06:37:43 +0100 Subject: [PATCH] Updates --- .../functions/backend/db/addDbEntry.d.ts | 4 +- .../functions/backend/db/addDbEntry.js | 26 ++++++++--- .../functions/backend/db/deleteDbEntry.js | 7 +-- .../functions/backend/db/updateDbEntry.d.ts | 4 +- .../functions/backend/db/updateDbEntry.js | 8 +++- .../functions/backend/fullAccessDbHandler.js | 5 ++- .../functions/backend/su-db-handler.js | 2 +- .../functions/backend/user-db-handler.js | 2 +- dist/package-shared/types/index.d.ts | 1 + .../utils/backend/import-mariadb-database.js | 4 +- .../utils/data-fetching/crud-get.d.ts | 2 +- .../utils/data-fetching/crud-get.js | 7 ++- .../utils/data-fetching/crud.js | 10 ++++- .../utils/db/conn-db-handler.d.ts | 32 ++++++++------ .../utils/db/conn-db-handler.js | 18 ++------ .../functions/backend/db/addDbEntry.ts | 33 ++++++++------ .../functions/backend/db/deleteDbEntry.ts | 7 +-- .../functions/backend/db/updateDbEntry.ts | 9 +++- .../functions/backend/fullAccessDbHandler.ts | 5 ++- .../functions/backend/su-db-handler.ts | 2 +- .../functions/backend/user-db-handler.ts | 2 +- package-shared/types/index.ts | 1 + .../utils/backend/import-mariadb-database.ts | 4 +- .../utils/data-fetching/crud-get.ts | 6 ++- package-shared/utils/data-fetching/crud.ts | 13 +++--- package-shared/utils/db/conn-db-handler.ts | 43 +++++++++++-------- package.json | 2 +- 27 files changed, 163 insertions(+), 96 deletions(-) diff --git a/dist/package-shared/functions/backend/db/addDbEntry.d.ts b/dist/package-shared/functions/backend/db/addDbEntry.d.ts index 77d71ef..50d4ee5 100644 --- a/dist/package-shared/functions/backend/db/addDbEntry.d.ts +++ b/dist/package-shared/functions/backend/db/addDbEntry.d.ts @@ -1,5 +1,6 @@ import { DbContextsArray } from "./runQuery"; import { APIResponseObject, DSQL_TableSchemaType, PostInsertReturn } from "../../../types"; +import { ConnectionConfig } from "mariadb"; export type AddDbEntryParam = { @@ -21,10 +22,11 @@ export type AddDbEntryParam({ dbContext, paradigm, dbFullName, tableName, data, batchData, tableSchema, duplicateColumnName, duplicateColumnValue, update, encryptionKey, encryptionSalt, forceLocal, debug, }: AddDbEntryParam): Promise>; +} = any, K extends string = string>({ dbContext, paradigm, dbFullName, tableName, data, batchData, tableSchema, duplicateColumnName, duplicateColumnValue, update, encryptionKey, encryptionSalt, forceLocal, debug, dbConfig, }: AddDbEntryParam): Promise>; diff --git a/dist/package-shared/functions/backend/db/addDbEntry.js b/dist/package-shared/functions/backend/db/addDbEntry.js index da5b011..a151756 100644 --- a/dist/package-shared/functions/backend/db/addDbEntry.js +++ b/dist/package-shared/functions/backend/db/addDbEntry.js @@ -24,7 +24,7 @@ const grab_parsed_value_1 = __importDefault(require("./grab-parsed-value")); * Add a db Entry Function */ function addDbEntry(_a) { - return __awaiter(this, arguments, void 0, function* ({ dbContext, paradigm, dbFullName, tableName, data, batchData, tableSchema, duplicateColumnName, duplicateColumnValue, update, encryptionKey, encryptionSalt, forceLocal, debug, }) { + return __awaiter(this, arguments, void 0, function* ({ dbContext, paradigm, dbFullName, tableName, data, batchData, tableSchema, duplicateColumnName, duplicateColumnValue, update, encryptionKey, encryptionSalt, forceLocal, debug, dbConfig, }) { const isMaster = forceLocal ? true : (0, check_if_is_master_1.default)({ dbContext, dbFullName }); @@ -47,9 +47,10 @@ function addDbEntry(_a) { typeof duplicateColumnName === "string" && newData) { const checkDuplicateQuery = `SELECT * FROM ${isMaster ? "" : `\`${dbFullName}\`.`}\`${tableName}\` WHERE \`${duplicateColumnName}\`=?`; - const duplicateValue = yield (0, conn_db_handler_1.default)(null, checkDuplicateQuery, [ - duplicateColumnValue, - ]); + const duplicateValue = yield (0, conn_db_handler_1.default)({ + query: checkDuplicateQuery, + values: [duplicateColumnValue], + }); if ((duplicateValue === null || duplicateValue === void 0 ? void 0 : duplicateValue[0]) && !update) { return { success: false, @@ -68,6 +69,9 @@ function addDbEntry(_a) { encryptionSalt, identifierColumnName: duplicateColumnName, identifierValue: duplicateColumnValue || "", + dbConfig, + debug, + forceLocal, }); } } @@ -138,7 +142,12 @@ function addDbEntry(_a) { const { insertKeysArray, insertValuesArray, queryValuesArray } = generateQuery(newData); const query = `INSERT INTO ${isMaster && !dbFullName ? "" : `\`${dbFullName}\`.`}\`${tableName}\` (${insertKeysArray.join(",")}) VALUES (${grabQueryValuesString(insertValuesArray)})`; const finalQueryValues = grabFinalQueryValuesArr(queryValuesArray); - const newInsert = yield (0, conn_db_handler_1.default)(null, query, finalQueryValues, debug); + const newInsert = yield (0, conn_db_handler_1.default)({ + query, + values: finalQueryValues, + debug, + dsqlConnOpts: { config: dbConfig }, + }); return { success: Boolean(newInsert === null || newInsert === void 0 ? void 0 : newInsert.insertId), payload: newInsert, @@ -165,7 +174,12 @@ function addDbEntry(_a) { .map((vl) => `(${grabQueryValuesString(vl)})`) .join(",")}`; const finalQueryValues = grabFinalQueryValuesArr(batchQueryValuesArray.flat()); - const newInsert = yield (0, conn_db_handler_1.default)(null, query, finalQueryValues, debug); + const newInsert = yield (0, conn_db_handler_1.default)({ + query, + values: finalQueryValues, + debug, + dsqlConnOpts: { config: dbConfig }, + }); if (debug) { (0, debug_log_1.default)({ log: newInsert, diff --git a/dist/package-shared/functions/backend/db/deleteDbEntry.js b/dist/package-shared/functions/backend/db/deleteDbEntry.js index a24ba35..417d19e 100644 --- a/dist/package-shared/functions/backend/db/deleteDbEntry.js +++ b/dist/package-shared/functions/backend/db/deleteDbEntry.js @@ -31,9 +31,10 @@ function deleteDbEntry(_a) { * @description */ const query = `DELETE FROM ${isMaster && !dbFullName ? "" : `\`${dbFullName}\`.`}\`${tableName}\` WHERE \`${identifierColumnName.toString()}\`=?`; - const deletedEntry = yield (0, conn_db_handler_1.default)(null, query, [ - identifierValue, - ]); + const deletedEntry = yield (0, conn_db_handler_1.default)({ + query, + values: [identifierValue], + }); /** * Return statement */ diff --git a/dist/package-shared/functions/backend/db/updateDbEntry.d.ts b/dist/package-shared/functions/backend/db/updateDbEntry.d.ts index 2d4ec75..5759f57 100644 --- a/dist/package-shared/functions/backend/db/updateDbEntry.d.ts +++ b/dist/package-shared/functions/backend/db/updateDbEntry.d.ts @@ -1,5 +1,6 @@ import { DbContextsArray } from "./runQuery"; import { APIResponseObject, DSQL_TableSchemaType, PostInsertReturn } from "../../../types"; +import { ConnectionConfig } from "mariadb"; type Param = { @@ -14,6 +15,7 @@ type Param({ dbContext, dbFullName, tableName, data, tableSchema, identifierColumnName, identifierValue, encryptionKey, encryptionSalt, forceLocal, debug, }: Param): Promise>; +} = any>({ dbContext, dbFullName, tableName, data, tableSchema, identifierColumnName, identifierValue, encryptionKey, encryptionSalt, forceLocal, debug, dbConfig, }: Param): Promise>; export {}; diff --git a/dist/package-shared/functions/backend/db/updateDbEntry.js b/dist/package-shared/functions/backend/db/updateDbEntry.js index f35cd94..6c919ae 100644 --- a/dist/package-shared/functions/backend/db/updateDbEntry.js +++ b/dist/package-shared/functions/backend/db/updateDbEntry.js @@ -23,7 +23,7 @@ const grab_parsed_value_1 = __importDefault(require("./grab-parsed-value")); * @description */ function updateDbEntry(_a) { - return __awaiter(this, arguments, void 0, function* ({ dbContext, dbFullName, tableName, data, tableSchema, identifierColumnName, identifierValue, encryptionKey, encryptionSalt, forceLocal, debug, }) { + return __awaiter(this, arguments, void 0, function* ({ dbContext, dbFullName, tableName, data, tableSchema, identifierColumnName, identifierValue, encryptionKey, encryptionSalt, forceLocal, debug, dbConfig, }) { var _b, _c; /** * Check if data is valid @@ -97,7 +97,11 @@ function updateDbEntry(_a) { //////////////////////////////////////// const query = `UPDATE ${isMaster && !dbFullName ? "" : `\`${dbFullName}\`.`}\`${tableName}\` SET ${updateKeyValueArray.join(",")} WHERE \`${identifierColumnName}\`=?`; updateValues.push(identifierValue); - const updatedEntry = yield (0, conn_db_handler_1.default)(null, query, updateValues); + const updatedEntry = yield (0, conn_db_handler_1.default)({ + query, + values: updateValues, + dsqlConnOpts: { config: dbConfig }, + }); /** * Return statement */ diff --git a/dist/package-shared/functions/backend/fullAccessDbHandler.js b/dist/package-shared/functions/backend/fullAccessDbHandler.js index 3338224..2f83680 100644 --- a/dist/package-shared/functions/backend/fullAccessDbHandler.js +++ b/dist/package-shared/functions/backend/fullAccessDbHandler.js @@ -33,7 +33,10 @@ function fullAccessDbHandler(_a) { * @description Fetch data from db if no cache */ try { - results = yield (0, conn_db_handler_1.default)(null, queryString, queryValuesArray); + results = yield (0, conn_db_handler_1.default)({ + query: queryString, + values: queryValuesArray, + }); //////////////////////////////////////// } catch (error) { diff --git a/dist/package-shared/functions/backend/su-db-handler.js b/dist/package-shared/functions/backend/su-db-handler.js index 4d7b0ff..5d2e3f8 100644 --- a/dist/package-shared/functions/backend/su-db-handler.js +++ b/dist/package-shared/functions/backend/su-db-handler.js @@ -42,7 +42,7 @@ function suDbHandler(_a) { // bigNumberStrings: false, // dateStrings: true, // }); - const results = yield (0, conn_db_handler_1.default)(connection, query); + const results = yield (0, conn_db_handler_1.default)({ conn: connection, query }); return results; }); } diff --git a/dist/package-shared/functions/backend/user-db-handler.js b/dist/package-shared/functions/backend/user-db-handler.js index b69158b..94ca3e8 100644 --- a/dist/package-shared/functions/backend/user-db-handler.js +++ b/dist/package-shared/functions/backend/user-db-handler.js @@ -34,7 +34,7 @@ function userDbHandler(_a) { bigIntAsNumber: true, metaAsArray: true, }); - const results = yield (0, conn_db_handler_1.default)(connection, query); + const results = yield (0, conn_db_handler_1.default)({ conn: connection, query }); if (Array.isArray(results)) { const parsedDbResults = results.map((res) => parseResultObject(res)); return parsedDbResults; diff --git a/dist/package-shared/types/index.d.ts b/dist/package-shared/types/index.d.ts index b45f0d0..273adee 100644 --- a/dist/package-shared/types/index.d.ts +++ b/dist/package-shared/types/index.d.ts @@ -1267,6 +1267,7 @@ export type DsqlCrudParam void; export interface MariaDBUser { diff --git a/dist/package-shared/utils/backend/import-mariadb-database.js b/dist/package-shared/utils/backend/import-mariadb-database.js index faf110c..dc0bd93 100644 --- a/dist/package-shared/utils/backend/import-mariadb-database.js +++ b/dist/package-shared/utils/backend/import-mariadb-database.js @@ -26,7 +26,9 @@ function importMariadbDatabase(_a) { const finalMariadbUser = mariadbUser || process.env.DSQL_DB_USERNAME; const finalMariadbHost = mariadbHost || process.env.DSQL_DB_HOST; const finalMariadbPass = mariadbPass || process.env.DSQL_DB_PASSWORD; - yield (0, conn_db_handler_1.default)(null, `CREATE DATABASE IF NOT EXISTS ${dbFullName}`); + yield (0, conn_db_handler_1.default)({ + query: `CREATE DATABASE IF NOT EXISTS ${dbFullName}`, + }); const cmd = `${mysqlPath} -u ${finalMariadbUser} -h ${finalMariadbHost} -p"${finalMariadbPass}" ${dbFullName} < ${targetFilePath}`; let execSyncOptions = { encoding: "utf-8", diff --git a/dist/package-shared/utils/data-fetching/crud-get.d.ts b/dist/package-shared/utils/data-fetching/crud-get.d.ts index a2cb5c0..e905e2f 100644 --- a/dist/package-shared/utils/data-fetching/crud-get.d.ts +++ b/dist/package-shared/utils/data-fetching/crud-get.d.ts @@ -3,4 +3,4 @@ export default function ({ table, query, count, countOnly, dbFullName, tableSchema, }: Omit, "action" | "data" | "sanitize">): Promise; +}>({ table, query, count, countOnly, dbFullName, tableSchema, dbConfig, }: Omit, "action" | "data" | "sanitize">): Promise; diff --git a/dist/package-shared/utils/data-fetching/crud-get.js b/dist/package-shared/utils/data-fetching/crud-get.js index 2a44a98..3d20d1f 100644 --- a/dist/package-shared/utils/data-fetching/crud-get.js +++ b/dist/package-shared/utils/data-fetching/crud-get.js @@ -18,7 +18,7 @@ const conn_db_handler_1 = __importDefault(require("../db/conn-db-handler")); const check_array_depth_1 = __importDefault(require("../check-array-depth")); const parseDbResults_1 = __importDefault(require("../../functions/backend/parseDbResults")); function default_1(_a) { - return __awaiter(this, arguments, void 0, function* ({ table, query, count, countOnly, dbFullName, tableSchema, }) { + return __awaiter(this, arguments, void 0, function* ({ table, query, count, countOnly, dbFullName, tableSchema, dbConfig, }) { var _b, _c, _d, _e; let queryObject; queryObject = (0, sql_generator_1.default)({ @@ -54,7 +54,10 @@ function default_1(_a) { }, ]; } - const res = yield (0, conn_db_handler_1.default)(undefined, connQueries); + const res = yield (0, conn_db_handler_1.default)({ + query: connQueries, + dsqlConnOpts: { config: dbConfig }, + }); const parsedRes = (0, check_array_depth_1.default)(res, 2) ? (0, parseDbResults_1.default)({ unparsedResults: res[0], tableSchema }) : res[0]; diff --git a/dist/package-shared/utils/data-fetching/crud.js b/dist/package-shared/utils/data-fetching/crud.js index 93d82c1..1320f7c 100644 --- a/dist/package-shared/utils/data-fetching/crud.js +++ b/dist/package-shared/utils/data-fetching/crud.js @@ -20,7 +20,7 @@ const addDbEntry_1 = __importDefault(require("../../functions/backend/db/addDbEn const updateDbEntry_1 = __importDefault(require("../../functions/backend/db/updateDbEntry")); function dsqlCrud(params) { return __awaiter(this, void 0, void 0, function* () { - const { action, data, table, targetValue, sanitize, targetField, targetId, dbFullName, deleteData, batchData, deleteKeyValues, debug, tableSchema, deleteKeyValuesOperator, } = params; + const { action, data, table, targetValue, sanitize, targetField, targetId, dbFullName, deleteData, batchData, deleteKeyValues, debug, tableSchema, deleteKeyValuesOperator, dbConfig, } = params; const finalData = (sanitize ? sanitize({ data }) : data); const finalBatchData = (sanitize ? sanitize({ batchData }) : batchData); switch (action) { @@ -36,6 +36,7 @@ function dsqlCrud(params) { dbFullName, debug, tableSchema, + dbConfig, }); return INSERT_RESULT; case "update": @@ -48,6 +49,7 @@ function dsqlCrud(params) { identifierValue: String(targetValue || targetId), debug, tableSchema, + dbConfig, }); return UPDATE_RESULT; case "delete": @@ -62,7 +64,11 @@ function dsqlCrud(params) { deleteKeyValues, deleteKeyValuesOperator, }); - const res = (yield (0, conn_db_handler_1.default)(undefined, deleteQuery === null || deleteQuery === void 0 ? void 0 : deleteQuery.query, deleteQuery === null || deleteQuery === void 0 ? void 0 : deleteQuery.values)); + const res = (yield (0, conn_db_handler_1.default)({ + query: deleteQuery === null || deleteQuery === void 0 ? void 0 : deleteQuery.query, + values: deleteQuery === null || deleteQuery === void 0 ? void 0 : deleteQuery.values, + dsqlConnOpts: { config: dbConfig }, + })); return { success: Boolean(res.affectedRows), payload: res, diff --git a/dist/package-shared/utils/db/conn-db-handler.d.ts b/dist/package-shared/utils/db/conn-db-handler.d.ts index e2d5266..c6f9a84 100644 --- a/dist/package-shared/utils/db/conn-db-handler.d.ts +++ b/dist/package-shared/utils/db/conn-db-handler.d.ts @@ -1,4 +1,4 @@ -import { DSQLErrorObject } from "../../types"; +import { DsqlConnectionParam, DSQLErrorObject } from "../../types"; import mariadb, { ConnectionConfig } from "mariadb"; export type ConnDBHandlerQueryObject = { query: string; @@ -9,22 +9,26 @@ type Return = ReturnType | ReturnType[] | null | { errors?: DSQLErrorObject[]; config?: ConnectionConfig; }; +export type ConnectionDbHandlerParams = { + /** + * MariaDB Connection + */ + conn?: mariadb.Connection | null; + /** + * String Or `ConnDBHandlerQueryObject` Array + */ + query?: ConnDBHandlerQueryObject["query"] | ConnDBHandlerQueryObject[]; + /** + * Array of Values to Sanitize and Inject + */ + values?: ConnDBHandlerQueryObject["values"]; + debug?: boolean; + dsqlConnOpts?: DsqlConnectionParam; +}; /** * # Run Query From MySQL Connection * @description Run a query from a pre-existing MySQL/Mariadb Connection * setup with `serverless-mysql` npm module */ -export default function connDbHandler( -/** - * MariaDB Connection - */ -conn?: mariadb.Connection | null, -/** - * String Or `ConnDBHandlerQueryObject` Array - */ -query?: ConnDBHandlerQueryObject["query"] | ConnDBHandlerQueryObject[], -/** - * Array of Values to Sanitize and Inject - */ -values?: ConnDBHandlerQueryObject["values"], debug?: boolean): Promise>; +export default function connDbHandler({ conn, debug, query, values, dsqlConnOpts, }: ConnectionDbHandlerParams): Promise>; export {}; diff --git a/dist/package-shared/utils/db/conn-db-handler.js b/dist/package-shared/utils/db/conn-db-handler.js index a533ca1..3a3ce99 100644 --- a/dist/package-shared/utils/db/conn-db-handler.js +++ b/dist/package-shared/utils/db/conn-db-handler.js @@ -20,21 +20,9 @@ const grab_dsql_connection_1 = __importDefault(require("../grab-dsql-connection" * @description Run a query from a pre-existing MySQL/Mariadb Connection * setup with `serverless-mysql` npm module */ -function connDbHandler( -/** - * MariaDB Connection - */ -conn, -/** - * String Or `ConnDBHandlerQueryObject` Array - */ -query, -/** - * Array of Values to Sanitize and Inject - */ -values, debug) { - return __awaiter(this, void 0, void 0, function* () { - const finalConnection = conn || (yield (0, grab_dsql_connection_1.default)()); +function connDbHandler(_a) { + return __awaiter(this, arguments, void 0, function* ({ conn, debug, query, values, dsqlConnOpts, }) { + const finalConnection = conn || (yield (0, grab_dsql_connection_1.default)(dsqlConnOpts)); try { if (!finalConnection) throw new Error("No Connection Found!"); diff --git a/package-shared/functions/backend/db/addDbEntry.ts b/package-shared/functions/backend/db/addDbEntry.ts index 9fedf23..2fa33a4 100644 --- a/package-shared/functions/backend/db/addDbEntry.ts +++ b/package-shared/functions/backend/db/addDbEntry.ts @@ -11,6 +11,7 @@ import { } from "../../../types"; import purgeDefaultFields from "../../../utils/purge-default-fields"; import grabParsedValue from "./grab-parsed-value"; +import { ConnectionConfig } from "mariadb"; export type AddDbEntryParam< T extends { [k: string]: any } = any, @@ -34,6 +35,7 @@ export type AddDbEntryParam< encryptionSalt?: string; forceLocal?: boolean; debug?: boolean; + dbConfig?: ConnectionConfig; }; /** @@ -57,6 +59,7 @@ export default async function addDbEntry< encryptionSalt, forceLocal, debug, + dbConfig, }: AddDbEntryParam): Promise> { const isMaster = forceLocal ? true @@ -89,9 +92,10 @@ export default async function addDbEntry< isMaster ? "" : `\`${dbFullName}\`.` }\`${tableName}\` WHERE \`${duplicateColumnName}\`=?`; - const duplicateValue = await connDbHandler(null, checkDuplicateQuery, [ - duplicateColumnValue, - ]); + const duplicateValue = await connDbHandler({ + query: checkDuplicateQuery, + values: [duplicateColumnValue], + }); if (duplicateValue?.[0] && !update) { return { @@ -110,6 +114,9 @@ export default async function addDbEntry< encryptionSalt, identifierColumnName: duplicateColumnName, identifierValue: duplicateColumnValue || "", + dbConfig, + debug, + forceLocal, }); } } @@ -205,12 +212,12 @@ export default async function addDbEntry< const finalQueryValues = grabFinalQueryValuesArr(queryValuesArray); - const newInsert = await connDbHandler( - null, + const newInsert = await connDbHandler({ query, - finalQueryValues, - debug - ); + values: finalQueryValues, + debug, + dsqlConnOpts: { config: dbConfig }, + }); return { success: Boolean(newInsert?.insertId), @@ -250,12 +257,12 @@ export default async function addDbEntry< batchQueryValuesArray.flat() ); - const newInsert = await connDbHandler( - null, + const newInsert = await connDbHandler({ query, - finalQueryValues, - debug - ); + values: finalQueryValues, + debug, + dsqlConnOpts: { config: dbConfig }, + }); if (debug) { debugLog({ diff --git a/package-shared/functions/backend/db/deleteDbEntry.ts b/package-shared/functions/backend/db/deleteDbEntry.ts index 24c32f6..04a115b 100644 --- a/package-shared/functions/backend/db/deleteDbEntry.ts +++ b/package-shared/functions/backend/db/deleteDbEntry.ts @@ -42,9 +42,10 @@ export default async function deleteDbEntry< isMaster && !dbFullName ? "" : `\`${dbFullName}\`.` }\`${tableName}\` WHERE \`${identifierColumnName.toString()}\`=?`; - const deletedEntry = await connDbHandler(null, query, [ - identifierValue, - ]); + const deletedEntry = await connDbHandler({ + query, + values: [identifierValue], + }); /** * Return statement diff --git a/package-shared/functions/backend/db/updateDbEntry.ts b/package-shared/functions/backend/db/updateDbEntry.ts index 7e0a41d..0d13a7c 100644 --- a/package-shared/functions/backend/db/updateDbEntry.ts +++ b/package-shared/functions/backend/db/updateDbEntry.ts @@ -9,6 +9,7 @@ import { import _ from "lodash"; import purgeDefaultFields from "../../../utils/purge-default-fields"; import grabParsedValue from "./grab-parsed-value"; +import { ConnectionConfig } from "mariadb"; type Param = { dbContext?: (typeof DbContextsArray)[number]; @@ -22,6 +23,7 @@ type Param = { identifierValue: string | number; forceLocal?: boolean; debug?: boolean; + dbConfig?: ConnectionConfig; }; /** @@ -42,6 +44,7 @@ export default async function updateDbEntry< encryptionSalt, forceLocal, debug, + dbConfig, }: Param): Promise> { /** * Check if data is valid @@ -139,7 +142,11 @@ export default async function updateDbEntry< updateValues.push(identifierValue); - const updatedEntry = await connDbHandler(null, query, updateValues); + const updatedEntry = await connDbHandler({ + query, + values: updateValues, + dsqlConnOpts: { config: dbConfig }, + }); /** * Return statement diff --git a/package-shared/functions/backend/fullAccessDbHandler.ts b/package-shared/functions/backend/fullAccessDbHandler.ts index 67f9ba1..165b98e 100644 --- a/package-shared/functions/backend/fullAccessDbHandler.ts +++ b/package-shared/functions/backend/fullAccessDbHandler.ts @@ -29,7 +29,10 @@ export default async function fullAccessDbHandler({ * @description Fetch data from db if no cache */ try { - results = await connDbHandler(null, queryString, queryValuesArray); + results = await connDbHandler({ + query: queryString, + values: queryValuesArray, + }); //////////////////////////////////////// } catch (error: any) { diff --git a/package-shared/functions/backend/su-db-handler.ts b/package-shared/functions/backend/su-db-handler.ts index 1863c3d..34debf7 100644 --- a/package-shared/functions/backend/su-db-handler.ts +++ b/package-shared/functions/backend/su-db-handler.ts @@ -42,7 +42,7 @@ export default async function suDbHandler({ // dateStrings: true, // }); - const results = await connDbHandler(connection, query); + const results = await connDbHandler({ conn: connection, query }); return results; } diff --git a/package-shared/functions/backend/user-db-handler.ts b/package-shared/functions/backend/user-db-handler.ts index d1787c2..a2d9297 100644 --- a/package-shared/functions/backend/user-db-handler.ts +++ b/package-shared/functions/backend/user-db-handler.ts @@ -39,7 +39,7 @@ export default async function userDbHandler({ metaAsArray: true, }); - const results = await connDbHandler(connection, query); + const results = await connDbHandler({ conn: connection, query }); if (Array.isArray(results)) { const parsedDbResults = results.map((res) => parseResultObject(res)); diff --git a/package-shared/types/index.ts b/package-shared/types/index.ts index e28614b..2da8402 100644 --- a/package-shared/types/index.ts +++ b/package-shared/types/index.ts @@ -1477,6 +1477,7 @@ export type DsqlCrudParam< dbFullName?: string; dbName?: string; tableSchema?: DSQL_TableSchemaType; + dbConfig?: ConnectionConfig; }; export type ErrorCallback = (title: string, error: Error, data?: any) => void; diff --git a/package-shared/utils/backend/import-mariadb-database.ts b/package-shared/utils/backend/import-mariadb-database.ts index 253dad4..304db3b 100644 --- a/package-shared/utils/backend/import-mariadb-database.ts +++ b/package-shared/utils/backend/import-mariadb-database.ts @@ -27,7 +27,9 @@ export default async function importMariadbDatabase({ const finalMariadbHost = mariadbHost || process.env.DSQL_DB_HOST; const finalMariadbPass = mariadbPass || process.env.DSQL_DB_PASSWORD; - await connDbHandler(null, `CREATE DATABASE IF NOT EXISTS ${dbFullName}`); + await connDbHandler({ + query: `CREATE DATABASE IF NOT EXISTS ${dbFullName}`, + }); const cmd = `${mysqlPath} -u ${finalMariadbUser} -h ${finalMariadbHost} -p"${finalMariadbPass}" ${dbFullName} < ${targetFilePath}`; diff --git a/package-shared/utils/data-fetching/crud-get.ts b/package-shared/utils/data-fetching/crud-get.ts index 7d83603..e498ca2 100644 --- a/package-shared/utils/data-fetching/crud-get.ts +++ b/package-shared/utils/data-fetching/crud-get.ts @@ -13,6 +13,7 @@ export default async function < countOnly, dbFullName, tableSchema, + dbConfig, }: Omit< DsqlCrudParam, "action" | "data" | "sanitize" @@ -56,7 +57,10 @@ export default async function < ]; } - const res = await connDbHandler(undefined, connQueries); + const res = await connDbHandler({ + query: connQueries, + dsqlConnOpts: { config: dbConfig }, + }); const parsedRes = checkArrayDepth(res, 2) ? parseDbResults({ unparsedResults: res[0], tableSchema }) diff --git a/package-shared/utils/data-fetching/crud.ts b/package-shared/utils/data-fetching/crud.ts index 3054fc8..3c758b3 100644 --- a/package-shared/utils/data-fetching/crud.ts +++ b/package-shared/utils/data-fetching/crud.ts @@ -28,6 +28,7 @@ export default async function dsqlCrud< debug, tableSchema, deleteKeyValuesOperator, + dbConfig, } = params; const finalData = (sanitize ? sanitize({ data }) : data) as T; @@ -50,6 +51,7 @@ export default async function dsqlCrud< dbFullName, debug, tableSchema, + dbConfig, }); return INSERT_RESULT; @@ -64,6 +66,7 @@ export default async function dsqlCrud< identifierValue: String(targetValue || targetId), debug, tableSchema, + dbConfig, }); return UPDATE_RESULT; @@ -81,11 +84,11 @@ export default async function dsqlCrud< deleteKeyValuesOperator, }); - const res = (await connDbHandler( - undefined, - deleteQuery?.query, - deleteQuery?.values - )) as PostInsertReturn; + const res = (await connDbHandler({ + query: deleteQuery?.query, + values: deleteQuery?.values, + dsqlConnOpts: { config: dbConfig }, + })) as PostInsertReturn; return { success: Boolean(res.affectedRows), diff --git a/package-shared/utils/db/conn-db-handler.ts b/package-shared/utils/db/conn-db-handler.ts index 44babfa..8442016 100644 --- a/package-shared/utils/db/conn-db-handler.ts +++ b/package-shared/utils/db/conn-db-handler.ts @@ -1,5 +1,5 @@ import debugLog from "../logging/debug-log"; -import { DSQLErrorObject } from "../../types"; +import { DsqlConnectionParam, DSQLErrorObject } from "../../types"; import mariadb, { Connection, ConnectionConfig, Pool } from "mariadb"; import grabDSQLConnection from "../grab-dsql-connection"; @@ -14,27 +14,36 @@ type Return = | null | { error?: string; errors?: DSQLErrorObject[]; config?: ConnectionConfig }; +export type ConnectionDbHandlerParams = { + /** + * MariaDB Connection + */ + conn?: mariadb.Connection | null; + /** + * String Or `ConnDBHandlerQueryObject` Array + */ + query?: ConnDBHandlerQueryObject["query"] | ConnDBHandlerQueryObject[]; + /** + * Array of Values to Sanitize and Inject + */ + values?: ConnDBHandlerQueryObject["values"]; + debug?: boolean; + dsqlConnOpts?: DsqlConnectionParam; +}; + /** * # Run Query From MySQL Connection * @description Run a query from a pre-existing MySQL/Mariadb Connection * setup with `serverless-mysql` npm module */ -export default async function connDbHandler( - /** - * MariaDB Connection - */ - conn?: mariadb.Connection | null, - /** - * String Or `ConnDBHandlerQueryObject` Array - */ - query?: ConnDBHandlerQueryObject["query"] | ConnDBHandlerQueryObject[], - /** - * Array of Values to Sanitize and Inject - */ - values?: ConnDBHandlerQueryObject["values"], - debug?: boolean -): Promise> { - const finalConnection = conn || (await grabDSQLConnection()); +export default async function connDbHandler({ + conn, + debug, + query, + values, + dsqlConnOpts, +}: ConnectionDbHandlerParams): Promise> { + const finalConnection = conn || (await grabDSQLConnection(dsqlConnOpts)); try { if (!finalConnection) throw new Error("No Connection Found!"); diff --git a/package.json b/package.json index ccc600a..a1564c0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@moduletrace/datasquirel", - "version": "5.1.8", + "version": "5.1.9", "description": "Cloud-based SQL data management tool", "main": "dist/index.js", "bin": {