diff --git a/code/lib/cli/src/automigrate/index.ts b/code/lib/cli/src/automigrate/index.ts index 86798146083b..01447e371cd4 100644 --- a/code/lib/cli/src/automigrate/index.ts +++ b/code/lib/cli/src/automigrate/index.ts @@ -60,7 +60,10 @@ export const automigrate = async ({ renderer: rendererPackage, skipInstall, hideMigrationSummary = false, -}: FixOptions = {}) => { +}: FixOptions = {}): Promise<{ + fixResults: Record; + preCheckFailure: PreCheckFailure; +}> => { if (list) { logAvailableMigrations(); return null; @@ -79,7 +82,7 @@ export const automigrate = async ({ logger.info('🔎 checking possible migrations..'); - const { fixResults, fixSummary } = await runFixes({ + const { fixResults, fixSummary, preCheckFailure } = await runFixes({ fixes, useNpm, pkgMgr, @@ -117,7 +120,7 @@ export const automigrate = async ({ cleanup(); - return fixResults; + return { fixResults, preCheckFailure }; }; export async function runFixes({ @@ -138,7 +141,11 @@ export async function runFixes({ userSpecifiedConfigDir?: string; rendererPackage?: string; skipInstall?: boolean; -}) { +}): Promise<{ + preCheckFailure?: PreCheckFailure; + fixResults: Record; + fixSummary: FixSummary; +}> { if (useNpm) { useNpmWarning(); // eslint-disable-next-line no-param-reassign @@ -147,6 +154,9 @@ export async function runFixes({ const packageManager = JsPackageManagerFactory.getPackageManager({ force: pkgMgr }); + const fixResults = {} as Record; + const fixSummary: FixSummary = { succeeded: [], failed: {}, manual: [], skipped: [] }; + const { configDir: inferredConfigDir, mainConfig: mainConfigPath, @@ -160,6 +170,8 @@ export async function runFixes({ 🤔 Are you running automigrate from your project directory? Please specify your Storybook config directory with the --config-dir flag. `); return { + fixResults, + fixSummary, preCheckFailure: PreCheckFailure.UNDETECTED_SB_VERSION, }; } @@ -175,6 +187,8 @@ export async function runFixes({ )} so the automigrations will be skipped. You might be running this command in a monorepo or a non-standard project structure. If that is the case, please rerun this command by specifying the path to your Storybook config directory via the --config-dir option.` ); return { + fixResults, + fixSummary, preCheckFailure: PreCheckFailure.MAINJS_NOT_FOUND, }; } @@ -186,13 +200,12 @@ export async function runFixes({ logger.info('Please fix the error and try again.'); return { + fixResults, + fixSummary, preCheckFailure: PreCheckFailure.MAINJS_EVALUATION, }; } - const fixResults = {} as Record; - const fixSummary: FixSummary = { succeeded: [], failed: {}, manual: [], skipped: [] }; - for (let i = 0; i < fixes.length; i += 1) { const f = fixes[i] as Fix; let result; diff --git a/code/lib/cli/src/upgrade.ts b/code/lib/cli/src/upgrade.ts index 72fbab8545dd..e5fa1c643412 100644 --- a/code/lib/cli/src/upgrade.ts +++ b/code/lib/cli/src/upgrade.ts @@ -212,12 +212,11 @@ export const doUpgrade = async ({ checkVersionConsistency(); automigrationResults = await automigrate({ dryRun, yes, packageManager: pkgMgr, configDir }); } - if (!options.disableTelemetry) { const afterVersion = await getStorybookCoreVersion(); - const { preCheckFailure, ...results } = automigrationResults || {}; + const { preCheckFailure, fixResults } = automigrationResults || {}; const automigrationTelemetry = { - automigrationResults: preCheckFailure ? null : results, + automigrationResults: preCheckFailure ? null : fixResults, automigrationPreCheckFailure: preCheckFailure || null, }; telemetry('upgrade', {