@teambit/bundler
Version:
68 lines (67 loc) • 2.44 kB
TypeScript
import type { EnvService, ExecutionContext, EnvDefinition, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';
import type { PubsubMain } from '@teambit/pubsub';
import type { DependencyResolverMain } from '@teambit/dependency-resolver';
import type { BrowserRuntimeSlot, DevServerTransformerSlot } from './bundler.main.runtime';
import { ComponentServer } from './component-server';
import type { DevServer } from './dev-server';
import type { DevServerContext } from './dev-server-context';
export type DevServerServiceOptions = {
dedicatedEnvDevServers?: string[];
};
type DevServiceTransformationMap = ServiceTransformationMap & {
/**
* Required for `bit start`
*/
getDevEnvId?: (context?: any) => string;
/**
* Returns and configures the dev server
* Required for `bit start`
*/
getDevServer?: (context: DevServerContext) => DevServer | Promise<DevServer>;
};
export type DevServerDescriptor = {
/**
* id of the dev server (e.g. webpack)
*/
id: string;
/**
* display name of the dev server (e.g. Webpack dev server)
*/
displayName: string;
/**
* icon of the configured dev server.
*/
icon: string;
/**
* string containing the config for display.
*/
config: string;
version?: string;
};
export declare class DevServerService implements EnvService<ComponentServer, DevServerDescriptor> {
private pubsub;
private dependencyResolver;
/**
* browser runtime slot
*/
private runtimeSlot;
private devServerTransformerSlot;
name: string;
constructor(pubsub: PubsubMain, dependencyResolver: DependencyResolverMain,
/**
* browser runtime slot
*/
runtimeSlot: BrowserRuntimeSlot, devServerTransformerSlot: DevServerTransformerSlot);
render(env: EnvDefinition, context: ExecutionContext[]): Promise<string>;
getDescriptor(environment: EnvDefinition, context?: ExecutionContext[]): Promise<DevServerDescriptor | undefined>;
transform(env: Env, envContext: EnvContext): DevServiceTransformationMap | undefined;
runOnce(contexts: ExecutionContext[], { dedicatedEnvDevServers }: DevServerServiceOptions): Promise<ComponentServer[]>;
mergeContext(): void;
private getComponentsFromContexts;
/**
* builds the execution context for the dev server.
*/
private buildContext;
private transformDevServer;
}
export {};