storybook-addon-rslib
Version:
Storybook addon for loading configuration of Rslib
41 lines (37 loc) • 1.95 kB
JavaScript
import CJS_COMPAT_NODE_URL_c3e111fe9bf1766e from 'node:url';
import CJS_COMPAT_NODE_PATH_c3e111fe9bf1766e from 'node:path';
import CJS_COMPAT_NODE_MODULE_c3e111fe9bf1766e from "node:module";
var __filename = CJS_COMPAT_NODE_URL_c3e111fe9bf1766e.fileURLToPath(import.meta.url);
var __dirname = CJS_COMPAT_NODE_PATH_c3e111fe9bf1766e.dirname(__filename);
var require = CJS_COMPAT_NODE_MODULE_c3e111fe9bf1766e.createRequire(import.meta.url);
// ------------------------------------------------------------
// end of CJS compatibility banner, injected by Storybook's esbuild configuration
// ------------------------------------------------------------
// src/preset.ts
import { mergeRsbuildConfig } from "@rsbuild/core";
import { loadConfig } from "@rslib/core";
var rsbuildFinal = async (config, options) => {
let { rslib = {} } = options, {
cwd,
configPath,
libIndex = 0,
modifyLibConfig,
modifyLibRsbuildConfig
} = rslib, { content } = await loadConfig({
cwd,
path: configPath
}), libConfig = libIndex === !1 ? {} : content.lib[libIndex];
if (!libConfig)
throw new Error(
`Lib config not found at index ${libIndex}, expect a lib config but got ${libConfig}`
);
typeof modifyLibConfig == "function" && modifyLibConfig(libConfig);
let { lib: _lib, ...nonLibConfig } = content, mergedLibConfig = mergeRsbuildConfig(
nonLibConfig,
libConfig
);
return delete mergedLibConfig.source?.entry, delete mergedLibConfig.output?.distPath, delete mergedLibConfig.output?.filename, delete mergedLibConfig.output?.cleanDistPath, delete mergedLibConfig.output?.externals, delete mergedLibConfig.server?.publicDir, delete mergedLibConfig.dev?.progressBar, delete mergedLibConfig.output?.assetPrefix, delete mergedLibConfig.dev?.assetPrefix, typeof modifyLibRsbuildConfig == "function" && modifyLibRsbuildConfig(mergedLibConfig), mergeRsbuildConfig(config, mergedLibConfig);
};
export {
rsbuildFinal
};