@unito/integration-cli
Version:
Integration CLI
45 lines (44 loc) • 1.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Environment = void 0;
exports.getDefault = getDefault;
exports.read = read;
exports.write = write;
const tslib_1 = require("tslib");
const fs_1 = tslib_1.__importDefault(require("fs"));
const path_1 = tslib_1.__importDefault(require("path"));
var Environment;
(function (Environment) {
Environment["Local"] = "local";
Environment["Staging"] = "staging";
Environment["Production"] = "production";
})(Environment || (exports.Environment = Environment = {}));
function getDefault() {
return {
apiKey: undefined,
apiKeyStaging: undefined,
apiKeyLocal: undefined,
};
}
async function read(baseDir) {
await fs_1.default.promises.mkdir(path_1.default.dirname(getConfigurationPath(baseDir)), { recursive: true });
let configuration;
try {
const file = await fs_1.default.promises.readFile(getConfigurationPath(baseDir), 'utf-8');
configuration = JSON.parse(file);
}
catch {
configuration = getDefault();
}
return { ...getDefault(), ...configuration };
}
async function write(baseDir, configuration) {
await fs_1.default.promises.mkdir(path_1.default.dirname(getConfigurationPath(baseDir)), { recursive: true });
await fs_1.default.promises.writeFile(getConfigurationPath(baseDir), JSON.stringify(configuration, null, 2), {
encoding: 'utf8',
flag: 'w',
});
}
function getConfigurationPath(baseDir) {
return `${baseDir}/configuration.json`;
}