@app.json/cli
Version:
Capture what your app needs to be deployed and run
52 lines (51 loc) • 1.81 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = require("@app.json/core");
var dotenv_1 = require("dotenv");
var fs_1 = require("fs");
function exportDotenv(appJsonPath, environmentName) {
// read existing dotenv config, if any
dotenv_1.config();
var env = getEnv(appJsonPath, environmentName);
var dotenv = createDotEnv(env);
fs_1.writeFileSync('.env', dotenv, { encoding: 'utf-8' });
}
exports.exportDotenv = exportDotenv;
function createDotEnv(env) {
return Object.keys(env)
.map(function (key) {
var definition = env[key];
var existingValue = process.env[key];
var newValue = typeof definition === 'string'
? definition
: definition.value || '';
var value = existingValue || newValue;
return key + "=" + value;
})
.join('\n');
}
function getEnv(appJsonPath, environmentName) {
var appJson = core_1.loadAppJson(appJsonPath);
var baseEnv = appJson.env || {};
var environmentEnv = getEnvironmentEnv(environmentName, appJson);
var env = __assign({}, baseEnv, environmentEnv);
return env;
}
function getEnvironmentEnv(environmentName, appJson) {
var environment = environmentName &&
appJson.environments &&
appJson.environments[environmentName];
var environmentEnv = (environment && environment.env) || {};
return environmentEnv;
}