Skip to content

Commit 9058caf

Browse files
authored
Merge pull request #31192 from storybookjs/yann/fix-flat-config-setup
ESLint: Fix flat config setup
2 parents 41beaff + 64cbdf9 commit 9058caf

File tree

3 files changed

+12
-12
lines changed

3 files changed

+12
-12
lines changed

Diff for: code/core/src/cli/eslintPlugin.test.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ describe('configureEslintPlugin', () => {
229229
import storybook from "eslint-plugin-storybook";
230230
231231
import somePlugin from 'some-plugin';
232-
export default [somePlugin, storybook.configs["flat/recommended"]];"
232+
export default [somePlugin, ...storybook.configs["flat/recommended"]];"
233233
`);
234234
});
235235

@@ -290,7 +290,7 @@ describe('configureEslintPlugin', () => {
290290
import storybook from "eslint-plugin-storybook";
291291
292292
import eslint from "@eslint/js";
293-
const options = [eslint.configs.recommended, storybook.configs["flat/recommended"]]
293+
const options = [eslint.configs.recommended, ...storybook.configs["flat/recommended"]]
294294
295295
export default options;"
296296
`);
@@ -322,7 +322,7 @@ describe('configureEslintPlugin', () => {
322322
import storybook from "eslint-plugin-storybook";
323323
324324
import eslint from "@eslint/js";
325-
const options = [eslint.configs.recommended, storybook.configs["flat/recommended"]] as Config
325+
const options = [eslint.configs.recommended, ...storybook.configs["flat/recommended"]] as Config
326326
327327
export default options;"
328328
`);
@@ -352,7 +352,7 @@ describe('configureEslintPlugin', () => {
352352
import storybook from "eslint-plugin-storybook";
353353
354354
import eslint from "@eslint/js";
355-
export default [eslint.configs.recommended, storybook.configs["flat/recommended"]] satisfies Config;"
355+
export default [eslint.configs.recommended, ...storybook.configs["flat/recommended"]] satisfies Config;"
356356
`);
357357
});
358358

Diff for: code/core/src/cli/eslintPlugin.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ export const configureFlatConfig = async (code: string) => {
9494

9595
// Case 1: Direct array
9696
if (t.isArrayExpression(eslintConfigExpression)) {
97-
eslintConfigExpression.elements.push(storybookConfig);
97+
eslintConfigExpression.elements.push(t.spreadElement(storybookConfig));
9898
}
9999

100100
// Case 2: tseslint.config(...)
@@ -115,7 +115,7 @@ export const configureFlatConfig = async (code: string) => {
115115
const init = unwrapTSExpression(binding.path.node.init);
116116

117117
if (t.isArrayExpression(init)) {
118-
init.elements.push(storybookConfig);
118+
init.elements.push(t.spreadElement(storybookConfig));
119119
}
120120
}
121121
}

Diff for: code/lib/create-storybook/src/generators/baseGenerator.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -351,18 +351,13 @@ export async function baseGenerator(
351351
text: `Getting the correct version of ${packagesToInstall.length} packages`,
352352
}).start();
353353

354-
const versionedPackages = await packageManager.getVersionedPackages(
355-
packagesToInstall as string[]
356-
);
357-
versionedPackagesSpinner.succeed();
358-
359354
try {
360355
if (process.env.CI !== 'true') {
361356
const { hasEslint, isStorybookPluginInstalled, isFlatConfig, eslintConfigFile } =
362357
await extractEslintInfo(packageManager);
363358

364359
if (hasEslint && !isStorybookPluginInstalled) {
365-
versionedPackages.push('eslint-plugin-storybook');
360+
packagesToInstall.push('eslint-plugin-storybook');
366361
await configureEslintPlugin({
367362
eslintConfigFile,
368363
packageManager,
@@ -374,6 +369,11 @@ export async function baseGenerator(
374369
// any failure regarding configuring the eslint plugin should not fail the whole generator
375370
}
376371

372+
const versionedPackages = await packageManager.getVersionedPackages(
373+
packagesToInstall as string[]
374+
);
375+
versionedPackagesSpinner.succeed();
376+
377377
if (versionedPackages.length > 0) {
378378
const addDependenciesSpinner = ora({
379379
indent: 2,

0 commit comments

Comments
 (0)