kkt
Version:
Create React apps with no build configuration, Cli tool for creating react apps.
51 lines (50 loc) • 2.15 kB
TypeScript
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>;