UNPKG

storybook-react-rsbuild

Version:

Storybook for React and Rsbuild: Develop React components in isolation with Hot Reloading.

89 lines (81 loc) 2.93 kB
import CJS_COMPAT_NODE_URL_bce9f5a39a886437 from 'node:url'; import CJS_COMPAT_NODE_PATH_bce9f5a39a886437 from 'node:path'; import CJS_COMPAT_NODE_MODULE_bce9f5a39a886437 from "node:module"; var __filename = CJS_COMPAT_NODE_URL_bce9f5a39a886437.fileURLToPath(import.meta.url); var __dirname = CJS_COMPAT_NODE_PATH_bce9f5a39a886437.dirname(__filename); var require = CJS_COMPAT_NODE_MODULE_bce9f5a39a886437.createRequire(import.meta.url); // ------------------------------------------------------------ // end of CJS compatibility banner, injected by Storybook's esbuild configuration // ------------------------------------------------------------ import { __require } from "./_node-chunks/chunk-HLWUFMVK.js"; // src/preset.ts import { fileURLToPath } from "node:url"; // src/react-docs.ts import { mergeRsbuildConfig } from "@rsbuild/core"; // src/requirer.ts function requirer(resolver, path) { return resolver(path); } // src/react-docs.ts var rsbuildFinalDocs = async (config, options) => { let typescriptOptions = await options.presets.apply("typescript", {}), debug = options.loglevel === "debug", { reactDocgen, reactDocgenTypescriptOptions } = typescriptOptions || {}; if (typeof reactDocgen != "string") return config; if (reactDocgen !== "react-docgen-typescript") return mergeRsbuildConfig(config, { tools: { rspack: { module: { rules: [ { test: /\.(cjs|mjs|tsx?|jsx?)$/, enforce: "pre", loader: requirer( __require.resolve, "storybook-react-rsbuild/loaders/react-docgen-loader" ), options: { debug }, exclude: /(\.(stories|story)\.(js|jsx|ts|tsx))|(node_modules)/ } ] } } } }); let typescriptPresent; try { __require.resolve("typescript"), typescriptPresent = !0; } catch { typescriptPresent = !1; } let reactDocGenTsPlugin = await import("./_node-chunks/react-docgen-typescript-2SOKSJO6.js"); return mergeRsbuildConfig(config, { plugins: [ await reactDocGenTsPlugin.default({ ...reactDocgenTypescriptOptions, // We *need* this set so that RDT returns default values in the same format as react-docgen savePropValueAsString: !0 }) ] }); }; // src/preset.ts var rsbuildFinal = async (config, options) => rsbuildFinalDocs(config, options), core = async (config, options) => { let framework = await options.presets.apply("framework"); return { ...config, builder: { name: fileURLToPath(import.meta.resolve("storybook-builder-rsbuild")), options: typeof framework == "string" ? {} : framework.options.builder || {} }, renderer: fileURLToPath(import.meta.resolve("@storybook/react/preset")) }; }; export { core, rsbuildFinal };