Skip to content

Commit 0754cc5

Browse files
committed
fix getIsReactVersion18or19
1 parent 2bc0c48 commit 0754cc5

File tree

4 files changed

+24
-25
lines changed

4 files changed

+24
-25
lines changed

packages/storybook-builder/src/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ export const start: WdsBuilder['start'] = async ({ startTime, options, router, s
8686
}
8787
},
8888
},
89-
wdsPluginPrebundleModules(env),
89+
wdsPluginPrebundleModules(env, options),
9090
wdsPluginStorybookBuilder(options),
9191
wdsPluginMdx(options),
9292
wdsPluginExternalGlobals(globalsNameReferenceMap || globals),
@@ -160,7 +160,7 @@ export const build: WdsBuilder['build'] = async ({ startTime, options }) => {
160160
externalAssets: 'sb-common-assets/**',
161161
}),
162162
rollupPluginNodeResolve(),
163-
rollupPluginPrebundleModules(env),
163+
rollupPluginPrebundleModules(env, options),
164164
rollupPluginStorybookBuilder(options),
165165
rollupPluginMdx(options),
166166
rollupPluginExternalGlobals(globalsNameReferenceMap || globals),

packages/storybook-builder/src/rollup-plugin-mdx.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@ import rehypeExternalLinks from 'rehype-external-links';
66
import rehypeSlug from 'rehype-slug';
77
import type { Plugin } from 'rollup';
88

9-
export function rollupPluginMdx(storybookOptions: Options): Plugin {
9+
export function rollupPluginMdx(options: Options): Plugin {
1010
let mdxPluginOptions: Record<string, any>;
1111
let jsxOptions: Record<string, any>;
1212

1313
return {
1414
name: 'rollup-plugin-mdx',
1515

1616
async buildStart() {
17-
({ mdxPluginOptions, jsxOptions } = await storybookOptions.presets.apply<Record<string, any>>(
17+
({ mdxPluginOptions, jsxOptions } = await options.presets.apply<Record<string, any>>(
1818
'options',
1919
{},
2020
));
@@ -32,7 +32,7 @@ export function rollupPluginMdx(storybookOptions: Options): Plugin {
3232
const mdxPath = id.replace(/\.js$/, '');
3333
const mdxCode = await readFile(mdxPath.split('/').join(sep), { encoding: 'utf8' });
3434

35-
const mdxLoaderOptions = await storybookOptions.presets.apply('mdxLoaderOptions', {
35+
const mdxLoaderOptions = await options.presets.apply('mdxLoaderOptions', {
3636
...mdxPluginOptions,
3737
mdxCompileOptions: {
3838
// TODO(storybook): this is done by Storybook in 3 different places:

packages/storybook-builder/src/rollup-plugin-prebundle-modules.ts

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@ import { getNodeModuleDir } from './get-node-module-dir.js';
99

1010
export const PREBUNDLED_MODULES_DIR = normalize('node_modules/.prebundled_modules');
1111

12-
export function rollupPluginPrebundleModules(env: Record<string, string>): Plugin {
12+
export function rollupPluginPrebundleModules(
13+
env: Record<string, string>,
14+
options: Options,
15+
): Plugin {
1316
const modulePaths: Record<string, string> = {};
1417

1518
return {
@@ -39,7 +42,7 @@ export function rollupPluginPrebundleModules(env: Record<string, string>): Plugi
3942
alias: {
4043
/* for @storybook/addon-docs */
4144
...(moduleExists('@storybook/react-dom-shim') && {
42-
'@storybook/react-dom-shim': await getReactDomShimAlias(),
45+
'@storybook/react-dom-shim': await getReactDomShimAlias(options),
4346
}),
4447
},
4548
external: [...modules],
@@ -94,20 +97,16 @@ export const CANDIDATES = [
9497
* Get react-dom version from the resolvedReact preset, which points to either a root react-dom
9598
* dependency or the react-dom dependency shipped with addon-docs
9699
*/
97-
// async function getIsReactVersion18or19(options: Options) {
98-
async function getIsReactVersion18or19() {
99-
// TODO(storybook): find a solution to have "options" here and fix the implementation
100+
async function getIsReactVersion18or19(options: Options) {
101+
const { legacyRootApi } =
102+
(await options.presets.apply<{ legacyRootApi?: boolean } | null>('frameworkOptions')) || {};
100103

101-
// const { legacyRootApi } =
102-
// (await options.presets.apply<{ legacyRootApi?: boolean } | null>('frameworkOptions')) || {};
103-
104-
// if (legacyRootApi) {
105-
// return false;
106-
// }
104+
if (legacyRootApi) {
105+
return false;
106+
}
107107

108-
// const resolvedReact = await options.presets.apply<{ reactDom?: string }>('resolvedReact', {});
109-
// const reactDom = resolvedReact.reactDom || dirname(require.resolve('react-dom/package.json'));
110-
const reactDom = dirname(require.resolve('react-dom/package.json'));
108+
const resolvedReact = await options.presets.apply<{ reactDom?: string }>('resolvedReact', {});
109+
const reactDom = resolvedReact.reactDom || dirname(require.resolve('react-dom/package.json'));
111110

112111
if (!isAbsolute(reactDom)) {
113112
// if react-dom is not resolved to a file we can't be sure if the version in package.json is correct or even if package.json exists
@@ -119,8 +118,8 @@ async function getIsReactVersion18or19() {
119118
return version.startsWith('18') || version.startsWith('19') || version.startsWith('0.0.0');
120119
}
121120

122-
async function getReactDomShimAlias() {
123-
return (await getIsReactVersion18or19())
121+
async function getReactDomShimAlias(options: Options) {
122+
return (await getIsReactVersion18or19(options))
124123
? require.resolve('@storybook/react-dom-shim')
125124
: require.resolve('@storybook/react-dom-shim/dist/react-16');
126125
}

packages/storybook-builder/src/rollup-plugin-storybook-builder.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@ import {
1111
virtualStoriesFilename,
1212
} from './virtual-file-names.js';
1313

14-
export function rollupPluginStorybookBuilder(storybookOptions: Options): Plugin {
14+
export function rollupPluginStorybookBuilder(options: Options): Plugin {
1515
let storyFilePaths: string[];
1616

1717
return {
1818
name: 'rollup-plugin-storybook-builder',
1919

2020
async buildStart() {
21-
storyFilePaths = await listStories(storybookOptions);
21+
storyFilePaths = await listStories(options);
2222
},
2323

2424
async resolveId(source) {
@@ -37,15 +37,15 @@ export function rollupPluginStorybookBuilder(storybookOptions: Options): Plugin
3737

3838
async load(id) {
3939
if (id.endsWith(virtualAppFilename)) {
40-
return generateAppScript(storybookOptions);
40+
return generateAppScript(options);
4141
}
4242

4343
if (id.endsWith(virtualSetupAddonsFilename)) {
4444
return generateSetupAddonsScript();
4545
}
4646

4747
if (id.endsWith(virtualStoriesFilename)) {
48-
return generateStoriesScript(storybookOptions);
48+
return generateStoriesScript(options);
4949
}
5050
},
5151

0 commit comments

Comments
 (0)