1 | import { Config as Args, Env } from './commands/args';
|
2 | import { BabelRC } from './utils/babel-config';
|
3 | export interface Server {
|
4 | app: any;
|
5 | on: (event: string, cb: (server: any) => void) => void;
|
6 | close: () => void;
|
7 | }
|
8 | export interface ServerHooks {
|
9 | onCreateApp<A>(app: A): void;
|
10 | OnServerListening<S>(server: S): void;
|
11 | }
|
12 | export interface BundlerServer {
|
13 | start(): Promise<Server>;
|
14 | }
|
15 | export declare type ConfigFn<C> = (babelrc: BabelRC) => Promise<C>;
|
16 | export declare type BuildFn<C> = (config: C, dist: string) => void;
|
17 | export declare type ServerFnReturn = BundlerServer | Promise<BundlerServer>;
|
18 | export declare type ServerFn<C> = (config: C, hooks: ServerHooks) => ServerFnReturn;
|
19 | export interface BundlerConstructor<Config> {
|
20 | args: Args;
|
21 | config: ConfigFn<Config>;
|
22 | server: ServerFn<Config>;
|
23 | build: BuildFn<Config>;
|
24 | }
|
25 | export interface ConfigObj {
|
26 | [key: string]: any;
|
27 | }
|
28 | export 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 | }
|