UNPKG

@szegedsw/lib-node

Version:

A little framework published by Szeged Software Zrt. in order to enhance api endpoint security and create reuseable code. Email module, Logging system, and much more. Further improvements are expected.

326 lines 12 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Env = exports.envPath = void 0; const child_process_1 = require("child_process"); const fs_1 = __importDefault(require("fs")); const path_1 = require("path"); const util_1 = require("util"); require("../extensions/extensions"); exports.envPath = (dist = true) => { switch (process.env.NODE_ENV.trim()) { case "production": return `${dist ? "dist/" : ""}.env`; case "development": return "src/.env"; default: return undefined; } }; class Env { constructor() { // names parameters Object.defineProperty(this, "envSeparator", { enumerable: true, configurable: true, writable: true, value: () => String(process.env.ENV_SEPARATOR || ",") }); Object.defineProperty(this, "nodePort", { enumerable: true, configurable: true, writable: true, value: () => Number(process.env.NODE_PORT) }); Object.defineProperty(this, "nodeSsl", { enumerable: true, configurable: true, writable: true, value: () => bool(process.env.NODE_SSL) }); Object.defineProperty(this, "nodeSslKey", { enumerable: true, configurable: true, writable: true, value: () => String(process.env.NODE_SSLKEY) }); Object.defineProperty(this, "nodeSslCert", { enumerable: true, configurable: true, writable: true, value: () => String(process.env.NODE_SSLCERT) }); Object.defineProperty(this, "cookieName", { enumerable: true, configurable: true, writable: true, value: () => String(process.env.COOKIE_NAME) }); Object.defineProperty(this, "cookieSecure", { enumerable: true, configurable: true, writable: true, value: () => bool(process.env.COOKIE_SECURE) }); Object.defineProperty(this, "cookieSecret", { enumerable: true, configurable: true, writable: true, value: () => String(process.env.COOKIE_SECRET) }); Object.defineProperty(this, "databaseType", { enumerable: true, configurable: true, writable: true, value: () => String(process.env.DATABASE_TYPE) }); Object.defineProperty(this, "databaseUser", { enumerable: true, configurable: true, writable: true, value: () => String(process.env.DATABASE_USER) }); Object.defineProperty(this, "databasePassword", { enumerable: true, configurable: true, writable: true, value: () => String(process.env.DATABASE_PASSWORD) }); Object.defineProperty(this, "databaseAuthSource", { enumerable: true, configurable: true, writable: true, value: () => String(process.env.DATABASE_AUTHSOURCE) }); Object.defineProperty(this, "databaseHost", { enumerable: true, configurable: true, writable: true, value: () => String(process.env.DATABASE_HOST) }); Object.defineProperty(this, "databasePort", { enumerable: true, configurable: true, writable: true, value: () => Number(process.env.DATABASE_PORT) }); Object.defineProperty(this, "databaseSid", { enumerable: true, configurable: true, writable: true, value: () => String(process.env.DATABASE_SID) }); Object.defineProperty(this, "databaseName", { enumerable: true, configurable: true, writable: true, value: () => String(process.env.DATABASE_NAME) }); Object.defineProperty(this, "databaseOwner", { enumerable: true, configurable: true, writable: true, value: () => String(process.env.DATABASE_OWNER) }); Object.defineProperty(this, "databaseSsl", { enumerable: true, configurable: true, writable: true, value: () => bool(process.env.DATABASE_SSL) }); Object.defineProperty(this, "databasePoolSize", { enumerable: true, configurable: true, writable: true, value: () => Number(process.env.DATABASE_POOL_SIZE) }); Object.defineProperty(this, "databasePoolMin", { enumerable: true, configurable: true, writable: true, value: () => Number(process.env.DATABASE_POOL_MIN) }); Object.defineProperty(this, "databasePoolMax", { enumerable: true, configurable: true, writable: true, value: () => Number(process.env.DATABASE_POOL_MAX) }); Object.defineProperty(this, "databasePoolIncrement", { enumerable: true, configurable: true, writable: true, value: () => Number(process.env.DATABASE_POOL_INCREMENT) }); Object.defineProperty(this, "databaseIdleTimeout", { enumerable: true, configurable: true, writable: true, value: () => Number(process.env.DATABASE_IDLE_TIMEOUT) }); Object.defineProperty(this, "databaseConnectionTimeout", { enumerable: true, configurable: true, writable: true, value: () => Number(process.env.DATABASE_CONNECTION_TIMEOUT) }); Object.defineProperty(this, "databaseSecret", { enumerable: true, configurable: true, writable: true, value: () => String(process.env.DATABASE_SECRET) }); Object.defineProperty(this, "databaseRownum", { enumerable: true, configurable: true, writable: true, value: () => Number(process.env.DATABASE_ROWNUM) }); Object.defineProperty(this, "emailUser", { enumerable: true, configurable: true, writable: true, value: () => String(process.env.EMAIL_USER) }); Object.defineProperty(this, "emailPassword", { enumerable: true, configurable: true, writable: true, value: () => String(process.env.EMAIL_PASSWORD) }); Object.defineProperty(this, "emailHost", { enumerable: true, configurable: true, writable: true, value: () => String(process.env.EMAIL_HOST) }); Object.defineProperty(this, "emailPort", { enumerable: true, configurable: true, writable: true, value: () => Number(process.env.EMAIL_PORT) }); Object.defineProperty(this, "emailSecure", { enumerable: true, configurable: true, writable: true, value: () => bool(process.env.EMAIL_SECURE) }); Object.defineProperty(this, "emailPoolSize", { enumerable: true, configurable: true, writable: true, value: () => Number(process.env.EMAIL_POOL_SIZE) }); Object.defineProperty(this, "emailLogger", { enumerable: true, configurable: true, writable: true, value: () => bool(process.env.EMAIL_LOGGER) }); Object.defineProperty(this, "emailSubject", { enumerable: true, configurable: true, writable: true, value: () => String(process.env.EMAIL_SUBJECT) }); Object.defineProperty(this, "emailAdmins", { enumerable: true, configurable: true, writable: true, value: () => String(process.env.EMAIL_ADMINS).split(this.envSeparator()) }); Object.defineProperty(this, "emailEvents", { enumerable: true, configurable: true, writable: true, value: () => String(process.env.EMAIL_EVENTS).split(this.envSeparator()) }); Object.defineProperty(this, "emailRejectUnauthorized", { enumerable: true, configurable: true, writable: true, value: () => bool(process.env.EMAIL_REJECT_UNAUTHORIZED || true) }); Object.defineProperty(this, "sessionTimeout", { enumerable: true, configurable: true, writable: true, value: () => Number(process.env.SESSION_TIMEOUT) }); Object.defineProperty(this, "debugLog", { enumerable: true, configurable: true, writable: true, value: () => bool(process.env.DEBUG_LOG || 0) }); Object.defineProperty(this, "auditLogMethods", { enumerable: true, configurable: true, writable: true, value: () => String(process.env.AUDIT_LOG_METHODS).split(this.envSeparator()) }); Object.defineProperty(this, "freeAccessPaths", { enumerable: true, configurable: true, writable: true, value: () => process.env.FREE_ACCESS_PATHS ? JSON.parse(String(process.env.FREE_ACCESS_PATHS)) : {} }); Object.defineProperty(this, "publicPaths", { enumerable: true, configurable: true, writable: true, value: () => (process.env.PUBLIC_PATHS ? String(process.env.PUBLIC_PATHS).split(this.envSeparator()) : []) }); Object.defineProperty(this, "uploadDirectory", { enumerable: true, configurable: true, writable: true, value: () => String(process.env.UPLOAD_DIRECTORY) }); Object.defineProperty(this, "downloadDirectory", { enumerable: true, configurable: true, writable: true, value: () => String(process.env.DOWNLOAD_DIRECTORY) }); Object.defineProperty(this, "pathSeparator", { enumerable: true, configurable: true, writable: true, value: () => String(process.env.PATH_SEPARATOR || path_1.sep) }); Object.defineProperty(this, "serverVersion", { enumerable: true, configurable: true, writable: true, value: async () => (await util_1.promisify(child_process_1.exec)("node -p \"require('./package').version\"")).stdout.trim() }); Object.defineProperty(this, "clientVersion", { enumerable: true, configurable: true, writable: true, value: () => String(process.env.CLIENT_VERSION) }); // tslint:disable-next-line: no-magic-numbers Object.defineProperty(this, "upgradeNoteInterval", { enumerable: true, configurable: true, writable: true, value: () => Number(process.env.UPGRADE_NOTE_INTERVAL || 60000) }); } emailAttachments() { return (process.env.EMAIL_ATTACHMENTS || "") .split(",") .map((attachment) => ({ path: attachment })) .filter((attachment) => fs_1.default.existsSync(attachment.path)); } maskPassKeys() { return process.env.MASK_PASS_KEYS ? String(process.env.MASK_PASS_KEYS).split(this.envSeparator()) : undefined; } } exports.Env = Env; //# sourceMappingURL=env.js.map