UNPKG

@farmfe/core

Version:

Farm is a extremely fast web build tool written in Rust. Farm can start a project in milliseconds and perform HMR within 10ms, making it much faster than similar tools like webpack and vite.

56 lines (55 loc) 2.18 kB
/// <reference types="node" resolution-mode="require"/> /// <reference types="node" resolution-mode="require"/> import type { Resource } from '../index.js'; import type { Config, JsUpdateResult } from '../types/binding.js'; import { type ILogger } from '../utils/logger.js'; export declare const VIRTUAL_FARM_DYNAMIC_IMPORT_SUFFIX = ".farm_dynamic_import_virtual_module"; /** * Cause the update process is async, we need to keep the update queue to make sure the update process is executed in order. * So the latter update process will not override the previous one if they are updating at the same time. */ export interface UpdateQueueItem { paths: string[]; resolve: (res: JsUpdateResult) => void; } export interface TracedModuleGraph { root: string; modules: Array<{ id: string; contentHash: string; packageName: string; packageVersion: string; }>; edges: Record<string, string[]>; reverseEdges: Record<string, string[]>; } export declare class Compiler { config: Config; private logger; private _bindingCompiler; private _updateQueue; private _onUpdateFinishQueue; compiling: boolean; constructor(config: Config, logger?: ILogger); traceDependencies(): Promise<object>; traceModuleGraph(): Promise<TracedModuleGraph>; compile(): Promise<void>; compileSync(): void; update(paths: string[], sync?: boolean, ignoreCompilingCheck?: boolean, generateUpdateResource?: boolean): Promise<JsUpdateResult>; hasModule(resolvedPath: string): boolean; getParentFiles(idOrResolvedPath: string): string[]; resources(): Record<string, Buffer>; resource(path: string): Buffer; resourcesMap(): Record<string, Resource>; writeResourcesToDisk(): void; callWriteResourcesHook(): void; removeOutputPathDir(): void; resolvedWatchPaths(): string[]; resolvedModulePaths(root: string): string[]; transformModulePath(root: string, p: string): string; onUpdateFinish(cb: () => void): void; outputPath(): string; addExtraWatchFile(root: string, paths: string[]): void; stats(): string; invalidateModule(moduleId: string): void; }