UNPKG

905 BJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.requireFileToExist = exports.requireEnvKeys = void 0;
4const fs = require("fs");
5require("dotenv/config"); // ensure .env is read before requiring keys
6/**
7 * @example
8 *
9 * const {a, b} = requreEnvKeys(['a', 'b'])
10 *
11 * Will throw if any of the passed keys is not defined.
12 */
13function requireEnvKeys(...keys) {
14 // eslint-disable-next-line unicorn/no-array-reduce
15 return keys.reduce((r, k) => {
16 const v = process.env[k];
17 if (!v)
18 throw new Error(`${k} env variable is required, but missing`);
19 r[k] = v;
20 return r;
21 }, {});
22}
23exports.requireEnvKeys = requireEnvKeys;
24function requireFileToExist(filePath) {
25 if (!fs.existsSync(filePath)) {
26 throw new Error(`Required file should exist: ${filePath}`);
27 }
28}
29exports.requireFileToExist = requireFileToExist;