storybook
Version:
Storybook: Develop, document, and test UI components in isolation
82 lines (77 loc) • 3.29 kB
JavaScript
import CJS_COMPAT_NODE_URL_i0f2i4nx7e from 'node:url';
import CJS_COMPAT_NODE_PATH_i0f2i4nx7e from 'node:path';
import CJS_COMPAT_NODE_MODULE_i0f2i4nx7e from "node:module";
var __filename = CJS_COMPAT_NODE_URL_i0f2i4nx7e.fileURLToPath(import.meta.url);
var __dirname = CJS_COMPAT_NODE_PATH_i0f2i4nx7e.dirname(__filename);
var require = CJS_COMPAT_NODE_MODULE_i0f2i4nx7e.createRequire(import.meta.url);
// ------------------------------------------------------------
// end of CJS compatibility banner, injected by Storybook's esbuild configuration
// ------------------------------------------------------------
import {
slash
} from "../../_node-chunks/chunk-R7ECNCMP.js";
import {
glob
} from "../../_node-chunks/chunk-TMH7JVOQ.js";
import "../../_node-chunks/chunk-4BS6LSRK.js";
// src/core-server/utils/remove-mdx-entries.ts
import { isAbsolute, join, relative } from "node:path";
import { commonGlobOptions, normalizeStories } from "storybook/internal/common";
async function removeMDXEntries(entries, options) {
let list = normalizeStories(entries, {
configDir: options.configDir,
workingDir: options.configDir,
defaultFilesPattern: "**/*.@(stories.@(js|jsx|mjs|ts|tsx))"
});
return (await Promise.all(
list.map(async ({ directory, files, titlePrefix }) => {
let pattern = join(directory, files), absolutePattern = isAbsolute(pattern) ? pattern : join(options.configDir, pattern), absoluteDirectory = isAbsolute(directory) ? directory : join(options.configDir, directory);
return {
files: (await glob(slash(absolutePattern), {
...commonGlobOptions(absolutePattern),
follow: !0
})).map((f) => relative(absoluteDirectory, f)),
directory,
titlePrefix
};
})
)).flatMap(({ directory, files, titlePrefix }, i) => {
let filteredEntries = files.filter((s) => !s.endsWith(".mdx")), items = [];
return filteredEntries.length < files.length ? items = filteredEntries.map((k) => ({
directory,
titlePrefix,
files: `**/${k}`
})) : items = [
{ directory: list[i].directory, titlePrefix: list[i].titlePrefix, files: list[i].files }
], items;
});
}
// src/core-server/presets/common-override-preset.ts
var framework = async (config) => {
let name = typeof config == "string" ? config : config?.name, options = typeof config == "string" ? {} : config?.options || {};
return {
name,
options
};
}, stories = async (entries, options) => options?.build?.test?.disableMDXEntries ? removeMDXEntries(entries, options) : entries, typescript = async (input, options) => options?.build?.test?.disableDocgen ? { ...input ?? {}, reactDocgen: !1, check: !1 } : input, createTestBuildFeatures = (value) => ({
disableBlocks: value,
disabledAddons: value ? ["@storybook/addon-docs", "@storybook/addon-essentials/docs", "@storybook/addon-coverage"] : [],
disableMDXEntries: value,
disableAutoDocs: value,
disableDocgen: value,
disableSourcemaps: value,
disableTreeShaking: value,
esbuildMinify: value
}), build = async (value, options) => ({
...value,
test: options.test ? {
...createTestBuildFeatures(!!options.test),
...value?.test
} : createTestBuildFeatures(!1)
});
export {
build,
framework,
stories,
typescript
};