1 | import Plugin, { Tree } from 'broccoli-plugin';
|
2 | import Splitter, { BundleDependencies } from './splitter';
|
3 | import Package from './package';
|
4 | import BundleConfig from './bundle-config';
|
5 | export interface BundlerPluginOptions {
|
6 | consoleWrite: (msg: string) => void;
|
7 | environment: "development" | "test" | "production";
|
8 | splitter: Splitter;
|
9 | packages: Set<Package>;
|
10 | bundles: BundleConfig;
|
11 | }
|
12 | export interface BuildResult {
|
13 | entrypoints: Map<string, string[]>;
|
14 | lazyAssets: string[];
|
15 | dir: string;
|
16 | }
|
17 | export interface BundlerHook {
|
18 | build(modules: Map<string, BundleDependencies>): Promise<BuildResult>;
|
19 | }
|
20 | export default class Bundler extends Plugin {
|
21 | private options;
|
22 | private lastDeps;
|
23 | private cachedBundlerHook;
|
24 | private didEnsureDirs;
|
25 | constructor(allAppTree: Tree, options: BundlerPluginOptions);
|
26 | private readonly publicAssetURL;
|
27 | readonly bundlerHook: BundlerHook;
|
28 | build(): Promise<void>;
|
29 | private ensureDirs;
|
30 | private addEntrypoints;
|
31 | private addLazyAssets;
|
32 | }
|