forked from jesmarsc/scf-voting-widget
-
Notifications
You must be signed in to change notification settings - Fork 0
/
env.js
38 lines (32 loc) · 907 Bytes
/
env.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import fs from 'fs';
import dotenv from 'dotenv';
function getAppEnvironment() {
const prefix = 'REACT';
return Object.keys(process.env)
.filter((key) => new RegExp(`^${prefix}_`, 'i').test(key))
.reduce((env, key) => {
env[key] = process.env[key];
return env;
}, {});
}
function resolveFile(file) {
const path = fs.realpathSync(process.cwd());
return `${path}/${file}`;
}
function getEnvFiles(production) {
const key = production ? 'production' : 'development';
return [resolveFile('.env'), resolveFile(`.env.${key}`)].filter(Boolean);
}
export function getEnvironment(production) {
const dotenvFiles = getEnvFiles(production);
dotenvFiles.forEach((dotenvFile) => {
if (fs.existsSync(dotenvFile)) {
dotenv.config({
path: dotenvFile,
override: true,
});
}
});
return getAppEnvironment();
}
export default getEnvironment;