From ab44e4c5844609e23d54e830a997a1a37a7e0a11 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Sat, 11 Jun 2022 21:31:51 +0800 Subject: [PATCH] Merge pull request #18442 from storybookjs/fix/telemetry-strip-out-preset Telemetry: Strip out preset from addon name --- lib/telemetry/src/storybook-metadata.test.ts | 13 ++++++-- lib/telemetry/src/storybook-metadata.ts | 34 ++++++++++---------- 2 files changed, 28 insertions(+), 19 deletions(-) diff --git a/lib/telemetry/src/storybook-metadata.test.ts b/lib/telemetry/src/storybook-metadata.test.ts index 0ccaeae27d9..d3366777160 100644 --- a/lib/telemetry/src/storybook-metadata.test.ts +++ b/lib/telemetry/src/storybook-metadata.test.ts @@ -82,12 +82,17 @@ describe('await computeStorybookMetadata', () => { devDependencies: { '@storybook/react': 'x.y.z', '@storybook/addon-essentials': 'x.x.x', - 'storybook-addon-deprecated': 'x.x.x', + '@storybook/addon-knobs': 'x.x.y', + 'storybook-addon-deprecated': 'x.x.z', }, }, mainConfig: { ...mainJsMock, - addons: ['@storybook/addon-essentials', 'storybook-addon-deprecated/register'], + addons: [ + '@storybook/addon-essentials', + 'storybook-addon-deprecated/register', + '@storybook/addon-knobs/preset', + ], }, }); @@ -97,6 +102,10 @@ describe('await computeStorybookMetadata', () => { "options": undefined, "version": "x.x.x", }, + "@storybook/addon-knobs": Object { + "options": undefined, + "version": "x.x.x", + }, "storybook-addon-deprecated": Object { "options": undefined, "version": "x.x.x", diff --git a/lib/telemetry/src/storybook-metadata.ts b/lib/telemetry/src/storybook-metadata.ts index 0a82e61f436..562cb132e40 100644 --- a/lib/telemetry/src/storybook-metadata.ts +++ b/lib/telemetry/src/storybook-metadata.ts @@ -12,22 +12,6 @@ import type { StorybookMetadata, Dependency, StorybookAddon } from './types'; import { getActualPackageVersion, getActualPackageVersions } from './package-versions'; import { getMonorepoType } from './get-monorepo-type'; -let cachedMetadata: StorybookMetadata; -export const getStorybookMetadata = async (_configDir: string) => { - if (cachedMetadata) { - return cachedMetadata; - } - - const packageJson = readPkgUp.sync({ cwd: process.cwd() }).packageJson as PackageJson; - const configDir = - (_configDir || - (getStorybookConfiguration(packageJson.scripts.storybook, '-c', '--config-dir') as string)) ?? - '.storybook'; - const mainConfig = loadMainConfig({ configDir }); - cachedMetadata = await computeStorybookMetadata({ mainConfig, packageJson }); - return cachedMetadata; -}; - export const metaFrameworks = { next: 'Next', 'react-scripts': 'CRA', @@ -147,7 +131,7 @@ export const computeStorybookMetadata = async ({ let result; let options; if (typeof addon === 'string') { - result = addon.replace('/register', ''); + result = addon.replace('/register', '').replace('/preset', ''); } else { options = addon.options; result = addon.name; @@ -204,3 +188,19 @@ export const computeStorybookMetadata = async ({ hasStorybookEslint, }; }; + +let cachedMetadata: StorybookMetadata; +export const getStorybookMetadata = async (_configDir: string) => { + if (cachedMetadata) { + return cachedMetadata; + } + + const packageJson = readPkgUp.sync({ cwd: process.cwd() }).packageJson as PackageJson; + const configDir = + (_configDir || + (getStorybookConfiguration(packageJson.scripts.storybook, '-c', '--config-dir') as string)) ?? + '.storybook'; + const mainConfig = loadMainConfig({ configDir }); + cachedMetadata = await computeStorybookMetadata({ mainConfig, packageJson }); + return cachedMetadata; +};