change mechanism for detecting addon docs being active

This commit is contained in:
Norbert de Langen 2023-10-31 10:01:46 +01:00
parent 5aaf56e0df
commit 02f9b36cd7
No known key found for this signature in database
GPG Key ID: FD0E78AF9A837762
9 changed files with 27 additions and 126 deletions

View File

@ -1,23 +1,12 @@
import type { LoadedPreset, StorybookConfig } from '@storybook/types';
import type { StorybookConfig } from '@storybook/types';
import { join } from 'path';
const hasDocs = (presetsList: LoadedPreset[]) => {
return presetsList.some((preset: string | { name: string }) => {
const presetName = typeof preset === 'string' ? preset : preset.name;
return presetName.includes('@storybook/addon-docs');
});
};
export const previewAnnotations: StorybookConfig['previewAnnotations'] = async (input, options) => {
const { presetsList } = options;
if (!presetsList) {
return input;
}
const docsInList = hasDocs(presetsList);
const docsEnabled = Object.keys(await options.presets.apply('docs', {}, options)).length > 0;
const result: string[] = [];
return result
.concat(input)
.concat([join(__dirname, 'preview.mjs')])
.concat(docsInList ? [join(__dirname, 'preview-docs.mjs')] : []);
.concat(docsEnabled ? [join(__dirname, 'preview-docs.mjs')] : []);
};

View File

@ -1,23 +1,12 @@
import type { LoadedPreset, StorybookConfig } from '@storybook/types';
import type { StorybookConfig } from '@storybook/types';
import { join } from 'path';
const hasDocs = (presetsList: LoadedPreset[]) => {
return presetsList.some((preset: string | { name: string }) => {
const presetName = typeof preset === 'string' ? preset : preset.name;
return presetName.includes('@storybook/addon-docs');
});
};
export const previewAnnotations: StorybookConfig['previewAnnotations'] = async (input, options) => {
const { presetsList } = options;
if (!presetsList) {
return input;
}
const docsInList = hasDocs(presetsList);
const docsEnabled = Object.keys(await options.presets.apply('docs', {}, options)).length > 0;
const result: string[] = [];
return result
.concat(input)
.concat([join(__dirname, 'preview.mjs')])
.concat(docsInList ? [join(__dirname, 'preview-docs.mjs')] : []);
.concat(docsEnabled ? [join(__dirname, 'preview-docs.mjs')] : []);
};

View File

@ -1,4 +1,4 @@
import type { StorybookConfig, LoadedPreset } from '@storybook/types';
import type { StorybookConfig } from '@storybook/types';
import { join } from 'path';
@ -6,23 +6,12 @@ export const addons: StorybookConfig['addons'] = [
require.resolve('@storybook/react-dom-shim/dist/preset'),
];
const hasDocs = (presetsList: LoadedPreset[]) => {
return presetsList.some((preset: string | { name: string }) => {
const presetName = typeof preset === 'string' ? preset : preset.name;
return presetName.includes('@storybook/addon-docs');
});
};
export const previewAnnotations: StorybookConfig['previewAnnotations'] = async (input, options) => {
const { presetsList } = options;
if (!presetsList) {
return input;
}
const docsInList = hasDocs(presetsList);
const docsEnabled = Object.keys(await options.presets.apply('docs', {}, options)).length > 0;
const result: string[] = [];
return result
.concat(input)
.concat([join(__dirname, 'preview.mjs')])
.concat(docsInList ? [join(__dirname, 'preview-docs.mjs')] : []);
.concat(docsEnabled ? [join(__dirname, 'preview-docs.mjs')] : []);
};

View File

@ -1,23 +1,12 @@
import type { LoadedPreset, StorybookConfig } from '@storybook/types';
import type { StorybookConfig } from '@storybook/types';
import { join } from 'path';
const hasDocs = (presetsList: LoadedPreset[]) => {
return presetsList.some((preset: string | { name: string }) => {
const presetName = typeof preset === 'string' ? preset : preset.name;
return presetName.includes('@storybook/addon-docs');
});
};
export const previewAnnotations: StorybookConfig['previewAnnotations'] = async (input, options) => {
const { presetsList } = options;
if (!presetsList) {
return input;
}
const docsInList = hasDocs(presetsList);
const docsEnabled = Object.keys(await options.presets.apply('docs', {}, options)).length > 0;
const result: string[] = [];
return result
.concat(input)
.concat([join(__dirname, 'preview.mjs')])
.concat(docsInList ? [join(__dirname, 'preview-docs.mjs')] : []);
.concat(docsEnabled ? [join(__dirname, 'preview-docs.mjs')] : []);
};

View File

@ -1,23 +1,12 @@
import type { LoadedPreset, StorybookConfig } from '@storybook/types';
import type { StorybookConfig } from '@storybook/types';
import { join } from 'path';
const hasDocs = (presetsList: LoadedPreset[]) => {
return presetsList.some((preset: string | { name: string }) => {
const presetName = typeof preset === 'string' ? preset : preset.name;
return presetName.includes('@storybook/addon-docs');
});
};
export const previewAnnotations: StorybookConfig['previewAnnotations'] = async (input, options) => {
const { presetsList } = options;
if (!presetsList) {
return input;
}
const docsInList = hasDocs(presetsList);
const docsEnabled = Object.keys(await options.presets.apply('docs', {}, options)).length > 0;
const result: string[] = [];
return result
.concat(input)
.concat([join(__dirname, 'preview.mjs')])
.concat(docsInList ? [join(__dirname, 'preview-docs.mjs')] : []);
.concat(docsEnabled ? [join(__dirname, 'preview-docs.mjs')] : []);
};

View File

@ -1,23 +1,12 @@
import type { LoadedPreset, StorybookConfig } from '@storybook/types';
import type { StorybookConfig } from '@storybook/types';
import { join } from 'path';
const hasDocs = (presetsList: LoadedPreset[]) => {
return presetsList.some((preset: string | { name: string }) => {
const presetName = typeof preset === 'string' ? preset : preset.name;
return presetName.includes('@storybook/addon-docs');
});
};
export const previewAnnotations: StorybookConfig['previewAnnotations'] = async (input, options) => {
const { presetsList } = options;
if (!presetsList) {
return input;
}
const docsInList = hasDocs(presetsList);
const docsEnabled = Object.keys(await options.presets.apply('docs', {}, options)).length > 0;
const result: string[] = [];
return result
.concat(input)
.concat([join(__dirname, 'preview.mjs')])
.concat(docsInList ? [join(__dirname, 'preview-docs.mjs')] : []);
.concat(docsEnabled ? [join(__dirname, 'preview-docs.mjs')] : []);
};

View File

@ -1,23 +1,12 @@
import type { LoadedPreset, StorybookConfig } from '@storybook/types';
import type { StorybookConfig } from '@storybook/types';
import { join } from 'path';
const hasDocs = (presetsList: LoadedPreset[]) => {
return presetsList.some((preset: string | { name: string }) => {
const presetName = typeof preset === 'string' ? preset : preset.name;
return presetName.includes('@storybook/addon-docs');
});
};
export const previewAnnotations: StorybookConfig['previewAnnotations'] = async (input, options) => {
const { presetsList } = options;
if (!presetsList) {
return input;
}
const docsInList = hasDocs(presetsList);
const docsEnabled = Object.keys(await options.presets.apply('docs', {}, options)).length > 0;
const result: string[] = [];
return result
.concat(input)
.concat([join(__dirname, 'preview.mjs')])
.concat(docsInList ? [join(__dirname, 'preview-docs.mjs')] : []);
.concat(docsEnabled ? [join(__dirname, 'preview-docs.mjs')] : []);
};

View File

@ -1,23 +1,12 @@
import type { LoadedPreset, StorybookConfig } from '@storybook/types';
import type { StorybookConfig } from '@storybook/types';
import { join } from 'path';
const hasDocs = (presetsList: LoadedPreset[]) => {
return presetsList.some((preset: string | { name: string }) => {
const presetName = typeof preset === 'string' ? preset : preset.name;
return presetName.includes('@storybook/addon-docs');
});
};
export const previewAnnotations: StorybookConfig['previewAnnotations'] = async (input, options) => {
const { presetsList } = options;
if (!presetsList) {
return input;
}
const docsInList = hasDocs(presetsList);
const docsEnabled = Object.keys(await options.presets.apply('docs', {}, options)).length > 0;
const result: string[] = [];
return result
.concat(input)
.concat([join(__dirname, 'preview.mjs')])
.concat(docsInList ? [join(__dirname, 'preview-docs.mjs')] : []);
.concat(docsEnabled ? [join(__dirname, 'preview-docs.mjs')] : []);
};

View File

@ -1,23 +1,12 @@
import type { LoadedPreset, StorybookConfig } from '@storybook/types';
import type { StorybookConfig } from '@storybook/types';
import { join } from 'path';
const hasDocs = (presetsList: LoadedPreset[]) => {
return presetsList.some((preset: string | { name: string }) => {
const presetName = typeof preset === 'string' ? preset : preset.name;
return presetName.includes('@storybook/addon-docs');
});
};
export const previewAnnotations: StorybookConfig['previewAnnotations'] = async (input, options) => {
const { presetsList } = options;
if (!presetsList) {
return input;
}
const docsInList = hasDocs(presetsList);
const docsEnabled = Object.keys(await options.presets.apply('docs', {}, options)).length > 0;
const result: string[] = [];
return result
.concat(input)
.concat([join(__dirname, 'preview.mjs')])
.concat(docsInList ? [join(__dirname, 'preview-docs.mjs')] : []);
.concat(docsEnabled ? [join(__dirname, 'preview-docs.mjs')] : []);
};