Updates
This commit is contained in:
parent
689f885d9d
commit
a1e56bb1b0
@ -1,5 +1,6 @@
|
|||||||
import { DbContextsArray } from "./runQuery";
|
import { DbContextsArray } from "./runQuery";
|
||||||
import { APIResponseObject, DSQL_TableSchemaType, PostInsertReturn } from "../../../types";
|
import { APIResponseObject, DSQL_TableSchemaType, PostInsertReturn } from "../../../types";
|
||||||
|
import { ConnectionConfig } from "mariadb";
|
||||||
export type AddDbEntryParam<T extends {
|
export type AddDbEntryParam<T extends {
|
||||||
[k: string]: any;
|
[k: string]: any;
|
||||||
} = any, K extends string = string> = {
|
} = any, K extends string = string> = {
|
||||||
@ -21,10 +22,11 @@ export type AddDbEntryParam<T extends {
|
|||||||
encryptionSalt?: string;
|
encryptionSalt?: string;
|
||||||
forceLocal?: boolean;
|
forceLocal?: boolean;
|
||||||
debug?: boolean;
|
debug?: boolean;
|
||||||
|
dbConfig?: ConnectionConfig;
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
* Add a db Entry Function
|
* Add a db Entry Function
|
||||||
*/
|
*/
|
||||||
export default function addDbEntry<T extends {
|
export default function addDbEntry<T extends {
|
||||||
[k: string]: any;
|
[k: string]: any;
|
||||||
} = any, K extends string = string>({ dbContext, paradigm, dbFullName, tableName, data, batchData, tableSchema, duplicateColumnName, duplicateColumnValue, update, encryptionKey, encryptionSalt, forceLocal, debug, }: AddDbEntryParam<T, K>): Promise<APIResponseObject<PostInsertReturn>>;
|
} = any, K extends string = string>({ dbContext, paradigm, dbFullName, tableName, data, batchData, tableSchema, duplicateColumnName, duplicateColumnValue, update, encryptionKey, encryptionSalt, forceLocal, debug, dbConfig, }: AddDbEntryParam<T, K>): Promise<APIResponseObject<PostInsertReturn>>;
|
||||||
|
@ -24,7 +24,7 @@ const grab_parsed_value_1 = __importDefault(require("./grab-parsed-value"));
|
|||||||
* Add a db Entry Function
|
* Add a db Entry Function
|
||||||
*/
|
*/
|
||||||
function addDbEntry(_a) {
|
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
|
const isMaster = forceLocal
|
||||||
? true
|
? true
|
||||||
: (0, check_if_is_master_1.default)({ dbContext, dbFullName });
|
: (0, check_if_is_master_1.default)({ dbContext, dbFullName });
|
||||||
@ -47,9 +47,10 @@ function addDbEntry(_a) {
|
|||||||
typeof duplicateColumnName === "string" &&
|
typeof duplicateColumnName === "string" &&
|
||||||
newData) {
|
newData) {
|
||||||
const checkDuplicateQuery = `SELECT * FROM ${isMaster ? "" : `\`${dbFullName}\`.`}\`${tableName}\` WHERE \`${duplicateColumnName}\`=?`;
|
const checkDuplicateQuery = `SELECT * FROM ${isMaster ? "" : `\`${dbFullName}\`.`}\`${tableName}\` WHERE \`${duplicateColumnName}\`=?`;
|
||||||
const duplicateValue = yield (0, conn_db_handler_1.default)(null, checkDuplicateQuery, [
|
const duplicateValue = yield (0, conn_db_handler_1.default)({
|
||||||
duplicateColumnValue,
|
query: checkDuplicateQuery,
|
||||||
]);
|
values: [duplicateColumnValue],
|
||||||
|
});
|
||||||
if ((duplicateValue === null || duplicateValue === void 0 ? void 0 : duplicateValue[0]) && !update) {
|
if ((duplicateValue === null || duplicateValue === void 0 ? void 0 : duplicateValue[0]) && !update) {
|
||||||
return {
|
return {
|
||||||
success: false,
|
success: false,
|
||||||
@ -68,6 +69,9 @@ function addDbEntry(_a) {
|
|||||||
encryptionSalt,
|
encryptionSalt,
|
||||||
identifierColumnName: duplicateColumnName,
|
identifierColumnName: duplicateColumnName,
|
||||||
identifierValue: duplicateColumnValue || "",
|
identifierValue: duplicateColumnValue || "",
|
||||||
|
dbConfig,
|
||||||
|
debug,
|
||||||
|
forceLocal,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -138,7 +142,12 @@ function addDbEntry(_a) {
|
|||||||
const { insertKeysArray, insertValuesArray, queryValuesArray } = generateQuery(newData);
|
const { insertKeysArray, insertValuesArray, queryValuesArray } = generateQuery(newData);
|
||||||
const query = `INSERT INTO ${isMaster && !dbFullName ? "" : `\`${dbFullName}\`.`}\`${tableName}\` (${insertKeysArray.join(",")}) VALUES (${grabQueryValuesString(insertValuesArray)})`;
|
const query = `INSERT INTO ${isMaster && !dbFullName ? "" : `\`${dbFullName}\`.`}\`${tableName}\` (${insertKeysArray.join(",")}) VALUES (${grabQueryValuesString(insertValuesArray)})`;
|
||||||
const finalQueryValues = grabFinalQueryValuesArr(queryValuesArray);
|
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 {
|
return {
|
||||||
success: Boolean(newInsert === null || newInsert === void 0 ? void 0 : newInsert.insertId),
|
success: Boolean(newInsert === null || newInsert === void 0 ? void 0 : newInsert.insertId),
|
||||||
payload: newInsert,
|
payload: newInsert,
|
||||||
@ -165,7 +174,12 @@ function addDbEntry(_a) {
|
|||||||
.map((vl) => `(${grabQueryValuesString(vl)})`)
|
.map((vl) => `(${grabQueryValuesString(vl)})`)
|
||||||
.join(",")}`;
|
.join(",")}`;
|
||||||
const finalQueryValues = grabFinalQueryValuesArr(batchQueryValuesArray.flat());
|
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) {
|
if (debug) {
|
||||||
(0, debug_log_1.default)({
|
(0, debug_log_1.default)({
|
||||||
log: newInsert,
|
log: newInsert,
|
||||||
|
@ -31,9 +31,10 @@ function deleteDbEntry(_a) {
|
|||||||
* @description
|
* @description
|
||||||
*/
|
*/
|
||||||
const query = `DELETE FROM ${isMaster && !dbFullName ? "" : `\`${dbFullName}\`.`}\`${tableName}\` WHERE \`${identifierColumnName.toString()}\`=?`;
|
const query = `DELETE FROM ${isMaster && !dbFullName ? "" : `\`${dbFullName}\`.`}\`${tableName}\` WHERE \`${identifierColumnName.toString()}\`=?`;
|
||||||
const deletedEntry = yield (0, conn_db_handler_1.default)(null, query, [
|
const deletedEntry = yield (0, conn_db_handler_1.default)({
|
||||||
identifierValue,
|
query,
|
||||||
]);
|
values: [identifierValue],
|
||||||
|
});
|
||||||
/**
|
/**
|
||||||
* Return statement
|
* Return statement
|
||||||
*/
|
*/
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import { DbContextsArray } from "./runQuery";
|
import { DbContextsArray } from "./runQuery";
|
||||||
import { APIResponseObject, DSQL_TableSchemaType, PostInsertReturn } from "../../../types";
|
import { APIResponseObject, DSQL_TableSchemaType, PostInsertReturn } from "../../../types";
|
||||||
|
import { ConnectionConfig } from "mariadb";
|
||||||
type Param<T extends {
|
type Param<T extends {
|
||||||
[k: string]: any;
|
[k: string]: any;
|
||||||
} = any> = {
|
} = any> = {
|
||||||
@ -14,6 +15,7 @@ type Param<T extends {
|
|||||||
identifierValue: string | number;
|
identifierValue: string | number;
|
||||||
forceLocal?: boolean;
|
forceLocal?: boolean;
|
||||||
debug?: boolean;
|
debug?: boolean;
|
||||||
|
dbConfig?: ConnectionConfig;
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
* # Update DB Function
|
* # Update DB Function
|
||||||
@ -21,5 +23,5 @@ type Param<T extends {
|
|||||||
*/
|
*/
|
||||||
export default function updateDbEntry<T extends {
|
export default function updateDbEntry<T extends {
|
||||||
[k: string]: any;
|
[k: string]: any;
|
||||||
} = any>({ dbContext, dbFullName, tableName, data, tableSchema, identifierColumnName, identifierValue, encryptionKey, encryptionSalt, forceLocal, debug, }: Param<T>): Promise<APIResponseObject<PostInsertReturn>>;
|
} = any>({ dbContext, dbFullName, tableName, data, tableSchema, identifierColumnName, identifierValue, encryptionKey, encryptionSalt, forceLocal, debug, dbConfig, }: Param<T>): Promise<APIResponseObject<PostInsertReturn>>;
|
||||||
export {};
|
export {};
|
||||||
|
@ -23,7 +23,7 @@ const grab_parsed_value_1 = __importDefault(require("./grab-parsed-value"));
|
|||||||
* @description
|
* @description
|
||||||
*/
|
*/
|
||||||
function updateDbEntry(_a) {
|
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;
|
var _b, _c;
|
||||||
/**
|
/**
|
||||||
* Check if data is valid
|
* Check if data is valid
|
||||||
@ -97,7 +97,11 @@ function updateDbEntry(_a) {
|
|||||||
////////////////////////////////////////
|
////////////////////////////////////////
|
||||||
const query = `UPDATE ${isMaster && !dbFullName ? "" : `\`${dbFullName}\`.`}\`${tableName}\` SET ${updateKeyValueArray.join(",")} WHERE \`${identifierColumnName}\`=?`;
|
const query = `UPDATE ${isMaster && !dbFullName ? "" : `\`${dbFullName}\`.`}\`${tableName}\` SET ${updateKeyValueArray.join(",")} WHERE \`${identifierColumnName}\`=?`;
|
||||||
updateValues.push(identifierValue);
|
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
|
* Return statement
|
||||||
*/
|
*/
|
||||||
|
@ -33,7 +33,10 @@ function fullAccessDbHandler(_a) {
|
|||||||
* @description Fetch data from db if no cache
|
* @description Fetch data from db if no cache
|
||||||
*/
|
*/
|
||||||
try {
|
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) {
|
catch (error) {
|
||||||
|
@ -42,7 +42,7 @@ function suDbHandler(_a) {
|
|||||||
// bigNumberStrings: false,
|
// bigNumberStrings: false,
|
||||||
// dateStrings: true,
|
// 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;
|
return results;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ function userDbHandler(_a) {
|
|||||||
bigIntAsNumber: true,
|
bigIntAsNumber: true,
|
||||||
metaAsArray: 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)) {
|
if (Array.isArray(results)) {
|
||||||
const parsedDbResults = results.map((res) => parseResultObject(res));
|
const parsedDbResults = results.map((res) => parseResultObject(res));
|
||||||
return parsedDbResults;
|
return parsedDbResults;
|
||||||
|
1
dist/package-shared/types/index.d.ts
vendored
1
dist/package-shared/types/index.d.ts
vendored
@ -1267,6 +1267,7 @@ export type DsqlCrudParam<T extends {
|
|||||||
dbFullName?: string;
|
dbFullName?: string;
|
||||||
dbName?: string;
|
dbName?: string;
|
||||||
tableSchema?: DSQL_TableSchemaType;
|
tableSchema?: DSQL_TableSchemaType;
|
||||||
|
dbConfig?: ConnectionConfig;
|
||||||
};
|
};
|
||||||
export type ErrorCallback = (title: string, error: Error, data?: any) => void;
|
export type ErrorCallback = (title: string, error: Error, data?: any) => void;
|
||||||
export interface MariaDBUser {
|
export interface MariaDBUser {
|
||||||
|
@ -26,7 +26,9 @@ function importMariadbDatabase(_a) {
|
|||||||
const finalMariadbUser = mariadbUser || process.env.DSQL_DB_USERNAME;
|
const finalMariadbUser = mariadbUser || process.env.DSQL_DB_USERNAME;
|
||||||
const finalMariadbHost = mariadbHost || process.env.DSQL_DB_HOST;
|
const finalMariadbHost = mariadbHost || process.env.DSQL_DB_HOST;
|
||||||
const finalMariadbPass = mariadbPass || process.env.DSQL_DB_PASSWORD;
|
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}`;
|
const cmd = `${mysqlPath} -u ${finalMariadbUser} -h ${finalMariadbHost} -p"${finalMariadbPass}" ${dbFullName} < ${targetFilePath}`;
|
||||||
let execSyncOptions = {
|
let execSyncOptions = {
|
||||||
encoding: "utf-8",
|
encoding: "utf-8",
|
||||||
|
@ -3,4 +3,4 @@ export default function <T extends {
|
|||||||
[key: string]: any;
|
[key: string]: any;
|
||||||
} = {
|
} = {
|
||||||
[key: string]: any;
|
[key: string]: any;
|
||||||
}>({ table, query, count, countOnly, dbFullName, tableSchema, }: Omit<DsqlCrudParam<T>, "action" | "data" | "sanitize">): Promise<APIResponseObject>;
|
}>({ table, query, count, countOnly, dbFullName, tableSchema, dbConfig, }: Omit<DsqlCrudParam<T>, "action" | "data" | "sanitize">): Promise<APIResponseObject>;
|
||||||
|
@ -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 check_array_depth_1 = __importDefault(require("../check-array-depth"));
|
||||||
const parseDbResults_1 = __importDefault(require("../../functions/backend/parseDbResults"));
|
const parseDbResults_1 = __importDefault(require("../../functions/backend/parseDbResults"));
|
||||||
function default_1(_a) {
|
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;
|
var _b, _c, _d, _e;
|
||||||
let queryObject;
|
let queryObject;
|
||||||
queryObject = (0, sql_generator_1.default)({
|
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)
|
const parsedRes = (0, check_array_depth_1.default)(res, 2)
|
||||||
? (0, parseDbResults_1.default)({ unparsedResults: res[0], tableSchema })
|
? (0, parseDbResults_1.default)({ unparsedResults: res[0], tableSchema })
|
||||||
: res[0];
|
: res[0];
|
||||||
|
10
dist/package-shared/utils/data-fetching/crud.js
vendored
10
dist/package-shared/utils/data-fetching/crud.js
vendored
@ -20,7 +20,7 @@ const addDbEntry_1 = __importDefault(require("../../functions/backend/db/addDbEn
|
|||||||
const updateDbEntry_1 = __importDefault(require("../../functions/backend/db/updateDbEntry"));
|
const updateDbEntry_1 = __importDefault(require("../../functions/backend/db/updateDbEntry"));
|
||||||
function dsqlCrud(params) {
|
function dsqlCrud(params) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
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 finalData = (sanitize ? sanitize({ data }) : data);
|
||||||
const finalBatchData = (sanitize ? sanitize({ batchData }) : batchData);
|
const finalBatchData = (sanitize ? sanitize({ batchData }) : batchData);
|
||||||
switch (action) {
|
switch (action) {
|
||||||
@ -36,6 +36,7 @@ function dsqlCrud(params) {
|
|||||||
dbFullName,
|
dbFullName,
|
||||||
debug,
|
debug,
|
||||||
tableSchema,
|
tableSchema,
|
||||||
|
dbConfig,
|
||||||
});
|
});
|
||||||
return INSERT_RESULT;
|
return INSERT_RESULT;
|
||||||
case "update":
|
case "update":
|
||||||
@ -48,6 +49,7 @@ function dsqlCrud(params) {
|
|||||||
identifierValue: String(targetValue || targetId),
|
identifierValue: String(targetValue || targetId),
|
||||||
debug,
|
debug,
|
||||||
tableSchema,
|
tableSchema,
|
||||||
|
dbConfig,
|
||||||
});
|
});
|
||||||
return UPDATE_RESULT;
|
return UPDATE_RESULT;
|
||||||
case "delete":
|
case "delete":
|
||||||
@ -62,7 +64,11 @@ function dsqlCrud(params) {
|
|||||||
deleteKeyValues,
|
deleteKeyValues,
|
||||||
deleteKeyValuesOperator,
|
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 {
|
return {
|
||||||
success: Boolean(res.affectedRows),
|
success: Boolean(res.affectedRows),
|
||||||
payload: res,
|
payload: res,
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { DSQLErrorObject } from "../../types";
|
import { DsqlConnectionParam, DSQLErrorObject } from "../../types";
|
||||||
import mariadb, { ConnectionConfig } from "mariadb";
|
import mariadb, { ConnectionConfig } from "mariadb";
|
||||||
export type ConnDBHandlerQueryObject = {
|
export type ConnDBHandlerQueryObject = {
|
||||||
query: string;
|
query: string;
|
||||||
@ -9,22 +9,26 @@ type Return<ReturnType = any> = ReturnType | ReturnType[] | null | {
|
|||||||
errors?: DSQLErrorObject[];
|
errors?: DSQLErrorObject[];
|
||||||
config?: ConnectionConfig;
|
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
|
* # Run Query From MySQL Connection
|
||||||
* @description Run a query from a pre-existing MySQL/Mariadb Connection
|
* @description Run a query from a pre-existing MySQL/Mariadb Connection
|
||||||
* setup with `serverless-mysql` npm module
|
* setup with `serverless-mysql` npm module
|
||||||
*/
|
*/
|
||||||
export default function connDbHandler<ReturnType = any>(
|
export default function connDbHandler<ReturnType = any>({ conn, debug, query, values, dsqlConnOpts, }: ConnectionDbHandlerParams): Promise<Return<ReturnType>>;
|
||||||
/**
|
|
||||||
* 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<Return<ReturnType>>;
|
|
||||||
export {};
|
export {};
|
||||||
|
18
dist/package-shared/utils/db/conn-db-handler.js
vendored
18
dist/package-shared/utils/db/conn-db-handler.js
vendored
@ -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
|
* @description Run a query from a pre-existing MySQL/Mariadb Connection
|
||||||
* setup with `serverless-mysql` npm module
|
* setup with `serverless-mysql` npm module
|
||||||
*/
|
*/
|
||||||
function connDbHandler(
|
function connDbHandler(_a) {
|
||||||
/**
|
return __awaiter(this, arguments, void 0, function* ({ conn, debug, query, values, dsqlConnOpts, }) {
|
||||||
* MariaDB Connection
|
const finalConnection = conn || (yield (0, grab_dsql_connection_1.default)(dsqlConnOpts));
|
||||||
*/
|
|
||||||
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)());
|
|
||||||
try {
|
try {
|
||||||
if (!finalConnection)
|
if (!finalConnection)
|
||||||
throw new Error("No Connection Found!");
|
throw new Error("No Connection Found!");
|
||||||
|
@ -11,6 +11,7 @@ import {
|
|||||||
} from "../../../types";
|
} from "../../../types";
|
||||||
import purgeDefaultFields from "../../../utils/purge-default-fields";
|
import purgeDefaultFields from "../../../utils/purge-default-fields";
|
||||||
import grabParsedValue from "./grab-parsed-value";
|
import grabParsedValue from "./grab-parsed-value";
|
||||||
|
import { ConnectionConfig } from "mariadb";
|
||||||
|
|
||||||
export type AddDbEntryParam<
|
export type AddDbEntryParam<
|
||||||
T extends { [k: string]: any } = any,
|
T extends { [k: string]: any } = any,
|
||||||
@ -34,6 +35,7 @@ export type AddDbEntryParam<
|
|||||||
encryptionSalt?: string;
|
encryptionSalt?: string;
|
||||||
forceLocal?: boolean;
|
forceLocal?: boolean;
|
||||||
debug?: boolean;
|
debug?: boolean;
|
||||||
|
dbConfig?: ConnectionConfig;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -57,6 +59,7 @@ export default async function addDbEntry<
|
|||||||
encryptionSalt,
|
encryptionSalt,
|
||||||
forceLocal,
|
forceLocal,
|
||||||
debug,
|
debug,
|
||||||
|
dbConfig,
|
||||||
}: AddDbEntryParam<T, K>): Promise<APIResponseObject<PostInsertReturn>> {
|
}: AddDbEntryParam<T, K>): Promise<APIResponseObject<PostInsertReturn>> {
|
||||||
const isMaster = forceLocal
|
const isMaster = forceLocal
|
||||||
? true
|
? true
|
||||||
@ -89,9 +92,10 @@ export default async function addDbEntry<
|
|||||||
isMaster ? "" : `\`${dbFullName}\`.`
|
isMaster ? "" : `\`${dbFullName}\`.`
|
||||||
}\`${tableName}\` WHERE \`${duplicateColumnName}\`=?`;
|
}\`${tableName}\` WHERE \`${duplicateColumnName}\`=?`;
|
||||||
|
|
||||||
const duplicateValue = await connDbHandler(null, checkDuplicateQuery, [
|
const duplicateValue = await connDbHandler({
|
||||||
duplicateColumnValue,
|
query: checkDuplicateQuery,
|
||||||
]);
|
values: [duplicateColumnValue],
|
||||||
|
});
|
||||||
|
|
||||||
if (duplicateValue?.[0] && !update) {
|
if (duplicateValue?.[0] && !update) {
|
||||||
return {
|
return {
|
||||||
@ -110,6 +114,9 @@ export default async function addDbEntry<
|
|||||||
encryptionSalt,
|
encryptionSalt,
|
||||||
identifierColumnName: duplicateColumnName,
|
identifierColumnName: duplicateColumnName,
|
||||||
identifierValue: duplicateColumnValue || "",
|
identifierValue: duplicateColumnValue || "",
|
||||||
|
dbConfig,
|
||||||
|
debug,
|
||||||
|
forceLocal,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -205,12 +212,12 @@ export default async function addDbEntry<
|
|||||||
|
|
||||||
const finalQueryValues = grabFinalQueryValuesArr(queryValuesArray);
|
const finalQueryValues = grabFinalQueryValuesArr(queryValuesArray);
|
||||||
|
|
||||||
const newInsert = await connDbHandler(
|
const newInsert = await connDbHandler({
|
||||||
null,
|
|
||||||
query,
|
query,
|
||||||
finalQueryValues,
|
values: finalQueryValues,
|
||||||
debug
|
debug,
|
||||||
);
|
dsqlConnOpts: { config: dbConfig },
|
||||||
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
success: Boolean(newInsert?.insertId),
|
success: Boolean(newInsert?.insertId),
|
||||||
@ -250,12 +257,12 @@ export default async function addDbEntry<
|
|||||||
batchQueryValuesArray.flat()
|
batchQueryValuesArray.flat()
|
||||||
);
|
);
|
||||||
|
|
||||||
const newInsert = await connDbHandler(
|
const newInsert = await connDbHandler({
|
||||||
null,
|
|
||||||
query,
|
query,
|
||||||
finalQueryValues,
|
values: finalQueryValues,
|
||||||
debug
|
debug,
|
||||||
);
|
dsqlConnOpts: { config: dbConfig },
|
||||||
|
});
|
||||||
|
|
||||||
if (debug) {
|
if (debug) {
|
||||||
debugLog({
|
debugLog({
|
||||||
|
@ -42,9 +42,10 @@ export default async function deleteDbEntry<
|
|||||||
isMaster && !dbFullName ? "" : `\`${dbFullName}\`.`
|
isMaster && !dbFullName ? "" : `\`${dbFullName}\`.`
|
||||||
}\`${tableName}\` WHERE \`${identifierColumnName.toString()}\`=?`;
|
}\`${tableName}\` WHERE \`${identifierColumnName.toString()}\`=?`;
|
||||||
|
|
||||||
const deletedEntry = await connDbHandler(null, query, [
|
const deletedEntry = await connDbHandler({
|
||||||
identifierValue,
|
query,
|
||||||
]);
|
values: [identifierValue],
|
||||||
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return statement
|
* Return statement
|
||||||
|
@ -9,6 +9,7 @@ import {
|
|||||||
import _ from "lodash";
|
import _ from "lodash";
|
||||||
import purgeDefaultFields from "../../../utils/purge-default-fields";
|
import purgeDefaultFields from "../../../utils/purge-default-fields";
|
||||||
import grabParsedValue from "./grab-parsed-value";
|
import grabParsedValue from "./grab-parsed-value";
|
||||||
|
import { ConnectionConfig } from "mariadb";
|
||||||
|
|
||||||
type Param<T extends { [k: string]: any } = any> = {
|
type Param<T extends { [k: string]: any } = any> = {
|
||||||
dbContext?: (typeof DbContextsArray)[number];
|
dbContext?: (typeof DbContextsArray)[number];
|
||||||
@ -22,6 +23,7 @@ type Param<T extends { [k: string]: any } = any> = {
|
|||||||
identifierValue: string | number;
|
identifierValue: string | number;
|
||||||
forceLocal?: boolean;
|
forceLocal?: boolean;
|
||||||
debug?: boolean;
|
debug?: boolean;
|
||||||
|
dbConfig?: ConnectionConfig;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -42,6 +44,7 @@ export default async function updateDbEntry<
|
|||||||
encryptionSalt,
|
encryptionSalt,
|
||||||
forceLocal,
|
forceLocal,
|
||||||
debug,
|
debug,
|
||||||
|
dbConfig,
|
||||||
}: Param<T>): Promise<APIResponseObject<PostInsertReturn>> {
|
}: Param<T>): Promise<APIResponseObject<PostInsertReturn>> {
|
||||||
/**
|
/**
|
||||||
* Check if data is valid
|
* Check if data is valid
|
||||||
@ -139,7 +142,11 @@ export default async function updateDbEntry<
|
|||||||
|
|
||||||
updateValues.push(identifierValue);
|
updateValues.push(identifierValue);
|
||||||
|
|
||||||
const updatedEntry = await connDbHandler(null, query, updateValues);
|
const updatedEntry = await connDbHandler({
|
||||||
|
query,
|
||||||
|
values: updateValues,
|
||||||
|
dsqlConnOpts: { config: dbConfig },
|
||||||
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return statement
|
* Return statement
|
||||||
|
@ -29,7 +29,10 @@ export default async function fullAccessDbHandler({
|
|||||||
* @description Fetch data from db if no cache
|
* @description Fetch data from db if no cache
|
||||||
*/
|
*/
|
||||||
try {
|
try {
|
||||||
results = await connDbHandler(null, queryString, queryValuesArray);
|
results = await connDbHandler({
|
||||||
|
query: queryString,
|
||||||
|
values: queryValuesArray,
|
||||||
|
});
|
||||||
|
|
||||||
////////////////////////////////////////
|
////////////////////////////////////////
|
||||||
} catch (error: any) {
|
} catch (error: any) {
|
||||||
|
@ -42,7 +42,7 @@ export default async function suDbHandler({
|
|||||||
// dateStrings: true,
|
// dateStrings: true,
|
||||||
// });
|
// });
|
||||||
|
|
||||||
const results = await connDbHandler(connection, query);
|
const results = await connDbHandler({ conn: connection, query });
|
||||||
|
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
@ -39,7 +39,7 @@ export default async function userDbHandler({
|
|||||||
metaAsArray: true,
|
metaAsArray: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
const results = await connDbHandler(connection, query);
|
const results = await connDbHandler({ conn: connection, query });
|
||||||
|
|
||||||
if (Array.isArray(results)) {
|
if (Array.isArray(results)) {
|
||||||
const parsedDbResults = results.map((res) => parseResultObject(res));
|
const parsedDbResults = results.map((res) => parseResultObject(res));
|
||||||
|
@ -1477,6 +1477,7 @@ export type DsqlCrudParam<
|
|||||||
dbFullName?: string;
|
dbFullName?: string;
|
||||||
dbName?: string;
|
dbName?: string;
|
||||||
tableSchema?: DSQL_TableSchemaType;
|
tableSchema?: DSQL_TableSchemaType;
|
||||||
|
dbConfig?: ConnectionConfig;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type ErrorCallback = (title: string, error: Error, data?: any) => void;
|
export type ErrorCallback = (title: string, error: Error, data?: any) => void;
|
||||||
|
@ -27,7 +27,9 @@ export default async function importMariadbDatabase({
|
|||||||
const finalMariadbHost = mariadbHost || process.env.DSQL_DB_HOST;
|
const finalMariadbHost = mariadbHost || process.env.DSQL_DB_HOST;
|
||||||
const finalMariadbPass = mariadbPass || process.env.DSQL_DB_PASSWORD;
|
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}`;
|
const cmd = `${mysqlPath} -u ${finalMariadbUser} -h ${finalMariadbHost} -p"${finalMariadbPass}" ${dbFullName} < ${targetFilePath}`;
|
||||||
|
|
||||||
|
@ -13,6 +13,7 @@ export default async function <
|
|||||||
countOnly,
|
countOnly,
|
||||||
dbFullName,
|
dbFullName,
|
||||||
tableSchema,
|
tableSchema,
|
||||||
|
dbConfig,
|
||||||
}: Omit<
|
}: Omit<
|
||||||
DsqlCrudParam<T>,
|
DsqlCrudParam<T>,
|
||||||
"action" | "data" | "sanitize"
|
"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)
|
const parsedRes = checkArrayDepth(res, 2)
|
||||||
? parseDbResults({ unparsedResults: res[0], tableSchema })
|
? parseDbResults({ unparsedResults: res[0], tableSchema })
|
||||||
|
@ -28,6 +28,7 @@ export default async function dsqlCrud<
|
|||||||
debug,
|
debug,
|
||||||
tableSchema,
|
tableSchema,
|
||||||
deleteKeyValuesOperator,
|
deleteKeyValuesOperator,
|
||||||
|
dbConfig,
|
||||||
} = params;
|
} = params;
|
||||||
|
|
||||||
const finalData = (sanitize ? sanitize({ data }) : data) as T;
|
const finalData = (sanitize ? sanitize({ data }) : data) as T;
|
||||||
@ -50,6 +51,7 @@ export default async function dsqlCrud<
|
|||||||
dbFullName,
|
dbFullName,
|
||||||
debug,
|
debug,
|
||||||
tableSchema,
|
tableSchema,
|
||||||
|
dbConfig,
|
||||||
});
|
});
|
||||||
return INSERT_RESULT;
|
return INSERT_RESULT;
|
||||||
|
|
||||||
@ -64,6 +66,7 @@ export default async function dsqlCrud<
|
|||||||
identifierValue: String(targetValue || targetId),
|
identifierValue: String(targetValue || targetId),
|
||||||
debug,
|
debug,
|
||||||
tableSchema,
|
tableSchema,
|
||||||
|
dbConfig,
|
||||||
});
|
});
|
||||||
|
|
||||||
return UPDATE_RESULT;
|
return UPDATE_RESULT;
|
||||||
@ -81,11 +84,11 @@ export default async function dsqlCrud<
|
|||||||
deleteKeyValuesOperator,
|
deleteKeyValuesOperator,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = (await connDbHandler(
|
const res = (await connDbHandler({
|
||||||
undefined,
|
query: deleteQuery?.query,
|
||||||
deleteQuery?.query,
|
values: deleteQuery?.values,
|
||||||
deleteQuery?.values
|
dsqlConnOpts: { config: dbConfig },
|
||||||
)) as PostInsertReturn;
|
})) as PostInsertReturn;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
success: Boolean(res.affectedRows),
|
success: Boolean(res.affectedRows),
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import debugLog from "../logging/debug-log";
|
import debugLog from "../logging/debug-log";
|
||||||
import { DSQLErrorObject } from "../../types";
|
import { DsqlConnectionParam, DSQLErrorObject } from "../../types";
|
||||||
import mariadb, { Connection, ConnectionConfig, Pool } from "mariadb";
|
import mariadb, { Connection, ConnectionConfig, Pool } from "mariadb";
|
||||||
import grabDSQLConnection from "../grab-dsql-connection";
|
import grabDSQLConnection from "../grab-dsql-connection";
|
||||||
|
|
||||||
@ -14,27 +14,36 @@ type Return<ReturnType = any> =
|
|||||||
| null
|
| null
|
||||||
| { error?: string; errors?: DSQLErrorObject[]; config?: ConnectionConfig };
|
| { 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
|
* # Run Query From MySQL Connection
|
||||||
* @description Run a query from a pre-existing MySQL/Mariadb Connection
|
* @description Run a query from a pre-existing MySQL/Mariadb Connection
|
||||||
* setup with `serverless-mysql` npm module
|
* setup with `serverless-mysql` npm module
|
||||||
*/
|
*/
|
||||||
export default async function connDbHandler<ReturnType = any>(
|
export default async function connDbHandler<ReturnType = any>({
|
||||||
/**
|
conn,
|
||||||
* MariaDB Connection
|
debug,
|
||||||
*/
|
query,
|
||||||
conn?: mariadb.Connection | null,
|
values,
|
||||||
/**
|
dsqlConnOpts,
|
||||||
* String Or `ConnDBHandlerQueryObject` Array
|
}: ConnectionDbHandlerParams): Promise<Return<ReturnType>> {
|
||||||
*/
|
const finalConnection = conn || (await grabDSQLConnection(dsqlConnOpts));
|
||||||
query?: ConnDBHandlerQueryObject["query"] | ConnDBHandlerQueryObject[],
|
|
||||||
/**
|
|
||||||
* Array of Values to Sanitize and Inject
|
|
||||||
*/
|
|
||||||
values?: ConnDBHandlerQueryObject["values"],
|
|
||||||
debug?: boolean
|
|
||||||
): Promise<Return<ReturnType>> {
|
|
||||||
const finalConnection = conn || (await grabDSQLConnection());
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (!finalConnection) throw new Error("No Connection Found!");
|
if (!finalConnection) throw new Error("No Connection Found!");
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@moduletrace/datasquirel",
|
"name": "@moduletrace/datasquirel",
|
||||||
"version": "5.1.8",
|
"version": "5.1.9",
|
||||||
"description": "Cloud-based SQL data management tool",
|
"description": "Cloud-based SQL data management tool",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"bin": {
|
"bin": {
|
||||||
|
Loading…
Reference in New Issue
Block a user