storybook-builder-rsbuild
Version:
Rsbuild builder for Storybook
74 lines (69 loc) • 2.94 kB
TypeScript
import * as rsbuildReal from '@rsbuild/core';
import { RsbuildConfig } from '@rsbuild/core';
import { TypescriptOptions as TypescriptOptions$1, Builder, Options, StorybookConfigRaw, BuilderResult as BuilderResult$1, NormalizedStoriesSpecifier } from 'storybook/internal/types';
import { PluginTypeCheckerOptions } from '@rsbuild/plugin-type-check';
type RsbuildStats = {
toJson: (...args: any[]) => any;
};
/**
* Options for TypeScript usage within Storybook.
*/
interface TypescriptOptions extends TypescriptOptions$1 {
/**
* Configures `@rsbuild/plugin-type-check`, using `fork-ts-checker-webpack-plugin` under the hood.
*/
checkOptions?: PluginTypeCheckerOptions;
}
type RsbuildBuilder = Builder<RsbuildConfig, RsbuildStats>;
type RsbuildFinal = (config: RsbuildConfig, options: Options) => RsbuildConfig | Promise<RsbuildConfig>;
type StorybookConfigRsbuild = {
rsbuildFinal?: RsbuildFinal;
webpackAddons?: StorybookConfigRaw['addons'];
};
type BuilderOptions = {
/**
* Path to rsbuild.config file, relative to CWD.
*/
rsbuildConfigPath?: string;
/**
* Enable Rspack's lazy compilation (experimental).
*/
lazyCompilation?: boolean;
/**
* Which environment to use from the Rsbuild config.
*/
environment?: string;
/**
* @storybook/addon-docs options
*/
addonDocs?: any;
};
interface BuilderResult extends BuilderResult$1 {
stats?: Stats;
}
declare const getVirtualModules: (options: Options) => Promise<{
virtualModules: Record<string, string>;
entries: string[];
}>;
declare function toImportFnPart(specifier: NormalizedStoriesSpecifier): string;
declare function toImportFn(stories: NormalizedStoriesSpecifier[], relativeOffset: string, { needPipelinedImport }?: {
needPipelinedImport?: boolean;
}): string;
type ModuleExports = Record<string, any>;
declare function importPipeline(): (importFn: () => Promise<ModuleExports>) => Promise<ModuleExports>;
type StatsOrMultiStats = Parameters<rsbuildReal.OnAfterBuildFn>[0]['stats'];
type Stats = NonNullable<Exclude<StatsOrMultiStats, {
stats: unknown[];
}>>;
declare const printDuration: (startTime: [number, number]) => string;
type BuilderStartOptions = Parameters<RsbuildBuilder['start']>['0'];
declare const executor: {
get: (options: Options) => Promise<typeof rsbuildReal>;
};
declare const getConfig: RsbuildBuilder['getConfig'];
declare function bail(): Promise<void>;
declare const start: RsbuildBuilder['start'];
declare const build: ({ options }: BuilderStartOptions) => Promise<Stats>;
declare const corePresets: string[];
declare const previewMainTemplate: () => string;
export { BuilderOptions, BuilderResult, RsbuildBuilder, RsbuildFinal, Stats, StorybookConfigRsbuild, TypescriptOptions, bail, build, corePresets, executor, getConfig, getVirtualModules, importPipeline, previewMainTemplate, printDuration, start, toImportFn, toImportFnPart };