@farmfe/runtime
Version:
Runtime of Farm
40 lines (39 loc) • 1.94 kB
TypeScript
import { Module } from "./module.js";
import { type FarmRuntimePlugin, FarmRuntimePluginContainer } from "./plugin.js";
import { type Resource, ResourceLoader } from "./resource-loader.js";
type ModuleInitializationFunction = (module: Module, exports: any, __farm_require__: (moduleId: string) => any, __farm_dynamic_require__: (moduleId: string) => any) => void | Promise<void>;
export type ModuleInitialization = ModuleInitializationFunction & {
__farm_resource_pot__?: string;
};
export declare class ModuleSystem {
private modules;
private cache;
private externalModules;
private reRegisterModules;
publicPaths: string[];
dynamicResources: Resource[];
dynamicModuleResourcesMap: Record<string, number[]>;
resourceLoader: ResourceLoader;
pluginContainer: FarmRuntimePluginContainer;
targetEnv: "browser" | "node";
constructor();
require(moduleId: string, isCJS?: boolean): any;
farmDynamicRequire(moduleId: string): Promise<any>;
loadDynamicResourcesOnly(moduleId: string, force?: boolean): Promise<any>;
loadDynamicResources(moduleId: string, force?: boolean): Promise<any>;
register(moduleId: string, initializer: ModuleInitialization): void;
update(moduleId: string, init: ModuleInitialization): void;
delete(moduleId: string): boolean;
getModuleUrl(moduleId: string): string;
getCache(moduleId: string): Module | undefined;
clearCache(moduleId: string): boolean;
setInitialLoadedResources(resources: string[]): void;
setDynamicModuleResourcesMap(dynamicResources: Resource[], dynamicModuleResourcesMap: Record<string, number[]>): void;
setPublicPaths(publicPaths: string[]): void;
setPlugins(plugins: FarmRuntimePlugin[]): void;
addPlugin(plugin: FarmRuntimePlugin): void;
removePlugin(pluginName: string): void;
setExternalModules(externalModules: Record<string, any>): void;
bootstrap(): void;
}
export {};