webstorm-init
Version:
CLI tool to write initial WebStorm settings into a new project
56 lines • 2.56 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.App = void 0;
const react_1 = __importDefault(require("react"));
const fs_extra_1 = __importDefault(require("fs-extra"));
const pjson_1 = __importDefault(require("pjson"));
const ink_1 = require("ink");
const Error_1 = require("../Error");
const Processing_1 = require("../Processing");
const Success_1 = require("../Success");
const version_1 = require("../../version");
const copyTemplate_1 = require("../../copyTemplate");
const Confirm_1 = require("../Confirm");
exports.App = ({ force, templatePath }) => {
const [error, setError] = react_1.default.useState("");
const [state, setState] = react_1.default.useState("initializing");
const [template, setTemplate] = react_1.default.useState("");
react_1.default.useEffect(() => {
fs_extra_1.default.pathExists(copyTemplate_1.IDEA).then((exists) => {
setState(exists ? "confirm" : "copying");
});
}, []);
react_1.default.useEffect(() => {
if (state === "copying") {
setState("processing");
copyTemplate_1.copyTemplate(templatePath)
.then((template) => {
setTemplate(template);
setState("success");
})
.catch((err) => {
setState("error");
setError(err.toString());
});
}
}, [state]);
const confirmProps = {
confirm: force,
idea: copyTemplate_1.IDEA,
onConfirm: () => setState("copying"),
scriptName: pjson_1.default.name,
};
return (react_1.default.createElement(ink_1.Box, { flexDirection: "column", height: 5 },
react_1.default.createElement(ink_1.Text, { color: "blue" },
"webstorm-init ",
version_1.version),
react_1.default.createElement(ink_1.Spacer, null),
(state === "processing" || state === "initializing") && react_1.default.createElement(Processing_1.Processing, null),
state === "success" && react_1.default.createElement(Success_1.Success, { template: template }),
state === "confirm" && react_1.default.createElement(Confirm_1.Confirm, Object.assign({}, confirmProps)),
state === "error" && react_1.default.createElement(Error_1.Error, null, error)));
};
//# sourceMappingURL=index.js.map