74 lines
2.0 KiB
TypeScript
Raw Normal View History

import { vite as csfPlugin } from '@storybook/csf-plugin';
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-10-26 00:31:54 +02:00
const isBlocksOnly = process.env.BLOCKS_ONLY === 'true';
const allStories = [
{
directory: '../manager/src',
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',
],
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,
},
viteFinal: (vite, { configType }) => ({
...vite,
plugins: [
...(vite.plugins || []),
csfPlugin({}),
configType === 'PRODUCTION' ? pluginTurbosnap({ rootDir: vite.root || '' }) : [],
],
2022-11-03 23:35:38 +11:00
optimizeDeps: { ...vite.optimizeDeps, force: true },
}),
2022-10-12 23:13:59 +02:00
};
export default config;