This repository has no description
1.3 kB
39 lines
1import type { StorybookConfig } from '@storybook/nextjs-vite';
2import { dirname, resolve } from 'path';
3import { fileURLToPath } from 'url';
4
5const __dirname = dirname(fileURLToPath(import.meta.url));
6
7/**
8 * This function is used to resolve the absolute path of a package.
9 * It is needed in projects that use Yarn PnP or are set up within a monorepo.
10 */
11function getAbsolutePath(value: string) {
12 return dirname(fileURLToPath(import.meta.resolve(`${value}/package.json`)));
13}
14const config: StorybookConfig = {
15 stories: [
16 '../stories/**/*.mdx',
17 '../stories/**/*.stories.@(js|jsx|mjs|ts|tsx)',
18 '../features/**/*.stories.@(js|jsx|mjs|ts|tsx)',
19 '../components/**/*.stories.@(js|jsx|mjs|ts|tsx)',
20 ],
21 addons: [
22 getAbsolutePath('@chromatic-com/storybook'),
23 getAbsolutePath('@storybook/addon-vitest'),
24 getAbsolutePath('@storybook/addon-a11y'),
25 getAbsolutePath('@storybook/addon-docs'),
26 getAbsolutePath('@storybook/addon-onboarding'),
27 ],
28 framework: getAbsolutePath('@storybook/nextjs-vite'),
29 staticDirs: ['../public'],
30 viteFinal: async (config) => {
31 config.resolve = config.resolve || {};
32 config.resolve.alias = {
33 ...(config.resolve.alias || {}),
34 '@semble/types': resolve(__dirname, '../../types/src/index.ts'),
35 };
36 return config;
37 },
38};
39export default config;