@foxpage/foxpage-types
Version:
foxpage sdk types
23 lines (22 loc) • 1.24 kB
TypeScript
import { FoxpageHooks } from '../../hook';
import { ManagerBase } from '../main';
import { FPPackage, FPPackageResponse, PackageFetchOption, PackageFreshOption, PackageNamedVersion, PrePackage } from '../package';
export interface PluginManager {
loadPlugins(): void;
getPlugins(): string[];
hasPlugin(name: string): boolean;
getHooks(mode?: number): FoxpageHooks | undefined;
destroy(): void;
}
export interface CSRPluginManager<T = FPPackage> extends ManagerBase<T> {
addPlugin(content: FPPackage): PrePackage | null;
removePlugins(names: string[]): void;
getPlugin(name: string, version?: string): Promise<PrePackage | undefined>;
getPlugins(names: string[]): Promise<PrePackage[]>;
getPluginsById(ids: string[]): Promise<PrePackage[]>;
getPluginSync(name: string, version?: string): PrePackage | null;
getLocalPlugin(name: string, version?: string): Promise<PrePackage | null>;
freshPlugins(params?: PackageFreshOption): Promise<PrePackage[]>;
fetchPlugins(packageIds?: string[], opt?: Pick<PackageFreshOption, 'strategy'>): Promise<FPPackage[]>;
fetchPluginsByNamedVersions(nameVersions: PackageNamedVersion[], opt?: PackageFetchOption): Promise<FPPackageResponse[]>;
}