@sap/cli-core
Version:
Command-Line Interface (CLI) Core Module
36 lines (35 loc) • 1.36 kB
JavaScript
import prompts from "prompts";
import { get, set } from "../../../../config/index.js";
import { OPTION_PASSCODE } from "../../../../constants.js";
import { checkOptions } from "../../options/utils.js";
import { openUrlInBrowser } from "../../../../utils/openUtils.js";
export const create = () => async (command) => {
await checkOptions(OPTION_PASSCODE, command);
return async () => {
const config = get();
let passcode = config.options[OPTION_PASSCODE.longName];
if (!passcode) {
if (!config.passcodeUrl) {
throw new Error("passcode url is not available");
}
const res = await prompts.prompt({
type: "confirm",
initial: true,
message: `Do you want to retrieve a temporary authentication code from ${config.passcodeUrl}?`,
name: "value",
});
if (res.value) {
await openUrlInBrowser(config.passcodeUrl);
passcode = (await prompts.prompt({
type: "password",
message: "Enter your temporary authentication code:",
name: "value",
})).value;
}
}
if (!passcode) {
throw new Error("no passcode");
}
set({ passcode });
};
};