@rushstack/heft
Version:
Build all your JavaScript projects the same way: A way that works.
28 lines • 1.55 kB
TypeScript
import { HeftPluginHost } from './HeftPluginHost';
import type { InternalHeftSession } from './InternalHeftSession';
import type { IHeftConfigurationJsonPluginSpecifier } from '../utilities/CoreConfigFiles';
import type { HeftLifecyclePluginDefinition } from '../configuration/HeftPluginDefinition';
import { HeftLifecycleSession, type IHeftLifecycleHooks, type IHeftLifecycleSession } from './HeftLifecycleSession';
import type { ScopedLogger } from './logging/ScopedLogger';
export interface IHeftLifecycleContext {
lifecycleSession?: HeftLifecycleSession;
pluginOptions?: object;
}
export declare class HeftLifecycle extends HeftPluginHost {
private readonly _internalHeftSession;
private readonly _lifecyclePluginSpecifiers;
private readonly _lifecycleHooks;
private readonly _lifecycleContextByDefinition;
private readonly _lifecyclePluginsByDefinition;
private _lifecycleLogger;
private _isInitialized;
get hooks(): IHeftLifecycleHooks;
get pluginDefinitions(): Iterable<HeftLifecyclePluginDefinition>;
constructor(internalHeftSession: InternalHeftSession, lifecyclePluginSpecifiers: IHeftConfigurationJsonPluginSpecifier[]);
protected applyPluginsInternalAsync(): Promise<void>;
ensureInitializedAsync(): Promise<void>;
get lifecycleLogger(): ScopedLogger;
getSessionForPluginDefinitionAsync(pluginDefinition: HeftLifecyclePluginDefinition): Promise<IHeftLifecycleSession>;
private _getLifecyclePluginForPluginDefinitionAsync;
}
//# sourceMappingURL=HeftLifecycle.d.ts.map