@naturalcycles/nodejs-lib
Version:
Standard library for Node.js
30 lines (29 loc) • 905 B
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.requireFileToExist = exports.requireEnvKeys = void 0;
const fs = require("fs");
require("dotenv/config"); // ensure .env is read before requiring keys
/**
* @example
*
* const {a, b} = requreEnvKeys(['a', 'b'])
*
* Will throw if any of the passed keys is not defined.
*/
function requireEnvKeys(...keys) {
// eslint-disable-next-line unicorn/no-array-reduce
return keys.reduce((r, k) => {
const v = process.env[k];
if (!v)
throw new Error(`${k} env variable is required, but missing`);
r[k] = v;
return r;
}, {});
}
exports.requireEnvKeys = requireEnvKeys;
function requireFileToExist(filePath) {
if (!fs.existsSync(filePath)) {
throw new Error(`Required file should exist: ${filePath}`);
}
}
exports.requireFileToExist = requireFileToExist;
;