UNPKG

dotenv-validator

Version:
55 lines 2.09 kB
"use strict"; exports.__esModule = true; var tslib_1 = require("tslib"); function validate(_a) { var _b = _a.envParsed, envParsed = _b === void 0 ? {} : _b, envDefault = _a.envDefault, envRules = _a.envRules, logPassedMsg = _a.logPassedMsg; var env = tslib_1.__assign(tslib_1.__assign({}, envDefault), envParsed); // envParsed 는 설정된 값이 언제나 스트링임이 보장된다 // check default Object.keys(envParsed).forEach(function (key) { if (!envDefault.hasOwnProperty(key)) { throw Error(key + "'s defaultValue is not found"); } }); // check required if (envRules) { Object.keys(envRules).forEach(function (key) { if (envRules[key].required !== true) { // 명시적으로 required 를 false 로 세팅한 경우만 필수값 체크를 하지 않는다. // 해당 설정 값의 룰을 등록하지 않은 경우 해당 값은 기본적으로 필수 값이 된다. return; } else { if (!env[key]) { throw Error("'" + key + "' is required in .env"); } } }); } // check validator if (envRules) { Object.entries(env).forEach(function (_a) { var key = _a[0], value = _a[1]; if (!envRules[key]) { // 룰 자체를 등록하지 않은 경우 skip return; } var validator = envRules[key].validator; if (!validator) { // validator 등록을 하지 않은 경우 skip return; } var result = validator(value); if (result === false) { throw Error("'" + key + "' is not valid in .env"); } if (result.valid === false) { throw Error(result.message); } }); } if (logPassedMsg !== false) { console.log('`.env` validation passed'); } } exports["default"] = validate; //# sourceMappingURL=index.js.map