UNPKG

@hypermod/cli

Version:

To download and run codemods, we provide a CLI tool called @hypermod/cli.

56 lines (55 loc) 2.1 kB
"use strict"; 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;