A clever
.env.
Find it on npm!
It takes an .env file that looks like this:
portDatabase=55555
serviceApi="jumble-of-letters-and-numbers"
dev-api="localhost"
prod-api="api.domain.tld"
dev-app="localhost"
prod-app="app.domain.tld"
dev-marketing="localhost"
prod-marketing="domain.tld"
And transforms it into an object that looks like this:
{
portDatabase: "55555",
serviceApi: "jumble-of-letters-and-numbers",
dev: {
api: "localhost",
app: "localhost",
marketing: "localhost"
},
prod: {
api: "api.domain.tld",
app: "app.domain.tld",
marketing: "domain.tld"
}
}
This makes it easier to swap between development and production variables in your code. Example:
return new Promise((resolve, reject) => {
request({
method: "POST",
url: process.env.NODE_ENV === "development" ? env.dev.api : env.prod.api, // BOOM
body: {},
json: true
}).then(body => {
if (!body) return reject(body);
resolve(body);
}).catch(error => {
resolve(error);
});
});