UNPKG

1.3 kBTypeScriptView Raw
1import { Config as Args, Env } from './commands/args';
2import { BabelRC } from './utils/babel-config';
3export interface Server {
4 app: any;
5 on: (event: string, cb: (server: any) => void) => void;
6 close: () => void;
7}
8export interface ServerHooks {
9 onCreateApp<A>(app: A): void;
10 OnServerListening<S>(server: S): void;
11}
12export interface BundlerServer {
13 start(): Promise<Server>;
14}
15export declare type ConfigFn<C> = (babelrc: BabelRC) => Promise<C>;
16export declare type BuildFn<C> = (config: C, dist: string) => void;
17export declare type ServerFnReturn = BundlerServer | Promise<BundlerServer>;
18export declare type ServerFn<C> = (config: C, hooks: ServerHooks) => ServerFnReturn;
19export interface BundlerConstructor<Config> {
20 args: Args;
21 config: ConfigFn<Config>;
22 server: ServerFn<Config>;
23 build: BuildFn<Config>;
24}
25export interface ConfigObj {
26 [key: string]: any;
27}
28export declare class Bundler<C = ConfigObj> {
29 private readonly args;
30 private config;
31 private server;
32 private builder;
33 constructor(params: BundlerConstructor<C>);
34 getConfig(env: Env): Promise<C>;
35 createServer(config: C): Promise<BundlerServer>;
36 build(config: C): Promise<void>;
37 private mountConfig;
38 private isProd;
39}