UNPKG

handy-service

Version:
46 lines (39 loc) 1.26 kB
const fs = require("fs"); const path = require("path"); const paths = require("./paths"); // Make sure that including paths.js after env.js will read .env variables. delete require.cache[require.resolve("./paths")]; const { NODE_ENV } = process.env; if (!NODE_ENV) { throw new Error("The NODE_ENV environment variable is required but was not specified."); } const appDirectory = fs.realpathSync(process.cwd()); process.env.NODE_PATH = (process.env.NODE_PATH || "") .split(path.delimiter) .filter(folder => folder && !path.isAbsolute(folder)) .map(folder => path.resolve(appDirectory, folder)) .join(path.delimiter); const REACT_APP = /^REACT_APP_/i; function getClientEnvironment(publicUrl) { const raw = Object.keys(process.env) .filter(key => REACT_APP.test(key)) .reduce( (env, key) => { env[key] = process.env[key]; return env; }, { NODE_ENV: process.env.NODE_ENV || "development", PUBLIC_URL: publicUrl, APP_NAME: paths.appName } ); const stringified = { "process.env": Object.keys(raw).reduce((env, key) => { env[key] = JSON.stringify(raw[key]); return env; }, {}) }; return { raw, stringified }; } module.exports = getClientEnvironment;