@tarantool.io/dotenv
Version:
## Usage
41 lines (40 loc) • 1.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.config = void 0;
const fs_1 = require("fs");
const path_1 = require("path");
const dotenv_1 = require("dotenv");
const config = ({ root = process.cwd(), filterRegExp } = {}) => {
process.env['NODE_ENV'] = process.env['NODE_ENV'] || 'production';
process.env['BABEL_ENV'] = process.env['BABEL_ENV'] || process.env['NODE_ENV'];
const { NODE_ENV } = process.env;
const env = '.env';
const files = [
`${env}.${NODE_ENV}.local`,
`${env}.${NODE_ENV}`,
// Don't include `.env.local` for `test` environment
// since normally you expect tests to produce the same
// results for everyone
NODE_ENV !== 'test' && `${env}.local`,
env,
].filter(Boolean);
files.forEach((file) => {
const path = (0, path_1.join)(root, file);
if ((0, fs_1.existsSync)(path)) {
(0, dotenv_1.config)({ path });
}
});
return Object.keys(process.env)
.filter((key) => (filterRegExp ? filterRegExp.test(key) : true))
.reduce((acc, key) => {
const value = process.env[key];
if (value !== undefined) {
acc[key] = value;
}
return acc;
}, {
NODE_ENV: process.env['NODE_ENV'] || 'development',
PUBLIC_URL: process.env['PUBLIC_URL'] || '',
});
};
exports.config = config;