UNPKG

project-setup-validation-yaml

Version:

Validate environment variables, files and directories. Supports YAML configuration

72 lines (70 loc) 1.98 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.validateProjectEnvironment = exports.customEnvValidators = exports.envalidValidationTypes = void 0; const envalid_1 = require("envalid"); const js_base64_1 = require("js-base64"); /** * Validates base64, converts to json object and returns */ const base64JsonValidator = (0, envalid_1.makeValidator)((input) => { try { const str = (0, js_base64_1.decode)(input); const json = JSON.parse(str); return json; } catch (err) { throw new Error(`Invalid base64-encoded JSON: ${err.message}`); } }); /** * Validates base64, converts to string and returns */ const base64StringValidator = (0, envalid_1.makeValidator)((input) => { try { const str = (0, js_base64_1.decode)(input); return str; } catch (err) { throw new Error(`Invalid base64-encoded string: ${err.message}`); } }); /** * Validation types, default + custom */ exports.envalidValidationTypes = { str: envalid_1.str, email: envalid_1.email, json: envalid_1.json, bool: envalid_1.bool, host: envalid_1.host, num: envalid_1.num, port: envalid_1.port, url: envalid_1.url, base64String: base64StringValidator, base64Json: base64JsonValidator }; /** * Custom validators */ exports.customEnvValidators = { base64JsonValidator, base64StringValidator }; /** * Validates and returns clean env * * Example: * ``` import { str, json } from 'envalid' import {validateProjectEnvironment, customValidators} from './src/validators' validateProjectEnvironment(process.env, { FIREBASE_CREDENTIALS_BASE64: customValidators.base64JsonValidator(), TEST_STRING_ENV: str(), TEST_JSON_ENV: json() }) ``` Read more: https://www.npmjs.com/package/envalid */ exports.validateProjectEnvironment = envalid_1.cleanEnv; //# sourceMappingURL=projectEnvValidator.js.map