docs/_snippets/main-config-stories-with-logic.md
async function findStories() {
// your custom logic returns a list of files
}
export default {
// Replace your-framework with the framework you are using, e.g. react-vite, nextjs, vue3-vite, etc.
framework: '@storybook/your-framework',
stories: async (list) => [
...list,
// ๐ Add your found stories to the existing list of story files
...(await findStories()),
],
};
// Replace your-framework with the framework you are using, e.g. react-vite, nextjs, vue3-vite, etc.
import type { StorybookConfig } from '@storybook/your-framework';
import type { StoriesEntry } from 'storybook/internal/types';
async function findStories(): Promise<StoriesEntry[]> {
// your custom logic returns a list of files
}
const config: StorybookConfig = {
framework: '@storybook/your-framework',
stories: async (list: StoriesEntry[]) => [
...list,
// ๐ Add your found stories to the existing list of story files
...(await findStories()),
],
};
export default config;
import type { StoriesEntry } from 'storybook/internal/types';
// Replace your-framework with the framework you are using (e.g., react-vite, nextjs, nextjs-vite)
import { defineMain } from '@storybook/your-framework/node';
async function findStories(): Promise<StoriesEntry[]> {
// your custom logic returns a list of files
}
export default defineMain({
framework: '@storybook/your-framework',
stories: async (list: StoriesEntry[]) => [
...list,
// ๐ Add your found stories to the existing list of story files
...(await findStories()),
],
});
// Replace your-framework with the framework you are using (e.g., react-vite, nextjs, nextjs-vite)
import { defineMain } from '@storybook/your-framework/node';
async function findStories() {
// your custom logic returns a list of files
}
export default defineMain({
framework: '@storybook/your-framework',
stories: async (list) => [
...list,
// ๐ Add your found stories to the existing list of story files
...(await findStories()),
],
});
import { defineMain } from '@storybook/vue3-vite/node';
import type { StoriesEntry } from 'storybook/internal/types';
async function findStories(): Promise<StoriesEntry[]> {
// your custom logic returns a list of files
}
export default defineMain({
framework: '@storybook/vue3-vite',
stories: async (list: StoriesEntry[]) => [
...list,
// ๐ Add your found stories to the existing list of story files
...(await findStories()),
],
});
import { defineMain } from '@storybook/vue3-vite/node';
async function findStories() {
// your custom logic returns a list of files
}
export default defineMain({
framework: '@storybook/vue3-vite',
stories: async (list) => [
...list,
// ๐ Add your found stories to the existing list of story files
...(await findStories()),
],
});
import { defineMain } from '@storybook/angular/node';
async function findStories() {
// your custom logic returns a list of files
}
export default defineMain({
framework: '@storybook/angular',
stories: async (list) => [
...list,
// ๐ Add your found stories to the existing list of story files
...(await findStories()),
],
});
import { defineMain } from '@storybook/web-components-vite/node';
import type { StoriesEntry } from 'storybook/internal/types';
async function findStories(): Promise<StoriesEntry[]> {
// your custom logic returns a list of files
}
export default defineMain({
framework: '@storybook/web-components-vite',
stories: async (list: StoriesEntry[]) => [
...list,
// ๐ Add your found stories to the existing list of story files
...(await findStories()),
],
});
import { defineMain } from '@storybook/web-components-vite/node';
async function findStories() {
// your custom logic returns a list of files
}
export default defineMain({
framework: '@storybook/web-components-vite',
stories: async (list) => [
...list,
// ๐ Add your found stories to the existing list of story files
...(await findStories()),
],
});