diff --git a/code/addons/a11y/src/postinstall.ts b/code/addons/a11y/src/postinstall.ts index cf57bddb9853..25f2de9d6e8c 100644 --- a/code/addons/a11y/src/postinstall.ts +++ b/code/addons/a11y/src/postinstall.ts @@ -1,32 +1,29 @@ -// eslint-disable-next-line depend/ban-dependencies -import { execa } from 'execa'; +import { JsPackageManagerFactory } from 'storybook/internal/common'; import type { PostinstallOptions } from '../../../lib/cli-storybook/src/add'; -const $ = execa({ - preferLocal: true, - stdio: 'inherit', - // we stream the stderr to the console - reject: false, -}); - export default async function postinstall(options: PostinstallOptions) { - const command = ['storybook', 'automigrate', 'addon-a11y-addon-test']; + const args = ['automigrate', 'addon-a11y-addon-test']; - command.push('--loglevel', 'silent'); - command.push('--skip-doctor'); + args.push('--loglevel', 'silent'); + args.push('--skip-doctor'); if (options.yes) { - command.push('--yes'); + args.push('--yes'); } if (options.packageManager) { - command.push('--package-manager', options.packageManager); + args.push('--package-manager', options.packageManager); } if (options.configDir) { - command.push('--config-dir', `"${options.configDir}"`); + args.push('--config-dir', options.configDir); } - await $`${command.join(' ')}`; + const jsPackageManager = JsPackageManagerFactory.getPackageManager({ + force: options.packageManager, + configDir: options.configDir, + }); + + await jsPackageManager.runPackageCommand('storybook', args); } diff --git a/code/lib/cli-storybook/src/automigrate/index.ts b/code/lib/cli-storybook/src/automigrate/index.ts index 76216837d2a1..d4198b58b7bd 100644 --- a/code/lib/cli-storybook/src/automigrate/index.ts +++ b/code/lib/cli-storybook/src/automigrate/index.ts @@ -324,17 +324,19 @@ export async function runFixes({ break; } } else if (promptType === 'auto') { - const shouldRun = await prompt.confirm( - { - message: `Do you want to run the '${picocolors.cyan(f.id)}' migration on your project?`, - initialValue: f.defaultSelected ?? true, - }, - { - onCancel: () => { - throw new Error(); - }, - } - ); + const shouldRun = yes + ? true + : await prompt.confirm( + { + message: `Do you want to run the '${picocolors.cyan(f.id)}' migration on your project?`, + initialValue: f.defaultSelected ?? true, + }, + { + onCancel: () => { + throw new Error(); + }, + } + ); runAnswer = { fix: shouldRun }; } else if (promptType === 'notification') { const shouldContinue = await prompt.confirm(