@sap/cli-core
Version:
Command-Line Interface (CLI) Core Module
43 lines (42 loc) • 1.71 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.create = void 0;
const prompts_1 = __importDefault(require("prompts"));
const config_1 = require("../../../../config");
const constants_1 = require("../../../../constants");
const utils_1 = require("../../options/utils");
const openUtils_1 = require("../../../../utils/openUtils");
const create = () => async (command) => {
await (0, utils_1.checkOptions)(constants_1.OPTION_PASSCODE, command);
return async () => {
const config = (0, config_1.get)();
let passcode = config.options[constants_1.OPTION_PASSCODE.longName];
if (!passcode) {
if (!config.passcodeUrl) {
throw new Error("passcode url is not available");
}
const res = await prompts_1.default.prompt({
type: "confirm",
initial: true,
message: `Do you want to retrieve a temporary authentication code from ${config.passcodeUrl}?`,
name: "value",
});
if (res.value) {
await (0, openUtils_1.openUrlInBrowser)(config.passcodeUrl);
passcode = (await prompts_1.default.prompt({
type: "password",
message: "Enter your temporary authentication code:",
name: "value",
})).value;
}
}
if (!passcode) {
throw new Error("no passcode");
}
(0, config_1.set)({ passcode });
};
};
exports.create = create;