UNPKG

@storybook/cli

Version:

Storybook's CLI - easiest method of adding storybook to your projects

78 lines (63 loc) 2.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.automigrate = void 0; require("core-js/modules/es.promise.js"); var _prompts = _interopRequireDefault(require("prompts")); var _chalk = _interopRequireDefault(require("chalk")); var _boxen = _interopRequireDefault(require("boxen")); var _jsPackageManager = require("../js-package-manager"); var _fixes = require("./fixes"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /* eslint-disable no-await-in-loop */ const logger = console; const automigrate = async ({ fixId, dryRun, yes } = {}) => { const packageManager = _jsPackageManager.JsPackageManagerFactory.getPackageManager(); const filtered = fixId ? _fixes.fixes.filter(f => f.id === fixId) : _fixes.fixes; for (let i = 0; i < filtered.length; i += 1) { const f = _fixes.fixes[i]; logger.info(`🔎 checking '${_chalk.default.cyan(f.id)}'`); const result = await f.check({ packageManager }); if (result) { const message = f.prompt(result); logger.info((0, _boxen.default)(message, { borderStyle: 'round', padding: 1, borderColor: '#F1618C' })); const runAnswer = yes || dryRun ? { fix: false } : await (0, _prompts.default)([{ type: 'confirm', name: 'fix', message: `Do you want to run the '${_chalk.default.cyan(f.id)}' fix on your project?` }]); if (runAnswer.fix) { try { await f.run({ result, packageManager, dryRun }); logger.info(`✅ fixed ${_chalk.default.cyan(f.id)}`); } catch (error) { logger.info(`❌ error in ${_chalk.default.cyan(f.id)}:`); logger.info(error.message); logger.info(); } } else { logger.info(`Skipping the ${_chalk.default.cyan(f.id)} fix.`); logger.info(); logger.info(`If you change your mind, run '${_chalk.default.cyan('npx sb@next automigrate')}'`); } } } }; exports.automigrate = automigrate;