es-dev-server
Version:
Development server for modern web apps
37 lines (36 loc) • 1.23 kB
TypeScript
/// <reference types="node" />
import { FSWatcher } from 'chokidar';
import Koa, { Context } from 'koa';
import { Server } from 'net';
import { ParsedConfig } from './config';
import { MessageChannel } from './utils/MessageChannel';
declare type ServeResult = undefined | null | {
body: string;
type?: string;
headers?: Record<string, string>;
};
declare type TransformResult = undefined | null | {
body?: string;
headers?: Record<string, string>;
transformCache?: boolean;
};
declare type ResolveResult = undefined | null | string;
declare type ResolveMimeTypeResult = undefined | null | string;
interface ServerArgs {
config: ParsedConfig;
app: Koa;
server: Server;
fileWatcher: FSWatcher;
messageChannel?: MessageChannel;
}
export interface Plugin {
serverStart?(args: ServerArgs): void | Promise<void>;
serve?(context: Context): ServeResult | Promise<ServeResult>;
transform?(context: Context): TransformResult | Promise<TransformResult>;
resolveImport?(args: {
source: string;
context: Context;
}): ResolveResult | Promise<ResolveResult>;
resolveMimeType?(context: Context): ResolveMimeTypeResult | Promise<ResolveMimeTypeResult>;
}
export {};