UNPKG

@teambit/bundler

Version:
122 lines (121 loc) 4.18 kB
import type { PubsubMain } from '@teambit/pubsub'; import type { Component } from '@teambit/component'; import type { DependencyResolverMain } from '@teambit/dependency-resolver'; import type { EnvsMain } from '@teambit/envs'; import type { GraphqlMain } from '@teambit/graphql'; import type { SlotRegistry } from '@teambit/harmony'; import type { BrowserRuntime } from './browser-runtime'; import type { ComponentServer } from './component-server'; import type { BundlerContext } from './bundler-context'; import { DevServerService } from './dev-server.service'; import type { DevServer } from './dev-server'; export type DevServerTransformer = (devServer: DevServer, { envId }: { envId: string; }) => DevServer; export type OnPreDevServerCreated = (newCompsWithoutDevServer: Component[]) => Promise<void>; export type BrowserRuntimeSlot = SlotRegistry<BrowserRuntime>; export type DevServerTransformerSlot = SlotRegistry<DevServerTransformer>; export type OnPreDevServerCreatedSlot = SlotRegistry<OnPreDevServerCreated>; export type BundlerConfig = { dedicatedEnvDevServers: string[]; }; /** * bundler extension. */ export declare class BundlerMain { readonly config: BundlerConfig; /** * Pubsub extension. */ private pubsub; /** * environments extension. */ private envs; /** * dev server service. */ private devService; /** * browser runtime slot. */ private runtimeSlot; /** * dev server transformer slot. */ private devServerTransformerSlot; /** * pre-dev-server operation slot. */ private onPreDevServerCreatedSlot; private graphql; /** * component servers. */ private _componentServers; constructor(config: BundlerConfig, /** * Pubsub extension. */ pubsub: PubsubMain, /** * environments extension. */ envs: EnvsMain, /** * dev server service. */ devService: DevServerService, /** * browser runtime slot. */ runtimeSlot: BrowserRuntimeSlot, /** * dev server transformer slot. */ devServerTransformerSlot: DevServerTransformerSlot, /** * pre-dev-server operation slot. */ onPreDevServerCreatedSlot: OnPreDevServerCreatedSlot, graphql: GraphqlMain); addNewDevServers(newCompsWithoutDevServers: Component[]): Promise<ComponentServer[]>; devServer(components: Component[], opts?: { configureProxy?: boolean; }): Promise<ComponentServer[]>; /** * get a dev server instance containing a component. * @param component */ getComponentServer(component: Component): undefined | ComponentServer; /** * compute entry files for bundling components in a given execution context. */ computeEntries(context: BundlerContext): Promise<string[]>; /** * register a new browser runtime environment. * @param browserRuntime */ registerTarget(browserRuntime: BrowserRuntime[]): this; /** * register a new dev server transformer. * @param devServerTransformer */ registerDevServerTransformer(devServerTransformer: DevServerTransformer): this; /** * register a new pre-dev-server compiler. * @param onPreDevServerCreated */ registerOnPreDevServerCreated(onPreDevServerCreated: OnPreDevServerCreated): this; private indexByComponent; static slots: (((registerFn: () => string) => SlotRegistry<BrowserRuntime>) | ((registerFn: () => string) => SlotRegistry<DevServerTransformerSlot>) | ((registerFn: () => string) => SlotRegistry<OnPreDevServerCreatedSlot>))[]; static runtime: import("@teambit/harmony").RuntimeDefinition; static dependencies: import("@teambit/harmony").Aspect[]; static defaultConfig: { dedicatedEnvDevServers: never[]; }; static provider([pubsub, envs, graphql, dependencyResolver]: [PubsubMain, EnvsMain, GraphqlMain, DependencyResolverMain], config: any, [runtimeSlot, devServerTransformerSlot, onPreDevServerCreatedSlot]: [ BrowserRuntimeSlot, DevServerTransformerSlot, OnPreDevServerCreatedSlot ]): Promise<BundlerMain>; }