@hypermod/cli
Version:
To download and run codemods, we provide a CLI tool called @hypermod/cli.
56 lines (55 loc) • 2.1 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getMultiConfigPrompt = exports.getConfigPrompt = void 0;
const inquirer_1 = __importDefault(require("inquirer"));
const getConfigPrompt = (config) => {
const transforms = Object.keys(config.transforms || {});
const presets = Object.keys(config.presets || {});
const choices = [
transforms.length ? new inquirer_1.default.Separator('Transforms') : undefined,
...transforms,
presets.length ? new inquirer_1.default.Separator('Presets') : undefined,
...presets,
].filter(item => item !== undefined);
return {
type: 'list',
name: 'codemod',
message: 'Which codemod would you like to run?',
choices,
};
};
exports.getConfigPrompt = getConfigPrompt;
const getMultiConfigPrompt = (configs) => {
const choices = configs.reduce((accum, { filePath, config }) => {
function mapToConfig(codemods = {}) {
return Object.keys(codemods).map(codemodKey => ({
name: codemodKey,
value: {
filePath,
selection: codemodKey,
},
short: `${codemodKey} from ${filePath}`,
}));
}
const transforms = mapToConfig(config.transforms);
const presets = mapToConfig(config.presets);
return [
...accum,
new inquirer_1.default.Separator(filePath),
transforms.length ? new inquirer_1.default.Separator('Transforms') : undefined,
...transforms,
presets.length ? new inquirer_1.default.Separator('Presets') : undefined,
...presets,
].filter(item => item !== undefined);
}, []);
return {
type: 'list',
name: 'codemod',
message: 'Which codemod would you like to run?',
choices,
};
};
exports.getMultiConfigPrompt = getMultiConfigPrompt;
;