Skip to content

Commit 9027cfc

Browse files
authored
Merge pull request #32060 from storybookjs/version-non-patch-from-9.1.0-alpha.8
Release: Prerelease 9.1.0-alpha.9
2 parents e8e467e + ea1a760 commit 9027cfc

File tree

80 files changed

+2631
-137
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

80 files changed

+2631
-137
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
## 9.0.17
2+
3+
- Addon Vitest: Fix support for plain `stories.tsx` files - [#32041](https://github.com/storybookjs/storybook/pull/32041), thanks @ghengeveld!
4+
- Onboarding: Intent survey - [#31944](https://github.com/storybookjs/storybook/pull/31944), thanks @ghengeveld!
5+
- UI: Fix text color for failing stories in sidebar - [#32042](https://github.com/storybookjs/storybook/pull/32042), thanks @ghengeveld!
6+
17
## 9.0.16
28

39
- Automigration: Fail with non-zero exit code on migration failure - [#31923](https://github.com/storybookjs/storybook/pull/31923), thanks @mrginglymus!

CHANGELOG.prerelease.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
## 9.1.0-alpha.9
2+
3+
- CLI: Fix Storybook doctor compatibility checks - [#32077](https://github.com/storybookjs/storybook/pull/32077), thanks @yannbf!
4+
- Svelte: Fix union types generating invalid labels in argTypes - [#31980](https://github.com/storybookjs/storybook/pull/31980), thanks @grantralls!
5+
- Telemetry: Add nodeLinker to telemetry - [#32072](https://github.com/storybookjs/storybook/pull/32072), thanks @valentinpalkovic!
6+
- Test: Add mock capabilities - [#31987](https://github.com/storybookjs/storybook/pull/31987), thanks @valentinpalkovic!
7+
18
## 9.1.0-alpha.8
29

310
- Addon Vitest: Fix support for plain `stories.tsx` files - [#32041](https://github.com/storybookjs/storybook/pull/32041), thanks @ghengeveld!

code/.storybook/preview.tsx

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
1+
/* eslint-disable depend/ban-dependencies */
12
import React, { type FC, Fragment, useEffect } from 'react';
23

34
import type { Channel } from 'storybook/internal/channels';
45

56
import { global } from '@storybook/global';
67

78
import type { Decorator, Loader, ReactRenderer } from '@storybook/react-vite';
8-
// TODO add empty preview
9-
// import * as designs from '@storybook/addon-designs/preview';
109
import { definePreview } from '@storybook/react-vite';
1110

1211
import addonA11y from '@storybook/addon-a11y';
12+
// TODO add empty preview
13+
// import * as designs from '@storybook/addon-designs/preview';
1314
import addonDocs from '@storybook/addon-docs';
1415
import { DocsContext } from '@storybook/addon-docs/blocks';
1516
import addonThemes from '@storybook/addon-themes';
@@ -18,6 +19,7 @@ import addonTest from '@storybook/addon-vitest';
1819
import addonPseudoStates from 'storybook-addon-pseudo-states';
1920
import { DocsContext as DocsContextProps, useArgs } from 'storybook/preview-api';
2021
import type { PreviewWeb } from 'storybook/preview-api';
22+
import { sb } from 'storybook/test';
2123
import {
2224
Global,
2325
ThemeProvider,
@@ -33,6 +35,13 @@ import * as templatePreview from '../core/template/stories/preview';
3335
import '../renderers/react/template/components/index';
3436
import { isChromatic } from './isChromatic';
3537

38+
sb.mock(import('../core/template/stories/test/ModuleMocking.utils'));
39+
sb.mock(import('../core/template/stories/test/ModuleSpyMocking.utils'), { spy: true });
40+
sb.mock(import('../core/template/stories/test/ModuleAutoMocking.utils'));
41+
sb.mock(import('lodash-es'));
42+
sb.mock(import('lodash-es/add'));
43+
sb.mock(import('lodash-es/sum'));
44+
3645
const { document } = global;
3746
globalThis.CONFIG_TYPE = 'DEVELOPMENT';
3847

code/.storybook/utils/todo.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export function getTodos() {
2+
return ['some todo'];
3+
}

code/__mocks__/lodash-es.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export default {
2+
VERSION: '1.0.0-mocked!',
3+
};

code/__mocks__/lodash-es/add.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
function add(a, b) {
2+
return 'mocked 3';
3+
}
4+
5+
export default add;

code/addons/vitest/src/vitest-plugin/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ import sirv from 'sirv';
2929
import { dedent } from 'ts-dedent';
3030

3131
// ! Relative import to prebundle it without needing to depend on the Vite builder
32-
import { INCLUDE_CANDIDATES } from '../../../../builders/builder-vite/src/constants';
3332
import { withoutVitePlugins } from '../../../../builders/builder-vite/src/utils/without-vite-plugins';
3433
import type { InternalOptions, UserOptions } from './types';
3534

code/builders/builder-vite/src/codegen-modern-iframe-script.ts

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -117,23 +117,24 @@ export async function generateModernIframeScriptCodeFromPreviews(options: {
117117
*/
118118
const code = dedent`
119119
import { setup } from 'storybook/internal/preview/runtime';
120-
120+
121121
import '${SB_VIRTUAL_FILES.VIRTUAL_ADDON_SETUP_FILE}';
122-
122+
123123
setup();
124-
124+
125125
import { composeConfigs, PreviewWeb } from 'storybook/preview-api';
126126
import { isPreview } from 'storybook/internal/csf';
127127
import { importFn } from '${SB_VIRTUAL_FILES.VIRTUAL_STORIES_FILE}';
128-
128+
129129
${options.isCsf4 ? previewFileImport : imports.join('\n')}
130130
${getPreviewAnnotationsFunction}
131-
131+
132132
window.__STORYBOOK_PREVIEW__ = window.__STORYBOOK_PREVIEW__ || new PreviewWeb(importFn, getProjectAnnotations);
133-
133+
134134
window.__STORYBOOK_STORY_STORE__ = window.__STORYBOOK_STORY_STORE__ || window.__STORYBOOK_PREVIEW__.storyStore;
135-
135+
136136
${generateHMRHandler()};
137+
137138
`.trim();
138139
return code;
139140
}

code/builders/builder-vite/src/vite-config.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,6 @@ export async function commonConfig(
8585
}
8686

8787
export async function pluginConfig(options: Options) {
88-
const frameworkName = await getFrameworkName(options);
8988
const build = await options.presets.apply('build');
9089

9190
const externals: Record<string, string> = globalsNameReferenceMap;

code/builders/builder-webpack5/src/loaders/export-order-loader.ts

Lines changed: 34 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -17,37 +17,40 @@ export default async function loader(
1717
const magicString = new MagicString(source);
1818

1919
// Trying to parse as ES module
20-
try {
21-
// Do NOT remove await here. The types are wrong! It has to be awaited,
22-
// otherwise it will return a Promise<Promise<...>> when wasm isn't loaded.
23-
const parseResult = await parseEs(source);
24-
const namedExportsOrder = (parseResult[1] || [])
25-
.map((e) => source.substring(e.s, e.e))
26-
.filter((e) => e !== 'default');
27-
28-
assert(
29-
namedExportsOrder.length > 0,
30-
'No named exports found. Very likely that this is not a ES module.'
31-
);
32-
33-
magicString.append(
34-
`;export const __namedExportsOrder = ${JSON.stringify(namedExportsOrder)};`
35-
);
36-
// Try to parse as CJS module
37-
} catch {
38-
await initCjsParser();
39-
const namedExportsOrder = (parseCjs(source).exports || []).filter(
40-
(e: string) => e !== 'default' && e !== '__esModule'
41-
);
42-
43-
assert(
44-
namedExportsOrder.length > 0,
45-
'No named exports found. Very likely that this is not a CJS module.'
46-
);
47-
48-
magicString.append(
49-
`;module.exports.__namedExportsOrder = ${JSON.stringify(namedExportsOrder)};`
50-
);
20+
if (!source.includes('__namedExportsOrder')) {
21+
try {
22+
// Do NOT remove await here. The types are wrong! It has to be awaited,
23+
// otherwise it will return a Promise<Promise<...>> when wasm isn't loaded.
24+
const parseResult = await parseEs(source);
25+
const namedExportsOrder = (parseResult[1] || [])
26+
.map((e) => source.substring(e.s, e.e))
27+
.filter((e) => e !== 'default');
28+
29+
assert(
30+
namedExportsOrder.length > 0,
31+
'No named exports found. Very likely that this is not a ES module.'
32+
);
33+
34+
magicString.append(
35+
`;export const __namedExportsOrder = ${JSON.stringify(namedExportsOrder)};`
36+
);
37+
38+
// Try to parse as CJS module
39+
} catch {
40+
await initCjsParser();
41+
const namedExportsOrder = (parseCjs(source).exports || []).filter(
42+
(e: string) => e !== 'default' && e !== '__esModule'
43+
);
44+
45+
assert(
46+
namedExportsOrder.length > 0,
47+
'No named exports found. Very likely that this is not a CJS module.'
48+
);
49+
50+
magicString.append(
51+
`;module.exports.__namedExportsOrder = ${JSON.stringify(namedExportsOrder)};`
52+
);
53+
}
5154
}
5255

5356
return callback(null, magicString.toString(), map, meta);

0 commit comments

Comments
 (0)