56 lines
1.6 KiB
TypeScript
56 lines
1.6 KiB
TypeScript
import { pluginBabel } from '@rsbuild/plugin-babel';
|
|
import { resolve } from 'path';
|
|
import type { StorybookConfig } from 'storybook-react-rsbuild';
|
|
|
|
const config: StorybookConfig = {
|
|
stories: ['../src/**/*.stories.@(js|jsx|ts|tsx|mdx)'],
|
|
addons: [
|
|
'@storybook/addon-essentials',
|
|
'@storybook/addon-interactions',
|
|
'@storybook/addon-a11y',
|
|
'@storybook/addon-themes',
|
|
'@storybook/addon-coverage',
|
|
],
|
|
framework: {
|
|
name: 'storybook-react-rsbuild',
|
|
options: {},
|
|
},
|
|
typescript: {
|
|
check: false,
|
|
reactDocgen: 'react-docgen-typescript',
|
|
reactDocgenTypescriptOptions: {
|
|
shouldExtractLiteralValuesFromEnum: true,
|
|
propFilter: (prop) => (prop.parent ? !/node_modules/.test(prop.parent.fileName) : true),
|
|
},
|
|
},
|
|
rsbuildFinal: (config) => {
|
|
config.resolve = config.resolve || {};
|
|
config.resolve.alias = {
|
|
...config.resolve.alias,
|
|
'@ermnvldmr/stl': resolve(__dirname, '../../stl/src'),
|
|
};
|
|
|
|
// Add Babel plugin with istanbul for coverage
|
|
config.plugins = config.plugins || [];
|
|
config.plugins.push(
|
|
pluginBabel({
|
|
include: /\.(?:jsx|tsx)$/,
|
|
exclude: /[\\/]node_modules[\\/]/,
|
|
babelLoaderOptions: (opts) => {
|
|
opts.plugins = opts.plugins || [];
|
|
opts.plugins.push([
|
|
'babel-plugin-istanbul',
|
|
{
|
|
exclude: ['**/*.stories.tsx', '**/*.test.tsx', 'node_modules/**'],
|
|
extension: ['.js', '.jsx', '.ts', '.tsx'],
|
|
},
|
|
]);
|
|
},
|
|
})
|
|
);
|
|
|
|
return config;
|
|
},
|
|
};
|
|
|
|
export default config; |