@rushstack/heft
Version:
Build all your JavaScript projects the same way: A way that works.
24 lines • 1.33 kB
TypeScript
import type { ITerminal } from '@rushstack/terminal';
import type { HeftPluginDefinitionBase } from '../configuration/HeftPluginDefinition';
import type { IHeftPlugin } from './IHeftPlugin';
export declare abstract class HeftPluginHost {
private readonly _pluginAccessRequestHooks;
private _pluginsApplied;
applyPluginsAsync(terminal: ITerminal): Promise<void>;
protected abstract applyPluginsInternalAsync(): Promise<void>;
/**
* Registers a callback used to provide access to a requested plugin via the plugin accessor.
*/
requestAccessToPluginByName<T extends object>(requestorName: string, pluginToAccessPackage: string, pluginToAccessName: string, accessorCallback: (pluginAccessor: T) => void): void;
/**
* Gets the name of the hook that is registered with the plugin access request hook.
*/
getPluginHookName(pluginPackageName: string, pluginName: string): string;
/**
* Resolves all plugin requests for the specified plugin. All plugins that requested access to the
* specified plugin will have their callbacks invoked, and will be provided with the accessor for
* the specified plugin.
*/
protected resolvePluginAccessRequests(plugin: IHeftPlugin, pluginDefinition: HeftPluginDefinitionBase): void;
}
//# sourceMappingURL=HeftPluginHost.d.ts.map