@storybook/cli
Version:
Storybook's CLI - easiest method of adding storybook to your projects
78 lines (63 loc) • 2.13 kB
JavaScript
;
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;