58 lines
No EOL
1.9 KiB
TypeScript
58 lines
No EOL
1.9 KiB
TypeScript
import { readdirSync } from "fs";
|
|
import path from "path";
|
|
import { fileURLToPath } from "url";
|
|
import type { StorybookConfig } from "@storybook/sveltekit";
|
|
|
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
|
|
// Exclude upstream components whose stories fail addon-svelte-csf parser (SB_SVELTE_CSF_PARSER_EXTRACT_SVELTE_0009)
|
|
const EXCLUDE_COMPONENTS = ["GraphicBlock", "InfoBox", "PaddingReset"];
|
|
|
|
const componentsDir = path.join(__dirname, "../graphics-components-src/src/components");
|
|
const componentDirs = readdirSync(componentsDir, { withFileTypes: true })
|
|
.filter(
|
|
(d) =>
|
|
d.isDirectory() &&
|
|
!d.name.startsWith("@") &&
|
|
!EXCLUDE_COMPONENTS.includes(d.name),
|
|
)
|
|
.map((d) => d.name);
|
|
|
|
const submoduleStories = [
|
|
"../graphics-components-src/src/docs/**/*.mdx",
|
|
...componentDirs.flatMap((name) => [
|
|
`../graphics-components-src/src/components/${name}/**/*.mdx`,
|
|
`../graphics-components-src/src/components/${name}/**/*.stories.@(js|ts|svelte)`,
|
|
]),
|
|
];
|
|
|
|
const config: StorybookConfig = {
|
|
stories: [
|
|
"../src/**/*.stories.@(js|ts|svelte)",
|
|
...submoduleStories,
|
|
],
|
|
addons: ["@storybook/addon-docs", "@storybook/addon-svelte-csf"],
|
|
framework: "@storybook/sveltekit",
|
|
async viteFinal(config) {
|
|
config.resolve = config.resolve ?? {};
|
|
config.resolve.alias = {
|
|
...config.resolve.alias,
|
|
"@reuters-graphics/graphics-components": path.resolve(
|
|
__dirname,
|
|
"../graphics-components-src/src/index.ts",
|
|
),
|
|
"@reuters-graphics/graphics-components/scss": path.resolve(
|
|
__dirname,
|
|
"../graphics-components-src/src/scss",
|
|
),
|
|
};
|
|
config.server = config.server ?? {};
|
|
config.server.fs = config.server.fs ?? {};
|
|
config.server.fs.allow = [
|
|
...(config.server.fs.allow ?? []),
|
|
path.resolve(__dirname, "../graphics-components-src"),
|
|
];
|
|
return config;
|
|
},
|
|
};
|
|
export default config; |