@aminya/dotenv-vault
Version:
A secrets manager for .env files – from the same people that pioneered dotenv.
54 lines (53 loc) • 2.29 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.OpenService = void 0;
const tslib_1 = require("tslib");
const chalk_1 = tslib_1.__importDefault(require("chalk"));
const vars_1 = require("../vars");
const fs_1 = require("fs");
const core_1 = require("@oclif/core");
const log_service_1 = require("../services/log-service");
const abort_service_1 = require("../services/abort-service");
class OpenService {
constructor(attrs = {}) {
this.cmd = attrs.cmd;
this.environment = attrs.environment;
this.yes = attrs.yes;
this.log = new log_service_1.LogService({ cmd: attrs.cmd });
this.abort = new abort_service_1.AbortService({ cmd: attrs.cmd });
}
async run() {
if (vars_1.vars.missingEnvVault) {
this.abort.missingEnvVault();
}
if (vars_1.vars.emptyEnvVault) {
this.abort.emptyEnvVault();
}
if (!this.yes) {
this.log.local(`Project URL: ${this.openUrl}`);
const answer = await core_1.CliUx.ux.prompt(`${chalk_1.default.dim(this.log.pretextLocal)}Press ${chalk_1.default.green('y')} (or any key) to open up the browser to view your project or ${chalk_1.default.yellow('q')} to exit`);
if (answer === 'q' || answer === 'Q') {
this.abort.quit();
}
}
core_1.CliUx.ux.action.start(`${chalk_1.default.dim(this.log.pretextLocal)}Opening project page`);
await core_1.CliUx.ux.wait(1000);
core_1.CliUx.ux.action.stop();
this.log.local(`Opening browser to ${this.openUrl}`);
core_1.CliUx.ux.open(this.openUrl).catch(_ => { });
this.log.plain('');
this.log.plain(`Next run ${chalk_1.default.bold(`${vars_1.vars.cli} ${this.pushOrPullCommand}`)} to ${this.pushOrPullCommand} your .env file`);
}
get openUrl() {
return `${vars_1.vars.apiUrl}/open?DOTENV_VAULT=${vars_1.vars.vaultValue}&environment=${this.environment}`;
}
get pushOrPullCommand() {
// tell dev to push if he already has a local .env file
if ((0, fs_1.existsSync)('.env')) {
return 'push';
}
// otherwise tell him to pull
return 'pull';
}
}
exports.OpenService = OpenService;