webstorm-init
Version:
CLI tool to write initial WebStorm settings into a new project
48 lines • 2.07 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Confirm = void 0;
const react_1 = __importDefault(require("react"));
const ink_1 = require("ink");
const ink_spinner_1 = __importDefault(require("ink-spinner"));
const Error_1 = require("./Error");
exports.Confirm = ({ confirm, idea, onConfirm, scriptName, }) => {
const [showHint, setShowHint] = react_1.default.useState(!confirm);
const { exit } = ink_1.useApp();
if (confirm) {
ink_1.useInput((input) => {
if (input.toLowerCase() === "y") {
onConfirm();
}
else {
setShowHint(true); // to remove the prompt
exit();
}
});
}
const Confirm = () => (react_1.default.createElement(ink_1.Text, null,
"Do you really want to overwrite the existing folder? [y/n]",
" ",
react_1.default.createElement(ink_spinner_1.default, { type: "noise" })));
const Hint = () => (react_1.default.createElement(ink_1.Text, null,
"Use ",
react_1.default.createElement(ink_1.Text, { inverse: true },
" ",
scriptName,
" --force "),
" to overwrite existing settings."));
return (react_1.default.createElement(react_1.default.Fragment, null,
react_1.default.createElement(Error_1.Error, null,
react_1.default.createElement(ink_1.Text, { italic: true, inverse: true },
" ",
idea,
" "),
" ",
"folder already exists in project ",
process.cwd()),
react_1.default.createElement(ink_1.Spacer, null),
react_1.default.createElement(ink_1.Box, null, showHint ? react_1.default.createElement(Hint, null) : react_1.default.createElement(Confirm, null))));
};
//# sourceMappingURL=Confirm.js.map