Skip to content

Commit

Permalink
use both @storybook/cli and storybook to detect version
Browse files Browse the repository at this point in the history
  • Loading branch information
JReinhold committed Jan 26, 2024
1 parent 154d979 commit 424630b
Showing 1 changed file with 16 additions and 8 deletions.
24 changes: 16 additions & 8 deletions code/lib/cli/src/upgrade.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import {
import chalk from 'chalk';
import dedent from 'ts-dedent';
import boxen from 'boxen';
import type { PackageManagerName } from '@storybook/core-common';
import type { JsPackageManager, PackageManagerName } from '@storybook/core-common';
import {
JsPackageManagerFactory,
isCorePackage,
Expand All @@ -37,6 +37,18 @@ export const getStorybookVersion = (line: string) => {
};
};

const getInstalledStorybookVersion = async (packageManager: JsPackageManager) => {
const installations = await packageManager.findInstallations(['storybook', '@storybook/cli']);
if (!installations) {
return;
}
const cliVersion = installations.dependencies['@storybook/cli']?.[0].version;
if (cliVersion) {
return cliVersion;
}
return installations.dependencies['storybook']?.[0].version;
};

const deprecatedPackages = [
{
minVersion: '6.0.0-alpha.0',
Expand Down Expand Up @@ -113,10 +125,8 @@ export const doUpgrade = async ({
}: UpgradeOptions) => {
const packageManager = JsPackageManagerFactory.getPackageManager({ force: pkgMgr });

// If we can't determine the existing version (Yarn PnP), fallback to v0.0.0 to not block the upgrade
const beforeVersion =
(await packageManager.findInstallations(['@storybook/cli']))?.dependencies['storybook']?.[0]
.version ?? '0.0.0';
// If we can't determine the existing version fallback to v0.0.0 to not block the upgrade
const beforeVersion = (await getInstalledStorybookVersion(packageManager)) ?? '0.0.0';

const currentVersion = versions['@storybook/cli'];
const isCanary = currentVersion.startsWith('0.0.0');
Expand Down Expand Up @@ -209,9 +219,7 @@ export const doUpgrade = async ({
automigrationResults = await automigrate({ dryRun, yes, packageManager: pkgMgr, configDir });
}
if (!options.disableTelemetry) {
const afterVersion = (await packageManager.findInstallations(['@storybook/cli']))?.dependencies[
'@storybook/cli'
][0].version;
const afterVersion = await getInstalledStorybookVersion(packageManager);
const { preCheckFailure, fixResults } = automigrationResults || {};
const automigrationTelemetry = {
automigrationResults: preCheckFailure ? null : fixResults,
Expand Down

0 comments on commit 424630b

Please sign in to comment.