UNPKG

1.02 kBTypeScriptView Raw
1import Plugin, { Tree } from 'broccoli-plugin';
2import Splitter, { BundleDependencies } from './splitter';
3import Package from './package';
4import BundleConfig from './bundle-config';
5export interface BundlerPluginOptions {
6 consoleWrite: (msg: string) => void;
7 environment: "development" | "test" | "production";
8 splitter: Splitter;
9 packages: Set<Package>;
10 bundles: BundleConfig;
11}
12export interface BuildResult {
13 entrypoints: Map<string, string[]>;
14 lazyAssets: string[];
15 dir: string;
16}
17export interface BundlerHook {
18 build(modules: Map<string, BundleDependencies>): Promise<BuildResult>;
19}
20export 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}