This commit is contained in:
Benjamin Toby
2025-07-06 17:00:35 +01:00
parent b38ddc9f21
commit 6acf0f2cd6
48 changed files with 353 additions and 622 deletions
+7 -2
View File
@@ -21,12 +21,17 @@ const grab_dsql_connection_1 = __importDefault(require("../../grab-dsql-connecti
function DB_HANDLER(query, values) {
return __awaiter(this, void 0, void 0, function* () {
var _a;
const CONNECTION = (0, grab_dsql_connection_1.default)();
const CONNECTION = yield (0, grab_dsql_connection_1.default)();
try {
if (!CONNECTION)
throw new Error("No Connection provided to DB_HANDLER function!");
const results = yield CONNECTION.query(query, values);
return JSON.parse(JSON.stringify(results));
if (Array.isArray(results)) {
return Array.from(results);
}
else {
return results;
}
}
catch (error) {
(_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `DB_HANDLER Error`, error);
@@ -22,8 +22,8 @@ function DSQL_USER_DB_HANDLER(_a) {
return __awaiter(this, arguments, void 0, function* ({ paradigm, queryString, queryValues, }) {
var _b;
const CONNECTION = paradigm == "Read Only"
? (0, grab_dsql_connection_1.default)({ ro: true })
: (0, grab_dsql_connection_1.default)({ fa: true });
? yield (0, grab_dsql_connection_1.default)({ ro: true })
: yield (0, grab_dsql_connection_1.default)({ fa: true });
try {
return yield (0, conn_db_handler_1.default)(CONNECTION, queryString, queryValues);
}
@@ -32,7 +32,7 @@ function DSQL_USER_DB_HANDLER(_a) {
return null;
}
finally {
CONNECTION === null || CONNECTION === void 0 ? void 0 : CONNECTION.end();
yield (CONNECTION === null || CONNECTION === void 0 ? void 0 : CONNECTION.end());
}
});
}
@@ -20,10 +20,15 @@ const grab_dsql_connection_1 = __importDefault(require("../../grab-dsql-connecti
function LOCAL_DB_HANDLER(query, values) {
return __awaiter(this, void 0, void 0, function* () {
var _a;
const MASTER = (0, grab_dsql_connection_1.default)();
const CONNECTION = yield (0, grab_dsql_connection_1.default)();
try {
const results = yield MASTER.query(query, values);
return JSON.parse(JSON.stringify(results));
const results = yield CONNECTION.query(query, values);
if (Array.isArray(results)) {
return Array.from(results);
}
else {
return results;
}
}
catch (error) {
(_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `LOCAL_DB_HANDLER Error`, error);
@@ -33,7 +38,7 @@ function LOCAL_DB_HANDLER(query, values) {
};
}
finally {
yield (MASTER === null || MASTER === void 0 ? void 0 : MASTER.end());
yield (CONNECTION === null || CONNECTION === void 0 ? void 0 : CONNECTION.end());
}
});
}
@@ -1,7 +1,4 @@
/**
* # DSQL user read-only DB handler
*/
export default function NO_DB_HANDLER(query: string, values?: any[]): Promise<unknown> | {
success: boolean;
error: any;
};
export default function NO_DB_HANDLER(query: string, values?: any[]): Promise<unknown>;
+41 -27
View File
@@ -1,4 +1,13 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
@@ -9,32 +18,37 @@ const grab_dsql_connection_1 = __importDefault(require("../../grab-dsql-connecti
* # DSQL user read-only DB handler
*/
function NO_DB_HANDLER(query, values) {
var _a;
const CONNECTION = (0, grab_dsql_connection_1.default)();
try {
return new Promise((resolve, reject) => {
CONNECTION.query(query, values)
.then((results) => {
CONNECTION.end();
resolve(JSON.parse(JSON.stringify(results)));
})
.catch((err) => {
CONNECTION.end();
resolve({
error: err.message,
sql: err.sql,
});
return __awaiter(this, void 0, void 0, function* () {
var _a;
const CONNECTION = yield (0, grab_dsql_connection_1.default)();
try {
return new Promise((resolve, reject) => {
CONNECTION.query(query, values)
.then((results) => __awaiter(this, void 0, void 0, function* () {
if (Array.isArray(results)) {
resolve(Array.from(results));
}
else {
resolve(results);
}
}))
.catch((err) => __awaiter(this, void 0, void 0, function* () {
resolve({
error: err.message,
sql: err.sql,
});
}))
.finally(() => __awaiter(this, void 0, void 0, function* () {
yield (CONNECTION === null || CONNECTION === void 0 ? void 0 : CONNECTION.end());
}));
});
});
}
catch (error) {
(_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `NO_DB_HANDLER Error`, error);
return {
success: false,
error: error.message,
};
}
finally {
CONNECTION === null || CONNECTION === void 0 ? void 0 : CONNECTION.end();
}
}
catch (error) {
(_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `NO_DB_HANDLER Error`, error);
return {
success: false,
error: error.message,
};
}
});
}
@@ -1,7 +0,0 @@
/**
* # Root DB handler
*/
export default function ROOT_DB_HANDLER(query: string, values?: any[]): Promise<unknown> | {
success: boolean;
error: any;
};
@@ -1,40 +0,0 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = ROOT_DB_HANDLER;
const grab_dsql_connection_1 = __importDefault(require("../../grab-dsql-connection"));
/**
* # Root DB handler
*/
function ROOT_DB_HANDLER(query, values) {
var _a;
const CONNECTION = (0, grab_dsql_connection_1.default)();
try {
return new Promise((resolve, reject) => {
CONNECTION.query(query, values)
.then((results) => {
CONNECTION.end();
resolve(JSON.parse(JSON.stringify(results)));
})
.catch((err) => {
CONNECTION.end();
resolve({
error: err.message,
sql: err.sql,
});
});
});
}
catch (error) {
(_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `ROOT_DB_HANDLER Error`, error);
return {
success: false,
error: error.message,
};
}
finally {
CONNECTION === null || CONNECTION === void 0 ? void 0 : CONNECTION.end();
}
}
+3 -3
View File
@@ -1,5 +1,5 @@
import { DSQLErrorObject } from "../../types";
import type { ConnectionConfig, Pool } from "mariadb";
import mariadb, { ConnectionConfig } from "mariadb";
export type ConnDBHandlerQueryObject = {
query: string;
values?: (string | number | undefined)[];
@@ -16,9 +16,9 @@ type Return<ReturnType = any> = ReturnType | ReturnType[] | null | {
*/
export default function connDbHandler<ReturnType = any>(
/**
* MariaDB Connection Pool Object
* MariaDB Connection
*/
connPool?: Pool,
conn?: mariadb.Connection,
/**
* String Or `ConnDBHandlerQueryObject` Array
*/
+7 -6
View File
@@ -21,9 +21,9 @@ const debug_log_1 = __importDefault(require("../logging/debug-log"));
*/
function connDbHandler(
/**
* MariaDB Connection Pool Object
* MariaDB Connection
*/
connPool,
conn,
/**
* String Or `ConnDBHandlerQueryObject` Array
*/
@@ -35,13 +35,13 @@ values, debug) {
return __awaiter(this, void 0, void 0, function* () {
var _a, _b;
try {
if (!connPool)
if (!conn)
throw new Error("No Connection Found!");
if (!query)
throw new Error("Query String Required!");
let queryErrorArray = [];
if (typeof query == "string") {
const res = yield connPool.query(trimQuery(query), values);
const res = yield conn.query(trimQuery(query), values);
if (debug) {
(0, debug_log_1.default)({
log: res,
@@ -62,7 +62,7 @@ values, debug) {
const queryObj = query[i];
currentQueryError.sql = queryObj.query;
currentQueryError.sqlValues = queryObj.values;
const queryObjRes = yield connPool.query(trimQuery(queryObj.query), queryObj.values);
const queryObjRes = yield conn.query(trimQuery(queryObj.query), queryObj.values);
if (debug) {
(0, debug_log_1.default)({
log: queryObjRes,
@@ -79,6 +79,7 @@ values, debug) {
}
catch (error) {
(_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `Connection DB Handler Query Error`, error);
console.log("query", query);
resArray.push(null);
currentQueryError["error"] = error.message;
queryErrorArray.push(currentQueryError);
@@ -117,7 +118,7 @@ values, debug) {
};
}
finally {
connPool === null || connPool === void 0 ? void 0 : connPool.end();
yield (conn === null || conn === void 0 ? void 0 : conn.end());
}
});
}
+2 -2
View File
@@ -1,4 +1,4 @@
import { Pool } from "mariadb";
import { Connection } from "mariadb";
type Param = {
/**
* Read Only?
@@ -20,5 +20,5 @@ type Param = {
/**
* # Grab General CONNECTION for DSQL
*/
export default function grabDSQLConnection(param?: Param): Pool;
export default function grabDSQLConnection(param?: Param): Promise<Connection>;
export {};
+65 -42
View File
@@ -1,4 +1,13 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
@@ -10,9 +19,58 @@ const grabDbSSL_1 = __importDefault(require("./backend/grabDbSSL"));
* # Grab General CONNECTION for DSQL
*/
function grabDSQLConnection(param) {
if (global.DSQL_USE_LOCAL || (param === null || param === void 0 ? void 0 : param.local)) {
return __awaiter(this, void 0, void 0, function* () {
if (global.DSQL_USE_LOCAL || (param === null || param === void 0 ? void 0 : param.local)) {
return (global.DSQL_DB_CONN ||
(yield mariadb_1.default.createConnection({
host: process.env.DSQL_DB_HOST,
user: process.env.DSQL_DB_USERNAME,
password: process.env.DSQL_DB_PASSWORD,
database: (param === null || param === void 0 ? void 0 : param.noDb) ? undefined : process.env.DSQL_DB_NAME,
port: process.env.DSQL_DB_PORT
? Number(process.env.DSQL_DB_PORT)
: undefined,
charset: "utf8mb4",
ssl: (0, grabDbSSL_1.default)(),
supportBigNumbers: true,
bigNumberStrings: false,
dateStrings: true,
})));
}
if (param === null || param === void 0 ? void 0 : param.ro) {
return (global.DSQL_READ_ONLY_DB_CONN ||
(yield mariadb_1.default.createConnection({
host: process.env.DSQL_DB_HOST,
user: process.env.DSQL_DB_READ_ONLY_USERNAME,
password: process.env.DSQL_DB_READ_ONLY_PASSWORD,
port: process.env.DSQL_DB_PORT
? Number(process.env.DSQL_DB_PORT)
: undefined,
charset: "utf8mb4",
ssl: (0, grabDbSSL_1.default)(),
supportBigNumbers: true,
bigNumberStrings: false,
dateStrings: true,
})));
}
if (param === null || param === void 0 ? void 0 : param.fa) {
return (global.DSQL_FULL_ACCESS_DB_CONN ||
(yield mariadb_1.default.createConnection({
host: process.env.DSQL_DB_HOST,
user: process.env.DSQL_DB_FULL_ACCESS_USERNAME,
password: process.env.DSQL_DB_FULL_ACCESS_PASSWORD,
port: process.env.DSQL_DB_PORT
? Number(process.env.DSQL_DB_PORT)
: undefined,
charset: "utf8mb4",
ssl: (0, grabDbSSL_1.default)(),
supportBigNumbers: true,
bigNumberStrings: false,
dateStrings: true,
})));
}
return (global.DSQL_DB_CONN ||
mariadb_1.default.createPool({
(yield mariadb_1.default.createConnection({
host: process.env.DSQL_DB_HOST,
user: process.env.DSQL_DB_USERNAME,
password: process.env.DSQL_DB_PASSWORD,
@@ -22,44 +80,9 @@ function grabDSQLConnection(param) {
: undefined,
charset: "utf8mb4",
ssl: (0, grabDbSSL_1.default)(),
}));
}
if (param === null || param === void 0 ? void 0 : param.ro) {
return (global.DSQL_READ_ONLY_DB_CONN ||
mariadb_1.default.createPool({
host: process.env.DSQL_DB_HOST,
user: process.env.DSQL_DB_READ_ONLY_USERNAME,
password: process.env.DSQL_DB_READ_ONLY_PASSWORD,
port: process.env.DSQL_DB_PORT
? Number(process.env.DSQL_DB_PORT)
: undefined,
charset: "utf8mb4",
ssl: (0, grabDbSSL_1.default)(),
}));
}
if (param === null || param === void 0 ? void 0 : param.fa) {
return (global.DSQL_FULL_ACCESS_DB_CONN ||
mariadb_1.default.createPool({
host: process.env.DSQL_DB_HOST,
user: process.env.DSQL_DB_FULL_ACCESS_USERNAME,
password: process.env.DSQL_DB_FULL_ACCESS_PASSWORD,
port: process.env.DSQL_DB_PORT
? Number(process.env.DSQL_DB_PORT)
: undefined,
charset: "utf8mb4",
ssl: (0, grabDbSSL_1.default)(),
}));
}
return (global.DSQL_DB_CONN ||
mariadb_1.default.createPool({
host: process.env.DSQL_DB_HOST,
user: process.env.DSQL_DB_USERNAME,
password: process.env.DSQL_DB_PASSWORD,
database: (param === null || param === void 0 ? void 0 : param.noDb) ? undefined : process.env.DSQL_DB_NAME,
port: process.env.DSQL_DB_PORT
? Number(process.env.DSQL_DB_PORT)
: undefined,
charset: "utf8mb4",
ssl: (0, grabDbSSL_1.default)(),
}));
supportBigNumbers: true,
bigNumberStrings: false,
dateStrings: true,
})));
});
}
+3 -3
View File
@@ -5,7 +5,7 @@ type Params = {
ssl?: boolean;
connectionLimit?: number;
};
export default function setupDSQLDb({ useLocal, dbConfig, ssl, connectionLimit, }: Params): {
pool: mariadb.Pool;
};
export default function setupDSQLDb({ useLocal, dbConfig, ssl, connectionLimit, }: Params): Promise<{
conn: mariadb.Connection;
}>;
export {};
+46 -22
View File
@@ -1,4 +1,13 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
@@ -6,26 +15,41 @@ Object.defineProperty(exports, "__esModule", { value: true });
exports.default = setupDSQLDb;
const grabDbSSL_1 = __importDefault(require("./backend/grabDbSSL"));
const mariadb_1 = __importDefault(require("mariadb"));
function setupDSQLDb({ useLocal, dbConfig, ssl, connectionLimit = 100, }) {
global.DSQL_USE_LOCAL = useLocal || true;
const pool = mariadb_1.default.createPool(Object.assign(Object.assign({ host: process.env.DSQL_DB_HOST, user: process.env.DSQL_DB_USERNAME, password: process.env.DSQL_DB_PASSWORD, database: process.env.DSQL_DB_NAME, charset: "utf8mb4" }, dbConfig), { ssl: ssl ? (0, grabDbSSL_1.default)() : undefined, connectionLimit }));
global.DSQL_DB_CONN = pool;
// let readOnlyConnection;
// if (addReadOnlyConn) {
// readOnlyConnection = mariadb.createPool({
// host: process.env.DSQL_DB_HOST,
// user: process.env.DSQL_DB_READ_ONLY_USERNAME,
// password: process.env.DSQL_DB_READ_ONLY_PASSWORD,
// database: process.env.DSQL_DB_NAME,
// charset: "utf8mb4",
// ...readOnlyDbConfig,
// ssl: ssl ? grabDbSSL() : undefined,
// connectionLimit,
// });
// global.DSQL_READ_ONLY_DB_CONN = readOnlyConnection;
// }
return {
pool,
// readOnlyConnection,
};
function setupDSQLDb(_a) {
return __awaiter(this, arguments, void 0, function* ({ useLocal, dbConfig, ssl, connectionLimit = 20, }) {
global.DSQL_USE_LOCAL = useLocal || true;
const conn = yield mariadb_1.default.createConnection(Object.assign(Object.assign({ host: process.env.DSQL_DB_HOST, user: process.env.DSQL_DB_USERNAME, password: process.env.DSQL_DB_PASSWORD, database: process.env.DSQL_DB_NAME, charset: "utf8mb4" }, dbConfig), { ssl: ssl ? (0, grabDbSSL_1.default)() : undefined, supportBigNumbers: true, bigNumberStrings: false, dateStrings: true }));
// const conn = mariadb.createPool({
// host: process.env.DSQL_DB_HOST,
// user: process.env.DSQL_DB_USERNAME,
// password: process.env.DSQL_DB_PASSWORD,
// database: process.env.DSQL_DB_NAME,
// charset: "utf8mb4",
// ...dbConfig,
// ssl: ssl ? grabDbSSL() : undefined,
// connectionLimit,
// supportBigNumbers: true,
// bigNumberStrings: false,
// dateStrings: true,
// });
global.DSQL_DB_CONN = conn;
// let readOnlyConnection;
// if (addReadOnlyConn) {
// readOnlyConnection = mariadb.createPool({
// host: process.env.DSQL_DB_HOST,
// user: process.env.DSQL_DB_READ_ONLY_USERNAME,
// password: process.env.DSQL_DB_READ_ONLY_PASSWORD,
// database: process.env.DSQL_DB_NAME,
// charset: "utf8mb4",
// ...readOnlyDbConfig,
// ssl: ssl ? grabDbSSL() : undefined,
// connectionLimit,
// });
// global.DSQL_READ_ONLY_DB_CONN = readOnlyConnection;
// }
return {
conn,
// readOnlyConnection,
};
});
}