@storybook/angular
Version:
Storybook for Angular: Develop, document, and test UI components in isolation
57 lines (52 loc) • 2.19 kB
TypeScript
import { StorybookConfig as StorybookConfig$2, Options, CompatibleString, TypescriptOptions as TypescriptOptions$1 } from 'storybook/internal/types';
import { StorybookConfigWebpack, BuilderOptions, TypescriptOptions } from '@storybook/builder-webpack5';
type RulesConfig = any;
type ModuleConfig = {
rules?: RulesConfig[];
};
type ResolveConfig = {
extensions?: string[];
mainFields?: (string | string[])[] | undefined;
alias?: any;
};
interface WebpackConfiguration {
plugins?: any[];
module?: ModuleConfig;
resolve?: ResolveConfig;
optimization?: any;
devtool?: false | string;
}
type StorybookConfig$1<TWebpackConfiguration = WebpackConfiguration> = StorybookConfig$2 & {
/**
* Modify or return a custom Webpack config after the Storybook's default configuration has run
* (mostly used by addons).
*/
webpack?: (config: TWebpackConfiguration, options: Options) => TWebpackConfiguration | Promise<TWebpackConfiguration>;
/** Modify or return a custom Webpack config after every addon has run. */
webpackFinal?: (config: TWebpackConfiguration, options: Options) => TWebpackConfiguration | Promise<TWebpackConfiguration>;
};
type FrameworkName = CompatibleString<'@storybook/angular'>;
type BuilderName = CompatibleString<'@storybook/builder-webpack5'>;
type FrameworkOptions = AngularOptions & {
builder?: BuilderOptions;
};
type StorybookConfigFramework = {
framework: FrameworkName | {
name: FrameworkName;
options: FrameworkOptions;
};
core?: StorybookConfig$1['core'] & {
builder?: BuilderName | {
name: BuilderName;
options: BuilderOptions;
};
};
typescript?: Partial<TypescriptOptions & TypescriptOptions$1> & StorybookConfig$1['typescript'];
};
/** The interface for Storybook configuration in `main.ts` files. */
type StorybookConfig = Omit<StorybookConfig$1, keyof StorybookConfigWebpack | keyof StorybookConfigFramework> & StorybookConfigWebpack & StorybookConfigFramework;
interface AngularOptions {
enableIvy?: boolean;
}
declare function defineMain(config: StorybookConfig): StorybookConfig;
export { defineMain };