mirror of
https://github.com/toeverything/AFFiNE.git
synced 2024-12-22 13:31:37 +03:00
81 lines
2.1 KiB
TypeScript
81 lines
2.1 KiB
TypeScript
import { dirname, join } from 'path';
|
|
import { StorybookConfig } from '@storybook/react-vite';
|
|
import { vanillaExtractPlugin } from '@vanilla-extract/vite-plugin';
|
|
import swc from 'unplugin-swc';
|
|
import { mergeConfig } from 'vite';
|
|
import { getBuildConfig } from '@affine/cli/src/webpack/runtime-config';
|
|
|
|
export default {
|
|
stories: ['../src/ui/**/*.@(mdx|stories.@(js|jsx|ts|tsx))'],
|
|
|
|
addons: [
|
|
getAbsolutePath('@storybook/addon-links'),
|
|
getAbsolutePath('@storybook/addon-essentials'),
|
|
getAbsolutePath('@storybook/addon-interactions'),
|
|
getAbsolutePath('@storybook/addon-mdx-gfm'),
|
|
'@chromatic-com/storybook',
|
|
],
|
|
|
|
framework: {
|
|
name: getAbsolutePath('@storybook/react-vite'),
|
|
options: {},
|
|
},
|
|
|
|
features: {},
|
|
|
|
docs: {},
|
|
|
|
async viteFinal(config, _options) {
|
|
return mergeConfig(config, {
|
|
plugins: [
|
|
vanillaExtractPlugin(),
|
|
swc.vite({
|
|
jsc: {
|
|
preserveAllComments: true,
|
|
parser: {
|
|
syntax: 'typescript',
|
|
dynamicImport: true,
|
|
tsx: true,
|
|
decorators: true,
|
|
},
|
|
target: 'es2022',
|
|
externalHelpers: false,
|
|
transform: {
|
|
react: {
|
|
runtime: 'automatic',
|
|
},
|
|
useDefineForClassFields: false,
|
|
decoratorVersion: '2022-03',
|
|
},
|
|
},
|
|
sourceMaps: true,
|
|
inlineSourcesContent: true,
|
|
}),
|
|
],
|
|
define: {
|
|
'process.env.CAPTCHA_SITE_KEY': `"${process.env.CAPTCHA_SITE_KEY}"`,
|
|
...Object.entries(
|
|
getBuildConfig({
|
|
distribution: 'web',
|
|
mode: 'development',
|
|
channel: 'canary',
|
|
static: false,
|
|
coverage: false,
|
|
})
|
|
).reduce((envs, [key, value]) => {
|
|
envs[`BUILD_CONFIG.${key}`] = JSON.stringify(value);
|
|
return envs;
|
|
}, {}),
|
|
},
|
|
});
|
|
},
|
|
|
|
typescript: {
|
|
reactDocgen: 'react-docgen-typescript',
|
|
},
|
|
} satisfies StorybookConfig;
|
|
|
|
function getAbsolutePath(value: string): any {
|
|
return dirname(require.resolve(join(value, 'package.json')));
|
|
}
|