This commit is contained in:
Benjamin Toby
2025-08-05 15:27:07 +01:00
parent 43a741f9ac
commit eb98148533
23 changed files with 84 additions and 116 deletions
+5 -7
View File
@@ -1,10 +1,6 @@
import { DSQL_TableSchemaType, PostInsertReturn } from "../../types";
import { DSQL_TableSchemaType } from "../../types";
import { ConnectionConfig } from "mariadb";
type Param<T extends {
[k: string]: any;
} = {
[k: string]: any;
}> = {
type Param = {
query: string;
values?: string[] | object;
noErrorLogs?: boolean;
@@ -18,5 +14,7 @@ type Param<T extends {
*/
export default function dbHandler<T extends {
[k: string]: any;
} = PostInsertReturn>({ query, values, noErrorLogs, database, config, }: Param<T>): Promise<T[] | T | null>;
} = {
[k: string]: any;
}>({ query, values, noErrorLogs, database, config, }: Param): Promise<T[] | T | null>;
export {};
+5 -5
View File
@@ -27,16 +27,16 @@ function dbHandler(_a) {
try {
CONNECTION = yield (0, grab_dsql_connection_1.default)({ database, config });
if (query && values) {
const queryResults = (yield CONNECTION.query(query, values));
results = queryResults;
const queryResults = yield CONNECTION.query(query, values);
results = queryResults[0];
}
else {
const queryResults = (yield CONNECTION.query(query));
results = queryResults;
const queryResults = yield CONNECTION.query(query);
results = queryResults[0];
}
}
catch (error) {
console.log("Connection Info =>", CONNECTION === null || CONNECTION === void 0 ? void 0 : CONNECTION.getConfig());
console.log("Connection Info =>", CONNECTION === null || CONNECTION === void 0 ? void 0 : CONNECTION.info);
if (error.message &&
typeof error.message == "string" &&
error.message.match(/Access denied for user.*password/i)) {
@@ -15,5 +15,9 @@ type CreateNewUserParams = {
host?: string;
password?: string;
};
export declare function createNewSQLUser({ host, password, username, }: CreateNewUserParams): Promise<import("../../../types").PostInsertReturn | import("../../../types").PostInsertReturn[] | null>;
export declare function createNewSQLUser({ host, password, username, }: CreateNewUserParams): Promise<{
[k: string]: any;
} | {
[k: string]: any;
}[] | null>;
export {};
+1 -1
View File
@@ -28,7 +28,7 @@ const grab_dsql_connection_1 = __importDefault(require("../utils/grab-dsql-conne
(() => __awaiter(void 0, void 0, void 0, function* () {
const CONNECTION = yield (0, grab_dsql_connection_1.default)();
try {
const result = yield CONNECTION.query("SELECT id,first_name,last_name FROM users LIMIT 3");
const [result] = yield CONNECTION.query("SELECT id,first_name,last_name FROM users LIMIT 3");
console.log("Connection Query Success =>", result);
}
catch (error) {
+1 -1
View File
@@ -33,7 +33,7 @@ const grab_dsql_connection_1 = __importDefault(require("../utils/grab-dsql-conne
* @description If a database is provided, switch to it
*/
try {
const result = yield CONNECTION.query("SHOW DATABASES");
const [result] = yield CONNECTION.query("SHOW DATABASES");
const parsedResults = JSON.parse(JSON.stringify(result));
console.log("parsedResults =>", parsedResults);
}
+2 -2
View File
@@ -30,7 +30,7 @@ const grab_sql_key_name_1 = __importDefault(require("../utils/grab-sql-key-name"
var _a;
const CONNECTION = yield (0, grab_dsql_connection_1.default)();
try {
const result = (yield CONNECTION.query("SELECT user,host,ssl_type FROM mysql.user"));
const [result] = yield CONNECTION.query("SELECT user,host,ssl_type FROM mysql.user");
for (let i = 0; i < result.length; i++) {
const user = result[i];
if (user.User !== process.env.DSQL_DB_READ_ONLY_USERNAME ||
@@ -42,7 +42,7 @@ const grab_sql_key_name_1 = __importDefault(require("../utils/grab-sql-key-name"
if (ssl_type === "ANY") {
continue;
}
const addUserSSL = yield CONNECTION.query(`ALTER USER '${User}'@'${Host}'`);
const [addUserSSL] = yield CONNECTION.query(`ALTER USER '${User}'@'${Host}'`);
console.log(`addUserSSL => ${User}@${Host}`, addUserSSL);
}
}
+4 -1
View File
@@ -1,4 +1,7 @@
import type { ConnectionConfig } from "mariadb";
type Return = ConnectionConfig["ssl"] | undefined;
/**
* # Grab SSL
*/
export default function grabDbSSL(): any;
export default function grabDbSSL(): Return;
export {};
-1
View File
@@ -7,7 +7,6 @@ exports.default = grabDbSSL;
const fs_1 = __importDefault(require("fs"));
const grab_dir_names_1 = __importDefault(require("./names/grab-dir-names"));
const path_1 = __importDefault(require("path"));
// type Return = ConnectionConfig["ssl"] | undefined;
/**
* # Grab SSL
*/
+2 -2
View File
@@ -42,7 +42,7 @@ values, debug) {
throw new Error("Query String Required!");
let queryErrorArray = [];
if (typeof query == "string") {
const results = (yield finalConnection.query(trimQuery(query), values));
const [results] = yield finalConnection.query(trimQuery(query), values);
if (debug) {
(0, debug_log_1.default)({
log: results,
@@ -61,7 +61,7 @@ values, debug) {
currentQueryError.sql = queryObj.query;
currentQueryError.sqlValues = queryObj.values;
const queryObjRes = yield finalConnection.query(trimQuery(queryObj.query), queryObj.values);
const results = queryObjRes;
const results = queryObjRes[0];
if (debug) {
(0, debug_log_1.default)({
log: results,
+2 -2
View File
@@ -1,6 +1,6 @@
import { ConnectionConfig } from "mariadb";
import { DsqlConnectionParam } from "../types";
import serverlessMysql from "serverless-mysql";
/**
* # Grab General CONNECTION for DSQL
*/
export default function grabDSQLConnectionConfig(param?: DsqlConnectionParam): serverlessMysql.Config;
export default function grabDSQLConnectionConfig(param?: DsqlConnectionParam): ConnectionConfig;
+5 -26
View File
@@ -5,35 +5,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = grabDSQLConnectionConfig;
const grabDbSSL_1 = __importDefault(require("./backend/grabDbSSL"));
const lodash_1 = __importDefault(require("lodash"));
/**
* # Grab General CONNECTION for DSQL
*/
function grabDSQLConnectionConfig(param) {
const CONN_TIMEOUT = 10000;
const config = {
config: {
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.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)(),
connectTimeout: CONN_TIMEOUT,
dateStrings: true,
compress: true,
decimalNumbers: true,
// supportBigNumbers: true,
// bigNumberStrings: false,
// bigIntAsNumber: true,
// metaAsArray: true,
// socketTimeout: CONN_TIMEOUT,
// ...param?.config,
},
};
return lodash_1.default.merge(config, param === null || param === void 0 ? void 0 : param.config);
const config = Object.assign({ 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.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)(), bigIntAsNumber: true, supportBigNumbers: true, bigNumberStrings: false, dateStrings: true, metaAsArray: true, socketTimeout: CONN_TIMEOUT, connectTimeout: CONN_TIMEOUT, compress: true }, param === null || param === void 0 ? void 0 : param.config);
return config;
}
+2 -2
View File
@@ -1,6 +1,6 @@
import { Connection } from "mariadb";
import { DsqlConnectionParam } from "../types";
import { ServerlessMysql } from "serverless-mysql";
/**
* # Grab General CONNECTION for DSQL
*/
export default function grabDSQLConnection(param?: DsqlConnectionParam): Promise<ServerlessMysql>;
export default function grabDSQLConnection(param?: DsqlConnectionParam): Promise<Connection>;
+2 -3
View File
@@ -13,8 +13,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = grabDSQLConnection;
const mariadb_1 = __importDefault(require("mariadb"));
const grab_dsql_connection_config_1 = __importDefault(require("./grab-dsql-connection-config"));
const serverless_mysql_1 = __importDefault(require("serverless-mysql"));
/**
* # Grab General CONNECTION for DSQL
*/
@@ -22,8 +22,7 @@ function grabDSQLConnection(param) {
return __awaiter(this, void 0, void 0, function* () {
const config = (0, grab_dsql_connection_config_1.default)(param);
try {
const sql = (0, serverless_mysql_1.default)(config);
return sql;
return yield mariadb_1.default.createConnection(config);
}
catch (error) {
console.log(`Error Grabbing DSQL Connection =>`, config);