UNPKG

@tarantool.io/dotenv

Version:

## Usage

41 lines (40 loc) 1.43 kB
"use strict"; 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;