@rushstack/heft
Version:
Build all your JavaScript projects the same way: A way that works.
61 lines • 2.8 kB
TypeScript
import { HeftLifecyclePluginDefinition, type HeftPluginDefinitionBase, HeftTaskPluginDefinition, type IHeftLifecyclePluginDefinitionJson, type IHeftTaskPluginDefinitionJson } from './HeftPluginDefinition';
import type { IHeftConfigurationJsonPluginSpecifier } from '../utilities/CoreConfigFiles';
export interface IHeftPluginConfigurationJson {
lifecyclePlugins?: IHeftLifecyclePluginDefinitionJson[];
taskPlugins?: IHeftTaskPluginDefinitionJson[];
}
/**
* Loads and validates the heft-plugin.json file.
*/
export declare class HeftPluginConfiguration {
private static _jsonSchema;
private static _pluginConfigurationPromises;
private readonly _heftPluginConfigurationJson;
private _lifecyclePluginDefinitions;
private _lifecyclePluginDefinitionsMap;
private _taskPluginDefinitions;
private _taskPluginDefinitionsMap;
/**
* The path to the root of the package that contains the heft-plugin.json file.
*/
readonly packageRoot: string;
/**
* The package name of the package that contains the heft-plugin.json file.
*/
readonly packageName: string;
private constructor();
/**
* Load the heft-plugin.json file from the specified package.
*/
static loadFromPackageAsync(packageRoot: string, packageName: string): Promise<HeftPluginConfiguration>;
/**
* Returns a loaded plugin definition for the provided specifier. Specifiers are normally obtained from the
* heft.json file.
*/
getPluginDefinitionBySpecifier(pluginSpecifier: IHeftConfigurationJsonPluginSpecifier): HeftPluginDefinitionBase;
/**
* Returns if the provided plugin definition is a lifecycle plugin definition.
*/
isLifecyclePluginDefinition(pluginDefinition: HeftPluginDefinitionBase): pluginDefinition is HeftLifecyclePluginDefinition;
/**
* Returns if the provided plugin definition is a task plugin definition.
*/
isTaskPluginDefinition(pluginDefinition: HeftPluginDefinitionBase): pluginDefinition is HeftTaskPluginDefinition;
/**
* Returns a loaded lifecycle plugin definition for the provided plugin name. If one can't be found,
* returns undefined.
*/
tryGetLifecyclePluginDefinitionByName(lifecyclePluginName: string): HeftLifecyclePluginDefinition | undefined;
/**
* Returns a loaded task plugin definition for the provided plugin name. If one can't be found,
* returns undefined.
*/
tryGetTaskPluginDefinitionByName(taskPluginName: string): HeftTaskPluginDefinition | undefined;
private _getLifecyclePluginDefinitions;
/**
* Task plugin definitions sourced from the heft-plugin.json file.
*/
private _getTaskPluginDefinitions;
private _validate;
}
//# sourceMappingURL=HeftPluginConfiguration.d.ts.map