2022-10-29 11:00:44 +08:00
|
|
|
import { vite as csfPlugin } from '@storybook/csf-plugin';
|
2022-11-16 14:08:32 +01:00
|
|
|
import pluginTurbosnap from 'vite-plugin-turbosnap';
|
2022-10-13 01:38:11 +02:00
|
|
|
import type { StorybookConfig } from '../../frameworks/react-vite/dist';
|
2022-10-12 23:13:59 +02:00
|
|
|
|
2022-11-11 20:36:14 +01:00
|
|
|
const isBlocksOnly = process.env.STORYBOOK_BLOCKS_ONLY === 'true';
|
2022-10-26 00:31:54 +02:00
|
|
|
|
|
|
|
const allStories = [
|
2022-11-29 21:19:45 +01:00
|
|
|
'../../lib/cli/rendererAssets/common/Introduction.stories.mdx',
|
2022-10-26 00:31:54 +02:00
|
|
|
{
|
|
|
|
directory: '../manager/src',
|
2022-10-27 09:19:05 +02:00
|
|
|
titlePrefix: '@storybook-manager',
|
2022-10-26 00:31:54 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
directory: '../components/src',
|
|
|
|
titlePrefix: '@storybook-components',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
directory: '../blocks/src',
|
|
|
|
titlePrefix: '@storybook-blocks',
|
|
|
|
},
|
|
|
|
];
|
2022-11-11 13:29:51 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* match all stories in blocks/src/blocks and blocks/src/controls EXCEPT blocks/src/blocks/internal
|
|
|
|
* Examples:
|
|
|
|
*
|
|
|
|
* src/blocks/Canvas.stories.tsx - MATCH
|
|
|
|
* src/blocks/internal/InternalCanvas.stories.tsx - IGNORED, internal stories
|
|
|
|
* src/blocks/internal/nested/InternalCanvas.stories.tsx - IGNORED, internal stories
|
|
|
|
*
|
|
|
|
* src/blocks/Canvas.tsx - IGNORED, not story
|
|
|
|
* src/blocks/nested/Canvas.stories.tsx - MATCH
|
|
|
|
* src/blocks/nested/deep/Canvas.stories.tsx - MATCH
|
|
|
|
*
|
|
|
|
* src/controls/Boolean.stories.tsx - MATCH
|
|
|
|
* src/controls/Boolean.tsx - IGNORED, not story
|
|
|
|
*
|
|
|
|
* src/components/ColorPalette.stories.tsx - MATCH
|
|
|
|
* src/components/ColorPalette.tsx - IGNORED, not story
|
|
|
|
*/
|
|
|
|
const blocksOnlyStories = [
|
|
|
|
'../blocks/src/@(blocks|controls)/!(internal)/**/*.@(mdx|stories.@(tsx|ts|jsx|js))',
|
|
|
|
'../blocks/src/@(blocks|controls)/*.@(mdx|stories.@(tsx|ts|jsx|js))',
|
|
|
|
];
|
2022-10-26 00:31:54 +02:00
|
|
|
|
2022-10-12 23:13:59 +02:00
|
|
|
const config: StorybookConfig = {
|
2022-10-26 00:31:54 +02:00
|
|
|
stories: isBlocksOnly ? blocksOnlyStories : allStories,
|
2022-10-12 23:13:59 +02:00
|
|
|
addons: [
|
|
|
|
'@storybook/addon-links',
|
|
|
|
'@storybook/addon-essentials',
|
|
|
|
'@storybook/addon-interactions',
|
2022-11-23 14:31:48 +01:00
|
|
|
'@storybook/addon-storysource',
|
2022-10-12 23:13:59 +02:00
|
|
|
],
|
|
|
|
framework: {
|
|
|
|
name: '@storybook/react-vite',
|
|
|
|
options: {},
|
|
|
|
},
|
2022-10-24 13:26:23 +02:00
|
|
|
core: {
|
|
|
|
disableTelemetry: true,
|
|
|
|
},
|
2022-11-11 15:20:57 +01:00
|
|
|
features: {
|
|
|
|
interactionsDebugger: true,
|
|
|
|
},
|
2022-11-15 12:25:50 +01:00
|
|
|
viteFinal: (viteConfig, { configType }) => ({
|
|
|
|
...viteConfig,
|
2022-11-07 06:31:41 -07:00
|
|
|
plugins: [
|
2022-11-15 12:25:50 +01:00
|
|
|
...(viteConfig.plugins || []),
|
2022-11-07 06:31:41 -07:00
|
|
|
csfPlugin({}),
|
2022-11-16 14:08:32 +01:00
|
|
|
configType === 'PRODUCTION' ? pluginTurbosnap({ rootDir: viteConfig.root || '' }) : [],
|
2022-11-07 06:31:41 -07:00
|
|
|
],
|
2022-11-15 12:25:50 +01:00
|
|
|
optimizeDeps: { ...viteConfig.optimizeDeps, force: true },
|
2022-11-16 21:40:56 +01:00
|
|
|
build: {
|
|
|
|
...viteConfig.build,
|
|
|
|
// disable sourcemaps in CI to not run out of memory
|
|
|
|
sourcemap: process.env.CI !== 'true',
|
|
|
|
},
|
2022-10-29 11:00:44 +08:00
|
|
|
}),
|
2022-10-12 23:13:59 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
export default config;
|