UNPKG

@storybook/addon-docs

Version:

Storybook Docs: Document UI components automatically with stories and MDX

40 lines (36 loc) 1.8 kB
import CJS_COMPAT_NODE_URL_bvy9c8jbty from 'node:url'; import CJS_COMPAT_NODE_PATH_bvy9c8jbty from 'node:path'; import CJS_COMPAT_NODE_MODULE_bvy9c8jbty from "node:module"; var __filename = CJS_COMPAT_NODE_URL_bvy9c8jbty.fileURLToPath(import.meta.url); var __dirname = CJS_COMPAT_NODE_PATH_bvy9c8jbty.dirname(__filename); var require = CJS_COMPAT_NODE_MODULE_bvy9c8jbty.createRequire(import.meta.url); // ------------------------------------------------------------ // end of CJS compatibility banner, injected by Storybook's esbuild configuration // ------------------------------------------------------------ import "../_node-chunks/chunk-2ZYOPMW6.js"; // src/csf-plugin/webpack-loader.ts import { readFile } from "node:fs/promises"; import { enrichCsf, formatCsf, loadCsf } from "storybook/internal/csf-tools"; import { logger } from "storybook/internal/node-logger"; async function loader(content, map) { let callback = this.async(), options = this.getOptions(), id = this.resourcePath, sourceCode = await readFile(id, "utf-8"); try { let makeTitle = (userTitle) => userTitle || "default", csf = loadCsf(content, { makeTitle }).parse(), csfSource = loadCsf(sourceCode, { makeTitle }).parse(); await enrichCsf(csf, csfSource, options); let formattedCsf = formatCsf( csf, { sourceMaps: !0, inputSourceMap: map, sourceFileName: id }, content ); if (typeof formattedCsf == "string") return callback(null, formattedCsf, map); callback(null, formattedCsf.code, formattedCsf.map); } catch (err) { let message = err instanceof Error ? err.message : String(err); message.startsWith("CSF:") || logger.warn(message), callback(null, content, map); } } var webpack_loader_default = loader; export { webpack_loader_default as default };