UNPKG

kkt

Version:

Create React apps with no build configuration, Cli tool for creating react apps.

51 lines (50 loc) 2.15 kB
import { AutoConfOption } from 'auto-config-loader'; import { Configuration } from 'webpack'; import type WebpackDevServer from 'webpack-dev-server'; import { MockerOption, MockerProxyRoute } from 'mocker-api'; import { ParsedArgs } from 'minimist'; import type express from 'express'; import { OverridePaths } from '../overrides/paths'; export type MockerAPIOptions = { path: string | string[] | MockerProxyRoute; option?: MockerOption; }; export type LoaderConfOptions = ParsedArgs & { paths: OverridePaths; shouldUseSourceMap: boolean; devServerConfigHandle?: DevServerConfigFunction; kktrc: KKTRC; }; export type DevServerConfigFunction = (proxy: WebpackDevServer.Configuration['proxy'], allowedHost: string) => WebpackDevServer.Configuration; export type DevServerOptions = ParsedArgs & Pick<LoaderConfOptions, 'paths' | 'paths'>; export interface WebpackConfiguration extends Configuration { devServer?: WebpackDevServer.Configuration; /** Configuring the Proxy Manually */ proxySetup?: (app: express.Application) => MockerAPIOptions; } export type KKTRC = { /** * Still available, may be removed in the future. (仍然可用,将来可能会被删除。) * The method has been moved elsewhere. * @deprecated * * The following method is recommended * * @example * ```ts * export default (conf: WebpackConfiguration, evn: 'development' | 'production') => { * //.... * conf.proxySetup = (app: express.Application): MockerAPIOptions => { * return { * path: path.resolve('./mocker/index.js'), * }; * }; * return conf; * } * ``` */ proxySetup?: (app: express.Application) => MockerAPIOptions; devServer?: (config: WebpackDevServer.Configuration, options: DevServerOptions) => WebpackDevServer.Configuration; default?: (conf: WebpackConfiguration, evn: 'development' | 'production', options: LoaderConfOptions) => WebpackConfiguration | Promise<WebpackConfiguration>; }; export declare function loaderConfig(namespace?: string, option?: AutoConfOption<KKTRC>): Promise<KKTRC>;