tspace-mysql
Version:
Tspace MySQL is a promise-based ORM for Node.js, designed with modern TypeScript and providing type safety for schema databases.
86 lines • 4.62 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
Object.defineProperty(exports, "__esModule", { value: true });
exports.loadOptionsEnvironment = void 0;
const tools_1 = require("../tools");
const dotenv_1 = __importDefault(require("dotenv"));
const environment = () => {
var _a;
const NODE_ENV = (_a = process.env) === null || _a === void 0 ? void 0 : _a.NODE_ENV;
const env = tools_1.Tool.path.join(tools_1.Tool.path.resolve(), '.env');
if (NODE_ENV == null)
return env;
const envWithEnviroment = tools_1.Tool.path.join(tools_1.Tool.path.resolve(), `.env.${NODE_ENV}`);
if (tools_1.Tool.fs.existsSync(envWithEnviroment))
return envWithEnviroment;
return env;
};
dotenv_1.default.config({ path: environment() });
const ENV = process.env;
const env = {
HOST: (_a = ENV.DB_HOST) !== null && _a !== void 0 ? _a : 'localhost',
PORT: (_b = ENV.DB_PORT) !== null && _b !== void 0 ? _b : 3306,
USERNAME: (_c = ENV.DB_USERNAME) !== null && _c !== void 0 ? _c : ENV.DB_USER,
PASSWORD: (_d = ENV.DB_PASSWORD) !== null && _d !== void 0 ? _d : '',
DATABASE: ENV.DB_DATABASE,
CONNECTION_LIMIT: (_e = ENV.DB_CONNECTION_LIMIT) !== null && _e !== void 0 ? _e : 151,
QUEUE_LIMIT: (_f = ENV.DB_QUEUE_LIMIT) !== null && _f !== void 0 ? _f : 0,
TIMEOUT: (_g = ENV.DB_TIMEOUT) !== null && _g !== void 0 ? _g : 1000 * 90,
CHARSET: (_h = ENV.DB_CHARSET) !== null && _h !== void 0 ? _h : 'utf8mb4',
CONNECTION_ERROR: (_j = ENV.DB_CONNECTION_ERROR) !== null && _j !== void 0 ? _j : false,
CONNECTION_SUCCESS: (_k = ENV.DB_CONNECTION_SUCCESS) !== null && _k !== void 0 ? _k : false,
WAIT_FOR_CONNECTIONS: (_l = ENV.DB_WAIT_FOR_CONNECTIONS) !== null && _l !== void 0 ? _l : true,
DATE_STRINGS: (_m = ENV.DB_DATE_STRINGS) !== null && _m !== void 0 ? _m : false,
KEEP_ALIVE_DELAY: (_o = ENV.DB_KEEP_ALIVE_DELAY) !== null && _o !== void 0 ? _o : 0,
ENABLE_KEEP_ALIVE: (_p = ENV.DB_ENABLE_KEEP_ALIVE) !== null && _p !== void 0 ? _p : true,
MULTIPLE_STATEMENTS: (_q = ENV.DB_MULTIPLE_STATEMENTS) !== null && _q !== void 0 ? _q : false,
CACHE: (_r = ENV.DB_CACHE) !== null && _r !== void 0 ? _r : 'db'
};
for (const [key, value] of Object.entries(env)) {
if (value == null || key == null)
continue;
if (typeof value === 'string' && ['true', 'false'].some(v => value.toLowerCase() === v)) {
env[key] = JSON.parse(value.toLowerCase());
continue;
}
if (/^[0-9]+$/.test(value))
env[key] = +value;
}
const loadOptionsEnvironment = () => {
const environment = () => {
var _a;
const NODE_ENV = (_a = process.env) === null || _a === void 0 ? void 0 : _a.NODE_ENV;
const env = tools_1.Tool.path.join(tools_1.Tool.path.resolve(), '.env');
if (NODE_ENV == null)
return env;
const envWithEnviroment = tools_1.Tool.path.join(tools_1.Tool.path.resolve(), `.env.${NODE_ENV}`);
if (tools_1.Tool.fs.existsSync(envWithEnviroment))
return envWithEnviroment;
return env;
};
const ENV = dotenv_1.default.config({ path: environment() }).parsed;
const env = {
host: (ENV === null || ENV === void 0 ? void 0 : ENV.DB_HOST) || (ENV === null || ENV === void 0 ? void 0 : ENV.TSPACE_HOST),
port: (ENV === null || ENV === void 0 ? void 0 : ENV.DB_PORT) || (ENV === null || ENV === void 0 ? void 0 : ENV.TSPACE_PORT) || 3306,
username: (ENV === null || ENV === void 0 ? void 0 : ENV.DB_USERNAME) || (ENV === null || ENV === void 0 ? void 0 : ENV.TSPACE_USERNAME),
password: (ENV === null || ENV === void 0 ? void 0 : ENV.DB_PASSWORD) || (ENV === null || ENV === void 0 ? void 0 : ENV.TSPACE_PASSWORD) || '',
database: (ENV === null || ENV === void 0 ? void 0 : ENV.DB_DATABASE) || (ENV === null || ENV === void 0 ? void 0 : ENV.TSPACE_DATABASE),
};
for (const [key, value] of Object.entries(env)) {
if (value == null)
continue;
if (typeof value === 'string' && ['true', 'false'].some(v => value.toLowerCase() === v)) {
env[key] = JSON.parse(value.toLowerCase());
continue;
}
if (/^[0-9]+$/.test(value))
env[key] = +value;
}
return Object.freeze(Object.assign({}, env));
};
exports.loadOptionsEnvironment = loadOptionsEnvironment;
exports.default = Object.freeze(Object.assign({}, env));
//# sourceMappingURL=index.js.map