UNPKG

tspace-mysql

Version:

Tspace MySQL is a promise-based ORM for Node.js, designed with modern TypeScript and providing type safety for schema databases.

88 lines 3.39 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.loadOptionsEnvironment = void 0; const tools_1 = require("../tools"); const dotenv_1 = __importDefault(require("dotenv")); const environment = () => { const NODE_ENV = process.env?.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 rawEnv = { HOST: ENV.DB_HOST ?? 'localhost', PORT: ENV.DB_PORT ?? 3306, USERNAME: ENV.DB_USERNAME ?? ENV.DB_USER, PASSWORD: ENV.DB_PASSWORD ?? '', DATABASE: ENV.DB_DATABASE, CONNECTION_LIMIT: ENV.DB_CONNECTION_LIMIT ?? 151, QUEUE_LIMIT: ENV.DB_QUEUE_LIMIT ?? 0, TIMEOUT: ENV.DB_TIMEOUT ?? 1000 * 90, CHARSET: ENV.DB_CHARSET ?? 'utf8mb4', CONNECTION_ERROR: ENV.DB_CONNECTION_ERROR ?? false, CONNECTION_SUCCESS: ENV.DB_CONNECTION_SUCCESS ?? false, WAIT_FOR_CONNECTIONS: ENV.DB_WAIT_FOR_CONNECTIONS ?? true, DATE_STRINGS: ENV.DB_DATE_STRINGS ?? false, KEEP_ALIVE_DELAY: ENV.DB_KEEP_ALIVE_DELAY ?? 0, ENABLE_KEEP_ALIVE: ENV.DB_ENABLE_KEEP_ALIVE ?? true, MULTIPLE_STATEMENTS: ENV.DB_MULTIPLE_STATEMENTS ?? false, CACHE: ENV.DB_CACHE ?? 'memory' }; const parseEnv = (env) => { const parsed = {}; for (const [key, value] of Object.entries(env)) { if (value == null) continue; if (value === '') { parsed[key] = value; continue; } if (!isNaN(Number(value))) { (parsed)[key] = Number(value); continue; } if (typeof value === 'string' && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) { (parsed)[key] = value.toLowerCase() === 'true'; continue; } parsed[key] = value; } return parsed; }; const env = parseEnv(rawEnv); const loadOptionsEnvironment = () => { const environment = () => { const NODE_ENV = process.env?.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 rawEnv = { host: ENV?.DB_HOST || ENV?.TSPACE_HOST, port: ENV?.DB_PORT || ENV?.TSPACE_PORT || 3306, username: ENV?.DB_USERNAME || ENV?.TSPACE_USERNAME, password: ENV?.DB_PASSWORD || ENV?.TSPACE_PASSWORD || '', database: ENV?.DB_DATABASE || ENV?.TSPACE_DATABASE, }; //@ts-ignore const env = parseEnv(rawEnv); return Object.freeze(env); }; exports.loadOptionsEnvironment = loadOptionsEnvironment; exports.default = Object.freeze(env); //# sourceMappingURL=index.js.map