UNPKG

zents

Version:

ZenTS is a Node.js & TypeScript MVC-Framework for building rich web applications, released as free and open-source software under the MIT License. It is designed for building web applications with modern tools and design patterns.

65 lines 2.49 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.loadConfig = exports.isConfigLoaded = exports.config = void 0; const cosmiconfig_1 = require("cosmiconfig"); const default_1 = require("./default"); const logger_1 = require("../log/logger"); const lodash_merge_1 = __importDefault(require("lodash.merge")); const validateConfig_1 = require("./validateConfig"); const moduleName = 'zen'; async function loadDefaultFile(searchFrom) { const explorer = cosmiconfig_1.cosmiconfig(moduleName, { searchPlaces: [ 'package.json', '.zenrc', '.zenrc.js', 'zen.json', 'zen.yaml', 'zen.yml', 'zen.config.json', 'zen.config.js', 'zen.config.yaml', 'zen.config.yml', ], }); return await explorer.search(searchFrom); } async function loadEnviormentFile(searchFrom) { var _a; const env = (_a = process.env.NODE_ENV) !== null && _a !== void 0 ? _a : 'development'; const explorer = cosmiconfig_1.cosmiconfig(moduleName, { searchPlaces: [ `zen.${env}.json`, `zen.${env}.yaml`, `zen.${env}.yml`, `zen.${env}.config.json`, `zen.${env}.config.js`, `zen.${env}.config.yaml`, `zen.${env}.config.yml`, ], }); return await explorer.search(searchFrom); } exports.config = default_1.defaultConfig; exports.isConfigLoaded = false; async function loadConfig(manualConfig, searchFrom, forceLoading = false) { if (exports.isConfigLoaded && !forceLoading) { return; } exports.isConfigLoaded = true; const defaultFileConfig = await loadDefaultFile(searchFrom); const envFileConfig = await loadEnviormentFile(searchFrom); exports.config = lodash_merge_1.default({}, default_1.defaultConfig, defaultFileConfig ? defaultFileConfig.config : {}, envFileConfig ? envFileConfig.config : {}, manualConfig ? manualConfig : {}); const { isValid, errors } = validateConfig_1.validateConfig(exports.config); if (!isValid) { for (const error of errors) { logger_1.log.error(error); throw new Error('Failed to boot! Config is invalid.'); } } } exports.loadConfig = loadConfig; //# sourceMappingURL=config.js.map