Updates
This commit is contained in:
@@ -1,5 +0,0 @@
|
||||
/**
|
||||
* # DSQL user read-only DB handler
|
||||
* @requires DSQL_DB_CONN - Gobal Variable for Datasquirel Database
|
||||
*/
|
||||
export default function DB_HANDLER(query: string, values?: any[]): Promise<any>;
|
||||
@@ -1,47 +0,0 @@
|
||||
"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 };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = DB_HANDLER;
|
||||
const grab_dsql_connection_1 = __importDefault(require("../../grab-dsql-connection"));
|
||||
/**
|
||||
* # DSQL user read-only DB handler
|
||||
* @requires DSQL_DB_CONN - Gobal Variable for Datasquirel Database
|
||||
*/
|
||||
function DB_HANDLER(query, values) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
var _a;
|
||||
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);
|
||||
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);
|
||||
return {
|
||||
success: false,
|
||||
error: error.message,
|
||||
};
|
||||
}
|
||||
finally {
|
||||
yield (CONNECTION === null || CONNECTION === void 0 ? void 0 : CONNECTION.end());
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
type Param = {
|
||||
paradigm: "Full Access" | "FA" | "Read Only";
|
||||
queryString: string;
|
||||
queryValues?: string[];
|
||||
};
|
||||
/**
|
||||
* # DSQL user read-only DB handler
|
||||
*/
|
||||
export default function DSQL_USER_DB_HANDLER({ paradigm, queryString, queryValues, }: Param): Promise<any>;
|
||||
export {};
|
||||
@@ -1,38 +0,0 @@
|
||||
"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 };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = DSQL_USER_DB_HANDLER;
|
||||
const conn_db_handler_1 = __importDefault(require("../../db/conn-db-handler"));
|
||||
const grab_dsql_connection_1 = __importDefault(require("../../grab-dsql-connection"));
|
||||
/**
|
||||
* # DSQL user read-only DB handler
|
||||
*/
|
||||
function DSQL_USER_DB_HANDLER(_a) {
|
||||
return __awaiter(this, arguments, void 0, function* ({ paradigm, queryString, queryValues, }) {
|
||||
var _b;
|
||||
const CONNECTION = paradigm == "Read Only"
|
||||
? 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);
|
||||
}
|
||||
catch (error) {
|
||||
(_b = global.ERROR_CALLBACK) === null || _b === void 0 ? void 0 : _b.call(global, `DSQL_USER_DB_HANDLER Error`, error);
|
||||
return null;
|
||||
}
|
||||
finally {
|
||||
yield (CONNECTION === null || CONNECTION === void 0 ? void 0 : CONNECTION.end());
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
/**
|
||||
* # DSQL user read-only DB handler
|
||||
*/
|
||||
export default function LOCAL_DB_HANDLER(query: string, values?: any[]): Promise<any>;
|
||||
@@ -1,44 +0,0 @@
|
||||
"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 };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = LOCAL_DB_HANDLER;
|
||||
const grab_dsql_connection_1 = __importDefault(require("../../grab-dsql-connection"));
|
||||
/**
|
||||
* # DSQL user read-only DB handler
|
||||
*/
|
||||
function LOCAL_DB_HANDLER(query, values) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
var _a;
|
||||
const CONNECTION = yield (0, grab_dsql_connection_1.default)();
|
||||
try {
|
||||
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);
|
||||
return {
|
||||
success: false,
|
||||
error: error.message,
|
||||
};
|
||||
}
|
||||
finally {
|
||||
yield (CONNECTION === null || CONNECTION === void 0 ? void 0 : CONNECTION.end());
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
/**
|
||||
* # DSQL user read-only DB handler
|
||||
*/
|
||||
export default function NO_DB_HANDLER(query: string, values?: any[]): Promise<unknown>;
|
||||
@@ -1,54 +0,0 @@
|
||||
"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 };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = NO_DB_HANDLER;
|
||||
const grab_dsql_connection_1 = __importDefault(require("../../grab-dsql-connection"));
|
||||
/**
|
||||
* # DSQL user read-only DB handler
|
||||
*/
|
||||
function NO_DB_HANDLER(query, values) {
|
||||
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,
|
||||
};
|
||||
}
|
||||
});
|
||||
}
|
||||
+4
-4
@@ -10,17 +10,17 @@ const grab_dir_names_1 = __importDefault(require("./names/grab-dir-names"));
|
||||
* # Grab SSL
|
||||
*/
|
||||
function grabDbSSL() {
|
||||
const { maxscaleSSLDir } = (0, grab_dir_names_1.default)();
|
||||
if (!(maxscaleSSLDir === null || maxscaleSSLDir === void 0 ? void 0 : maxscaleSSLDir.match(/./))) {
|
||||
const { maxscaleSSLCaCertFile } = (0, grab_dir_names_1.default)();
|
||||
const caFilePath = process.env.DSQL_SSL_CA_CERT || maxscaleSSLCaCertFile;
|
||||
if (!(caFilePath === null || caFilePath === void 0 ? void 0 : caFilePath.match(/./))) {
|
||||
return undefined;
|
||||
}
|
||||
const caFilePath = `${maxscaleSSLDir}/ca-cert.pem`;
|
||||
if (!fs_1.default.existsSync(caFilePath)) {
|
||||
console.log(`${caFilePath} does not exist`);
|
||||
return undefined;
|
||||
}
|
||||
return {
|
||||
ca: fs_1.default.readFileSync(`${maxscaleSSLDir}/ca-cert.pem`),
|
||||
ca: fs_1.default.readFileSync(caFilePath),
|
||||
rejectUnauthorized: false,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ 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)(global.DSQL_DB_CONN, `CREATE DATABASE IF NOT EXISTS ${dbFullName}`);
|
||||
yield (0, conn_db_handler_1.default)(null, `CREATE DATABASE IF NOT EXISTS ${dbFullName}`);
|
||||
const cmd = `${mysqlPath} -u ${finalMariadbUser} -h ${finalMariadbHost} -p"${finalMariadbPass}" ${dbFullName} < ${targetFilePath}`;
|
||||
let execSyncOptions = {
|
||||
encoding: "utf-8",
|
||||
|
||||
@@ -67,6 +67,7 @@ export default function grabDirNames(param?: Param): {
|
||||
schemasBackupDirName: string;
|
||||
userMainShemaJSONFilePath: string | undefined;
|
||||
maxscaleSSLDir: string;
|
||||
maxscaleSSLCaCertFile: string;
|
||||
mainDBSSLDir: string;
|
||||
replica1DBSSLDir: string;
|
||||
replica2DBSSLDir: string;
|
||||
@@ -89,5 +90,13 @@ export default function grabDirNames(param?: Param): {
|
||||
distroEnterpriseExportTarName: "dsql-enterprise.tar.xz";
|
||||
communityDistroTempDir: string;
|
||||
communityDistroDir: string;
|
||||
installScriptFile: string;
|
||||
updateScriptFile: string;
|
||||
installTypescriptFile: string;
|
||||
updateTypescriptFile: string;
|
||||
dsqlDbDockerComposeFile: string;
|
||||
dsqlDbDockerComposeFileAlt: string;
|
||||
dsqlDbDockerComposeFileName: string;
|
||||
dsqlDbDockerComposeFileNameAlt: string;
|
||||
};
|
||||
export {};
|
||||
|
||||
+22
-2
@@ -26,10 +26,15 @@ function grabDirNames(param) {
|
||||
const publicSSLDir = path_1.default.join(publicDir, "documents", "ssl");
|
||||
const appSSLDir = path_1.default.join(appDir, "ssl");
|
||||
const mainSSLDir = path_1.default.join(DATA_DIR, "ssl");
|
||||
const installScriptFile = path_1.default.join(appDir, "scripts", "shell", "installation", "install.sh");
|
||||
const updateScriptFile = path_1.default.join(appDir, "scripts", "shell", "installation", "update.sh");
|
||||
const installTypescriptFile = path_1.default.join(appDir, "scripts", "shell", "installation", "install.ts");
|
||||
const updateTypescriptFile = path_1.default.join(appDir, "scripts", "shell", "installation", "update.ts");
|
||||
const maxscaleSSLDir = path_1.default.join(mainSSLDir, "maxscale");
|
||||
const mainDBSSLDir = path_1.default.join(mainSSLDir, "main");
|
||||
const replica1DBSSLDir = path_1.default.join(mainSSLDir, "replica-1");
|
||||
const replica2DBSSLDir = path_1.default.join(mainSSLDir, "replica-2");
|
||||
const maxscaleSSLCaCertFile = path_1.default.join(maxscaleSSLDir, "ca-cert.pem");
|
||||
const privateDataDir = path_1.default.join(DATA_DIR, "private");
|
||||
/**
|
||||
* # DB Dir names
|
||||
@@ -106,12 +111,18 @@ function grabDirNames(param) {
|
||||
const dbNginxLoadBalancerConfigFile = path_1.default.join(appDir, "docker/services/mariadb/load-balancer/config/template/nginx.conf");
|
||||
let dockerComposeFile = path_1.default.join(appDir, "docker-compose.yml");
|
||||
let dockerComposeFileAlt = path_1.default.join(appDir, "docker-compose.yaml");
|
||||
const dbDockerComposeFileName = "db.docker-compose.yml";
|
||||
const dbDockerComposeFileNameAlt = "db.docker-compose.yaml";
|
||||
const dsqlDockerComposeFileName = "dsql.docker-compose.yml";
|
||||
const dsqlDockerComposeFileNameAlt = "dsql.docker-compose.yaml";
|
||||
const dsqlDbDockerComposeFileName = "dsql-db.docker-compose.yml";
|
||||
const dsqlDbDockerComposeFileNameAlt = "dsql-db.docker-compose.yaml";
|
||||
const dsqlDockerComposeFile = path_1.default.join(appDir, dsqlDockerComposeFileName);
|
||||
const dsqlDockerComposeFileAlt = path_1.default.join(appDir, dsqlDockerComposeFileNameAlt);
|
||||
const dbDockerComposeFile = path_1.default.join(appDir, "db.docker-compose.yml");
|
||||
const dbDockerComposeFileAlt = path_1.default.join(appDir, "db.docker-compose.yaml");
|
||||
const dbDockerComposeFile = path_1.default.join(appDir, dbDockerComposeFileName);
|
||||
const dbDockerComposeFileAlt = path_1.default.join(appDir, dbDockerComposeFileNameAlt);
|
||||
const dsqlDbDockerComposeFile = path_1.default.join(appDir, dsqlDbDockerComposeFileName);
|
||||
const dsqlDbDockerComposeFileAlt = path_1.default.join(appDir, dsqlDbDockerComposeFileNameAlt);
|
||||
const extraDockerComposeFile = path_1.default.join(appDir, "extra.docker-compose.yml");
|
||||
const extraDockerComposeFileAlt = path_1.default.join(appDir, "extra.docker-compose.yaml");
|
||||
const siteSetupFile = path_1.default.join(appDir, "site-setup.json");
|
||||
@@ -204,6 +215,7 @@ function grabDirNames(param) {
|
||||
schemasBackupDirName,
|
||||
userMainShemaJSONFilePath,
|
||||
maxscaleSSLDir,
|
||||
maxscaleSSLCaCertFile,
|
||||
mainDBSSLDir,
|
||||
replica1DBSSLDir,
|
||||
replica2DBSSLDir,
|
||||
@@ -226,5 +238,13 @@ function grabDirNames(param) {
|
||||
distroEnterpriseExportTarName,
|
||||
communityDistroTempDir,
|
||||
communityDistroDir,
|
||||
installScriptFile,
|
||||
updateScriptFile,
|
||||
installTypescriptFile,
|
||||
updateTypescriptFile,
|
||||
dsqlDbDockerComposeFile,
|
||||
dsqlDbDockerComposeFileAlt,
|
||||
dsqlDbDockerComposeFileName,
|
||||
dsqlDbDockerComposeFileNameAlt,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -6,4 +6,5 @@ export default function grabIPAddresses(): {
|
||||
localHostIP: string;
|
||||
globalIPPrefix: string;
|
||||
webSocketIP: string;
|
||||
dbCronIP: string;
|
||||
};
|
||||
|
||||
@@ -13,6 +13,7 @@ function grabIPAddresses() {
|
||||
const maxScaleIP = `${globalIPPrefix}.${maxscale}`;
|
||||
const mainDBIP = `${globalIPPrefix}.${db}`;
|
||||
const webSocketIP = `${globalIPPrefix}.${websocket}`;
|
||||
const dbCronIP = `${globalIPPrefix}.${db_cron}`;
|
||||
const localHostIP = `${globalIPPrefix}.1`;
|
||||
return {
|
||||
webAppIP,
|
||||
@@ -22,5 +23,6 @@ function grabIPAddresses() {
|
||||
localHostIP,
|
||||
globalIPPrefix,
|
||||
webSocketIP,
|
||||
dbCronIP,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -9,7 +9,6 @@ exports.default = parseCookies;
|
||||
* returns the cookies as a JS object
|
||||
*/
|
||||
function parseCookies({ request, cookieString, }) {
|
||||
var _a;
|
||||
try {
|
||||
/** @type {string | undefined} */
|
||||
const cookieStr = request
|
||||
@@ -37,7 +36,6 @@ function parseCookies({ request, cookieString, }) {
|
||||
return cookieObject;
|
||||
}
|
||||
catch (error) {
|
||||
(_a = global.ERROR_CALLBACK) === null || _a === void 0 ? void 0 : _a.call(global, `Parse Cookies Error`, error);
|
||||
return {};
|
||||
}
|
||||
}
|
||||
|
||||
+3
-5
@@ -4,9 +4,7 @@ exports.default = checkIfIsMaster;
|
||||
function checkIfIsMaster({ dbContext, dbFullName }) {
|
||||
return (dbContext === null || dbContext === void 0 ? void 0 : dbContext.match(/dsql.user/i))
|
||||
? false
|
||||
: global.DSQL_USE_LOCAL
|
||||
? true
|
||||
: dbFullName && !dbFullName.match(/^datasquirel$/)
|
||||
? false
|
||||
: true;
|
||||
: dbFullName && !dbFullName.match(/^datasquirel$/)
|
||||
? false
|
||||
: true;
|
||||
}
|
||||
|
||||
+1
-2
@@ -23,7 +23,6 @@ function dsqlCrud(params) {
|
||||
const { action, data, table, targetValue, sanitize, targetField, targetId, dbFullName, deleteData, batchData, deleteKeyValues, debug, } = params;
|
||||
const finalData = (sanitize ? sanitize({ data }) : data);
|
||||
const finalBatchData = (sanitize ? sanitize({ batchData }) : batchData);
|
||||
const DB_CONN = global.DSQL_READ_ONLY_DB_CONN || global.DSQL_DB_CONN;
|
||||
switch (action) {
|
||||
case "get":
|
||||
return yield (0, crud_get_1.default)(params);
|
||||
@@ -60,7 +59,7 @@ function dsqlCrud(params) {
|
||||
dbFullName,
|
||||
deleteKeyValues,
|
||||
});
|
||||
const res = (yield (0, conn_db_handler_1.default)(DB_CONN, 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)(undefined, deleteQuery === null || deleteQuery === void 0 ? void 0 : deleteQuery.query, deleteQuery === null || deleteQuery === void 0 ? void 0 : deleteQuery.values));
|
||||
return {
|
||||
success: Boolean(res.affectedRows),
|
||||
payload: res,
|
||||
|
||||
+1
-2
@@ -20,7 +20,7 @@ const numberfy_1 = __importDefault(require("../numberfy"));
|
||||
const crud_1 = __importDefault(require("./crud"));
|
||||
function dsqlMethodCrud(_a) {
|
||||
return __awaiter(this, arguments, void 0, function* ({ method, tableName, addUser, user, extraData, transformData, existingData, body, query, targetId, sanitize, transformQuery, debug, }) {
|
||||
var _b, _c, _d, _e, _f;
|
||||
var _b, _c, _d, _e;
|
||||
let result = {
|
||||
success: false,
|
||||
};
|
||||
@@ -160,7 +160,6 @@ function dsqlMethodCrud(_a) {
|
||||
return result;
|
||||
}
|
||||
catch (error) {
|
||||
(_f = global.ERROR_CALLBACK) === null || _f === void 0 ? void 0 : _f.call(global, `Method Crud Error`, error);
|
||||
return result;
|
||||
}
|
||||
});
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ export default function connDbHandler<ReturnType = any>(
|
||||
/**
|
||||
* MariaDB Connection
|
||||
*/
|
||||
conn?: mariadb.Connection,
|
||||
conn?: mariadb.Connection | null,
|
||||
/**
|
||||
* String Or `ConnDBHandlerQueryObject` Array
|
||||
*/
|
||||
|
||||
+6
-16
@@ -34,7 +34,6 @@ query,
|
||||
*/
|
||||
values, debug) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
var _a, _b;
|
||||
const finalConnection = conn || (yield (0, grab_dsql_connection_1.default)());
|
||||
try {
|
||||
if (!finalConnection)
|
||||
@@ -43,18 +42,15 @@ values, debug) {
|
||||
throw new Error("Query String Required!");
|
||||
let queryErrorArray = [];
|
||||
if (typeof query == "string") {
|
||||
const res = yield finalConnection.query(trimQuery(query), values);
|
||||
const [results] = yield finalConnection.query(trimQuery(query), values);
|
||||
if (debug) {
|
||||
(0, debug_log_1.default)({
|
||||
log: res,
|
||||
log: results,
|
||||
addTime: true,
|
||||
label: "res",
|
||||
});
|
||||
}
|
||||
if (Array.isArray(res)) {
|
||||
return Array.from(res);
|
||||
}
|
||||
return res;
|
||||
return results;
|
||||
}
|
||||
else if (typeof query == "object") {
|
||||
const resArray = [];
|
||||
@@ -65,22 +61,17 @@ values, debug) {
|
||||
currentQueryError.sql = queryObj.query;
|
||||
currentQueryError.sqlValues = queryObj.values;
|
||||
const queryObjRes = yield finalConnection.query(trimQuery(queryObj.query), queryObj.values);
|
||||
const results = queryObjRes[0];
|
||||
if (debug) {
|
||||
(0, debug_log_1.default)({
|
||||
log: queryObjRes,
|
||||
log: results,
|
||||
addTime: true,
|
||||
label: "queryObjRes",
|
||||
});
|
||||
}
|
||||
if (Array.isArray(queryObjRes)) {
|
||||
resArray.push(Array.from(queryObjRes));
|
||||
}
|
||||
else {
|
||||
resArray.push(queryObjRes);
|
||||
}
|
||||
resArray.push(results);
|
||||
}
|
||||
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;
|
||||
@@ -106,7 +97,6 @@ values, debug) {
|
||||
}
|
||||
}
|
||||
catch (error) {
|
||||
(_b = global.ERROR_CALLBACK) === null || _b === void 0 ? void 0 : _b.call(global, `Connection DB Handler Error`, error);
|
||||
if (debug) {
|
||||
(0, debug_log_1.default)({
|
||||
log: `Connection DB Handler Error: ${error.message}`,
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
type Params = {
|
||||
maxRetries?: number;
|
||||
sleepTime?: number;
|
||||
};
|
||||
export default function dockerTestDbConnection(params?: Params): Promise<void>;
|
||||
export {};
|
||||
@@ -0,0 +1,46 @@
|
||||
"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 };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = dockerTestDbConnection;
|
||||
const debug_log_1 = __importDefault(require("./logging/debug-log"));
|
||||
const mariadb_local_query_1 = __importDefault(require("./mariadb-local-query"));
|
||||
let checkDbRetries = 0;
|
||||
const MAX_CHECK_DB_RETRIES = 10;
|
||||
const DEFAULT_SLEEP_TIME = 3000;
|
||||
function dockerTestDbConnection(params) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const maxRetries = (params === null || params === void 0 ? void 0 : params.maxRetries) || MAX_CHECK_DB_RETRIES;
|
||||
const sleepTime = (params === null || params === void 0 ? void 0 : params.sleepTime) || DEFAULT_SLEEP_TIME;
|
||||
while (true) {
|
||||
if (checkDbRetries > maxRetries) {
|
||||
(0, debug_log_1.default)({
|
||||
log: `Max Retries for checking Database. Exiting ...`,
|
||||
addTime: true,
|
||||
label: "MaxRetries",
|
||||
});
|
||||
process.exit(1);
|
||||
}
|
||||
const checkDb = (0, mariadb_local_query_1.default)(`SHOW DATABASES`);
|
||||
const isDbReady = typeof checkDb == "string" &&
|
||||
Boolean(checkDb.match(/\ninformation_schema\n/));
|
||||
if (isDbReady) {
|
||||
break;
|
||||
}
|
||||
else {
|
||||
checkDbRetries++;
|
||||
yield Bun.sleep(sleepTime);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
type Params = {
|
||||
maxRetries?: number;
|
||||
sleepTime?: number;
|
||||
};
|
||||
export default function dockerTestMaxscaleConnection(params?: Params): Promise<void>;
|
||||
export {};
|
||||
@@ -0,0 +1,41 @@
|
||||
"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());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = dockerTestMaxscaleConnection;
|
||||
let checkDbRetries = 0;
|
||||
const MAX_CHECK_DB_RETRIES = 10;
|
||||
const DEFAULT_SLEEP_TIME = 3000;
|
||||
function dockerTestMaxscaleConnection(params) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const maxRetries = (params === null || params === void 0 ? void 0 : params.maxRetries) || MAX_CHECK_DB_RETRIES;
|
||||
const sleepTime = (params === null || params === void 0 ? void 0 : params.sleepTime) || DEFAULT_SLEEP_TIME;
|
||||
// while (true) {
|
||||
// if (checkDbRetries > maxRetries) {
|
||||
// debugLog({
|
||||
// log: `Max Retries for checking Database. Exiting ...`,
|
||||
// addTime: true,
|
||||
// label: "MaxRetries",
|
||||
// });
|
||||
// process.exit(1);
|
||||
// }
|
||||
// const checkDb = mariaDBlocalQuery(`SHOW DATABASES`);
|
||||
// const isDbReady =
|
||||
// typeof checkDb == "string" &&
|
||||
// Boolean(checkDb.match(/\ninformation_schema\n/));
|
||||
// if (isDbReady) {
|
||||
// break;
|
||||
// } else {
|
||||
// checkDbRetries++;
|
||||
// await Bun.sleep(sleepTime);
|
||||
// }
|
||||
// }
|
||||
});
|
||||
}
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
import { ExecSyncOptions } from "child_process";
|
||||
export default function execute(cmd: string | string[], options?: ExecSyncOptions): string | (string | undefined)[] | undefined;
|
||||
Vendored
+40
@@ -0,0 +1,40 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = execute;
|
||||
const child_process_1 = require("child_process");
|
||||
function execute(cmd, options) {
|
||||
function runCmd(cmd) {
|
||||
try {
|
||||
const res = (0, child_process_1.execSync)(cmd, Object.assign({ encoding: "utf-8" }, options));
|
||||
if (typeof res == "string") {
|
||||
return res.trim();
|
||||
}
|
||||
else {
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
catch (error) {
|
||||
console.log(`Execute Run Error =>`, error.message);
|
||||
console.log(`Execute CMD =>`, cmd);
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
try {
|
||||
if (typeof cmd == "string") {
|
||||
return runCmd(cmd);
|
||||
}
|
||||
else if (Array.isArray(cmd)) {
|
||||
let resArr = [];
|
||||
for (let i = 0; i < cmd.length; i++) {
|
||||
const singleCmd = cmd[i];
|
||||
const res = runCmd(singleCmd);
|
||||
resArr.push(res);
|
||||
}
|
||||
return resArr;
|
||||
}
|
||||
}
|
||||
catch (error) {
|
||||
console.log(`Execute Error =>`, error.message);
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
export default function grabAPIKey(key?: string): string | undefined;
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = grabAPIKey;
|
||||
function grabAPIKey(key) {
|
||||
return (key ||
|
||||
process.env.DSQL_API_KEY ||
|
||||
process.env.DSQL_FULL_ACCESS_API_KEY ||
|
||||
process.env.DSQL_READ_ONLY_API_KEY);
|
||||
}
|
||||
+7
-11
@@ -1,21 +1,17 @@
|
||||
import { Connection } from "mariadb";
|
||||
import { Connection, ConnectionConfig } from "mariadb";
|
||||
type Param = {
|
||||
/**
|
||||
* Read Only?
|
||||
*/
|
||||
ro?: boolean;
|
||||
/**
|
||||
* Full Access?
|
||||
*/
|
||||
fa?: boolean;
|
||||
/**
|
||||
* No Database Connection
|
||||
*/
|
||||
noDb?: boolean;
|
||||
/**
|
||||
* Is this a local connection?
|
||||
* Database Name
|
||||
*/
|
||||
local?: boolean;
|
||||
database?: string;
|
||||
/**
|
||||
* Debug
|
||||
*/
|
||||
config?: ConnectionConfig;
|
||||
};
|
||||
/**
|
||||
* # Grab General CONNECTION for DSQL
|
||||
|
||||
+80
-75
@@ -20,83 +20,88 @@ const grabDbSSL_1 = __importDefault(require("./backend/grabDbSSL"));
|
||||
*/
|
||||
function grabDSQLConnection(param) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return 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
|
||||
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)(),
|
||||
supportBigNumbers: true,
|
||||
bigNumberStrings: false,
|
||||
dateStrings: true,
|
||||
});
|
||||
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,
|
||||
})));
|
||||
: undefined, charset: "utf8mb4", ssl: (0, grabDbSSL_1.default)(), bigIntAsNumber: true, supportBigNumbers: true, bigNumberStrings: false, dateStrings: true, metaAsArray: true }, param === null || param === void 0 ? void 0 : param.config);
|
||||
try {
|
||||
return yield mariadb_1.default.createConnection(config);
|
||||
}
|
||||
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,
|
||||
})));
|
||||
catch (error) {
|
||||
console.log(`Error Grabbing DSQL Connection =>`, config);
|
||||
throw error;
|
||||
}
|
||||
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 ||
|
||||
(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 (global.DSQL_USE_LOCAL || param?.local) {
|
||||
// return (
|
||||
// global.DSQL_DB_CONN ||
|
||||
// (await mariadb.createConnection({
|
||||
// host: process.env.DSQL_DB_HOST,
|
||||
// user: process.env.DSQL_DB_USERNAME,
|
||||
// password: process.env.DSQL_DB_PASSWORD,
|
||||
// database: param?.noDb ? undefined : process.env.DSQL_DB_NAME,
|
||||
// port: process.env.DSQL_DB_PORT
|
||||
// ? Number(process.env.DSQL_DB_PORT)
|
||||
// : undefined,
|
||||
// charset: "utf8mb4",
|
||||
// ssl: grabDbSSL(),
|
||||
// supportBigNumbers: true,
|
||||
// bigNumberStrings: false,
|
||||
// dateStrings: true,
|
||||
// }))
|
||||
// );
|
||||
// }
|
||||
// if (param?.ro) {
|
||||
// return (
|
||||
// global.DSQL_READ_ONLY_DB_CONN ||
|
||||
// (await mariadb.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: grabDbSSL(),
|
||||
// supportBigNumbers: true,
|
||||
// bigNumberStrings: false,
|
||||
// dateStrings: true,
|
||||
// }))
|
||||
// );
|
||||
// }
|
||||
// if (param?.fa) {
|
||||
// return (
|
||||
// global.DSQL_FULL_ACCESS_DB_CONN ||
|
||||
// (await mariadb.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: grabDbSSL(),
|
||||
// supportBigNumbers: true,
|
||||
// bigNumberStrings: false,
|
||||
// dateStrings: true,
|
||||
// }))
|
||||
// );
|
||||
// }
|
||||
// return (
|
||||
// global.DSQL_DB_CONN ||
|
||||
// (await mariadb.createConnection({
|
||||
// host: process.env.DSQL_DB_HOST,
|
||||
// user: process.env.DSQL_DB_USERNAME,
|
||||
// password: process.env.DSQL_DB_PASSWORD,
|
||||
// database: param?.noDb ? undefined : process.env.DSQL_DB_NAME,
|
||||
// port: process.env.DSQL_DB_PORT
|
||||
// ? Number(process.env.DSQL_DB_PORT)
|
||||
// : undefined,
|
||||
// charset: "utf8mb4",
|
||||
// ssl: grabDbSSL(),
|
||||
// supportBigNumbers: true,
|
||||
// bigNumberStrings: false,
|
||||
// dateStrings: true,
|
||||
// }))
|
||||
// );
|
||||
});
|
||||
}
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
export default function grabDSQLRemoteURLs(): {
|
||||
communityTarballURL: string;
|
||||
communityTarballShortURL: string;
|
||||
installScriptURL: string;
|
||||
updateScriptURL: string;
|
||||
};
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = grabDSQLRemoteURLs;
|
||||
function grabDSQLRemoteURLs() {
|
||||
const communityTarballURL = "https://static.datasquirel.com/images/user-images/user-2/dsql/distro/dsql-community.tar.xz";
|
||||
const communityTarballShortURL = "https://datasquirel.com/api/media/dsql-community";
|
||||
const installScriptURL = "https://datasquirel.com/api/media/install";
|
||||
const updateScriptURL = "https://datasquirel.com/api/media/update";
|
||||
return {
|
||||
communityTarballURL,
|
||||
communityTarballShortURL,
|
||||
installScriptURL,
|
||||
updateScriptURL,
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
export default function mariaDBlocalQuery(query: string | string[]): string | (string | undefined)[] | undefined;
|
||||
export declare function removeQueryDoubleQuotes(query: string): string;
|
||||
@@ -0,0 +1,24 @@
|
||||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = mariaDBlocalQuery;
|
||||
exports.removeQueryDoubleQuotes = removeQueryDoubleQuotes;
|
||||
const grab_docker_stack_services_names_1 = __importDefault(require("@/package-shared/utils/backend/names/grab-docker-stack-services-names"));
|
||||
const normalize_text_1 = __importDefault(require("@/package-shared/utils/normalize-text"));
|
||||
const execute_1 = __importDefault(require("./execute"));
|
||||
function mariaDBlocalQuery(query) {
|
||||
const { dbServiceName, maxScaleServiceName } = (0, grab_docker_stack_services_names_1.default)();
|
||||
const MARIADB_CMD_PREFIX = `docker exec ${dbServiceName} mariadb -u root -p"${process.env.DSQL_MARIADB_ROOT_PASSWORD}"`;
|
||||
function grabMariadbDockerCmd(cmd) {
|
||||
return `${MARIADB_CMD_PREFIX} -e "${removeQueryDoubleQuotes((0, normalize_text_1.default)(cmd))}"`;
|
||||
}
|
||||
const finalQuery = Array.isArray(query)
|
||||
? query.map((qry) => grabMariadbDockerCmd(qry))
|
||||
: grabMariadbDockerCmd(query);
|
||||
return (0, execute_1.default)(finalQuery);
|
||||
}
|
||||
function removeQueryDoubleQuotes(query) {
|
||||
return query.replace(/\"/gm, '\\"');
|
||||
}
|
||||
+2
-2
@@ -71,8 +71,8 @@ export default function parseEnv(
|
||||
DSQL_WEB_APP_FAIL_COUNTS: string | undefined;
|
||||
NODE_ARCH: string | undefined;
|
||||
DSQL_WEBSOCKET_PORT: string | undefined;
|
||||
DSQL_WEBSOCKET_URL: string | undefined;
|
||||
NEXT_PUBLIC_DSQL_WEBSOCKET_URL: string | undefined;
|
||||
DSQL_WEBSOCKET_HOST: string | undefined;
|
||||
NEXT_PUBLIC_DSQL_WEBSOCKET_HOST: string | undefined;
|
||||
S3_ACCESS_KEY_ID: string | undefined;
|
||||
S3_SECRET_ACCESS: string | undefined;
|
||||
DSQL_ADDITIONAL_MARIADB_SERVERS: string | undefined;
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ type Params = {
|
||||
ssl?: boolean;
|
||||
connectionLimit?: number;
|
||||
};
|
||||
export default function setupDSQLDb({ useLocal, dbConfig, ssl, connectionLimit, }: Params): Promise<{
|
||||
export default function setupDSQLDb({ dbConfig, ssl }: Params): Promise<{
|
||||
conn: mariadb.Connection;
|
||||
}>;
|
||||
export {};
|
||||
|
||||
+2
-4
@@ -16,9 +16,8 @@ exports.default = setupDSQLDb;
|
||||
const grabDbSSL_1 = __importDefault(require("./backend/grabDbSSL"));
|
||||
const mariadb_1 = __importDefault(require("mariadb"));
|
||||
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 }));
|
||||
return __awaiter(this, arguments, void 0, function* ({ dbConfig, ssl }) {
|
||||
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, bigIntAsNumber: true, metaAsArray: true }));
|
||||
// const conn = mariadb.createPool({
|
||||
// host: process.env.DSQL_DB_HOST,
|
||||
// user: process.env.DSQL_DB_USERNAME,
|
||||
@@ -32,7 +31,6 @@ function setupDSQLDb(_a) {
|
||||
// bigNumberStrings: false,
|
||||
// dateStrings: true,
|
||||
// });
|
||||
global.DSQL_DB_CONN = conn;
|
||||
// let readOnlyConnection;
|
||||
// if (addReadOnlyConn) {
|
||||
// readOnlyConnection = mariadb.createPool({
|
||||
|
||||
+4
-1
@@ -22,5 +22,8 @@ function setupGlobalNetwork() {
|
||||
newNtwkCmd += ` ${globalNetworkName}`;
|
||||
(0, child_process_1.execSync)(newNtwkCmd);
|
||||
}
|
||||
catch (error) { }
|
||||
catch (error) {
|
||||
console.log(`Failed to create global network ${globalNetworkName}`);
|
||||
console.log(globalIPPrefix);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
type Params = {
|
||||
maxRetries?: number;
|
||||
sleepTime?: number;
|
||||
};
|
||||
export default function testDbConnection(params?: Params): Promise<boolean>;
|
||||
export {};
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
"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 };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = testDbConnection;
|
||||
const dbHandler_1 = __importDefault(require("../functions/backend/dbHandler"));
|
||||
let testDbConnRetries = 0;
|
||||
const MAX_TEST_DB_CONN_RETRIES = 10;
|
||||
const SLEEP_TIME = 2000;
|
||||
function testDbConnection(params) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
console.log("Testing Database Connection ...", testDbConnRetries);
|
||||
while (true) {
|
||||
testDbConnRetries++;
|
||||
try {
|
||||
const res = (yield (0, dbHandler_1.default)({ query: `SHOW DATABASES` }));
|
||||
if (res === null || res === void 0 ? void 0 : res[0]) {
|
||||
console.log("Database Connection Complete!");
|
||||
break;
|
||||
}
|
||||
yield Bun.sleep((params === null || params === void 0 ? void 0 : params.sleepTime) || SLEEP_TIME);
|
||||
if (testDbConnRetries >
|
||||
((params === null || params === void 0 ? void 0 : params.maxRetries) || MAX_TEST_DB_CONN_RETRIES)) {
|
||||
console.log("Database Connection Failed!");
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
catch (error) {
|
||||
yield Bun.sleep((params === null || params === void 0 ? void 0 : params.sleepTime) || SLEEP_TIME);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user