@rushstack/heft-config-file
Version:
Configuration file loader for @rushstack/heft
46 lines • 2.86 kB
TypeScript
import type { ITerminal } from '@rushstack/terminal';
import type { IRigConfig } from '@rushstack/rig-package';
import { ConfigurationFileBase, type IConfigurationFileOptions } from './ConfigurationFileBase';
/**
* @beta
*/
export interface IProjectConfigurationFileOptions {
/**
* A project root-relative path to the configuration file that should be loaded.
*/
projectRelativeFilePath: string;
}
/**
* @beta
*/
export declare class ProjectConfigurationFile<TConfigurationFile> extends ConfigurationFileBase<TConfigurationFile, IProjectConfigurationFileOptions> {
/** {@inheritDoc IProjectConfigurationFileOptions.projectRelativeFilePath} */
readonly projectRelativeFilePath: string;
constructor(options: IConfigurationFileOptions<TConfigurationFile, IProjectConfigurationFileOptions>);
/**
* Find and return a configuration file for the specified project, automatically resolving
* `extends` properties and handling rigged configuration files. Will throw an error if a configuration
* file cannot be found in the rig or project config folder.
*/
loadConfigurationFileForProject(terminal: ITerminal, projectPath: string, rigConfig?: IRigConfig): TConfigurationFile;
/**
* Find and return a configuration file for the specified project, automatically resolving
* `extends` properties and handling rigged configuration files. Will throw an error if a configuration
* file cannot be found in the rig or project config folder.
*/
loadConfigurationFileForProjectAsync(terminal: ITerminal, projectPath: string, rigConfig?: IRigConfig): Promise<TConfigurationFile>;
/**
* This function is identical to {@link ProjectConfigurationFile.loadConfigurationFileForProject}, except
* that it returns `undefined` instead of throwing an error if the configuration file cannot be found.
*/
tryLoadConfigurationFileForProject(terminal: ITerminal, projectPath: string, rigConfig?: IRigConfig): TConfigurationFile | undefined;
/**
* This function is identical to {@link ProjectConfigurationFile.loadConfigurationFileForProjectAsync}, except
* that it returns `undefined` instead of throwing an error if the configuration file cannot be found.
*/
tryLoadConfigurationFileForProjectAsync(terminal: ITerminal, projectPath: string, rigConfig?: IRigConfig): Promise<TConfigurationFile | undefined>;
protected _tryLoadConfigurationFileInRig(terminal: ITerminal, rigConfig: IRigConfig, visitedConfigurationFilePaths: Set<string>): TConfigurationFile | undefined;
protected _tryLoadConfigurationFileInRigAsync(terminal: ITerminal, rigConfig: IRigConfig, visitedConfigurationFilePaths: Set<string>): Promise<TConfigurationFile | undefined>;
private _getConfigurationFilePathForProject;
}
//# sourceMappingURL=ProjectConfigurationFile.d.ts.map