Skip to content

Commit

Permalink
Expose an 'IRigConfig' interface and use it in consuming projects' APIs.
Browse files Browse the repository at this point in the history
  • Loading branch information
iclanton committed Jun 19, 2023
1 parent 4c121cb commit 19f0b03
Show file tree
Hide file tree
Showing 16 changed files with 362 additions and 215 deletions.
6 changes: 3 additions & 3 deletions apps/api-extractor/src/api/ExtractorConfig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import {
Path,
NewlineKind
} from '@rushstack/node-core-library';
import { RigConfig } from '@rushstack/rig-package';
import { type IRigConfig, RigConfig } from '@rushstack/rig-package';

import { IConfigFile, IExtractorMessagesConfig } from './IConfigFile';
import { PackageMetadataManager } from '../analyzer/PackageMetadataManager';
Expand Down Expand Up @@ -71,7 +71,7 @@ export interface IExtractorConfigLoadForFolderOptions {
/**
* An already constructed `RigConfig` object. If omitted, then a new `RigConfig` object will be constructed.
*/
rigConfig?: RigConfig;
rigConfig?: IRigConfig;
}

/**
Expand Down Expand Up @@ -426,7 +426,7 @@ export class ExtractorConfig {
// If We didn't find it in <packageFolder>/api-extractor.json or <packageFolder>/config/api-extractor.json
// then check for a rig package
if (packageFolder) {
let rigConfig: RigConfig;
let rigConfig: IRigConfig;
if (options.rigConfig) {
// The caller provided an already solved RigConfig. Double-check that it is for the right project.
if (!Path.isEqual(options.rigConfig.projectFolderPath, packageFolder)) {
Expand Down
6 changes: 3 additions & 3 deletions apps/heft/src/configuration/HeftConfiguration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import {
type ITerminal
} from '@rushstack/node-core-library';
import { trueCasePathSync } from 'true-case-path';
import { RigConfig } from '@rushstack/rig-package';
import { type IRigConfig, RigConfig } from '@rushstack/rig-package';

import { Constants } from '../utilities/Constants';
import { RigPackageResolver, type IRigPackageResolver } from './RigPackageResolver';
Expand Down Expand Up @@ -39,7 +39,7 @@ export class HeftConfiguration {
private _projectConfigFolderPath: string | undefined;
private _cacheFolderPath: string | undefined;
private _tempFolderPath: string | undefined;
private _rigConfig: RigConfig | undefined;
private _rigConfig: IRigConfig | undefined;
private _globalTerminal!: Terminal;
private _terminalProvider!: ITerminalProvider;
private _rigPackageResolver!: RigPackageResolver;
Expand Down Expand Up @@ -80,7 +80,7 @@ export class HeftConfiguration {
/**
* The rig.json configuration for this project, if present.
*/
public get rigConfig(): RigConfig {
public get rigConfig(): IRigConfig {
if (!this._rigConfig) {
throw new InternalError(
'The rigConfig cannot be accessed until HeftConfiguration.checkForRigAsync() has been called'
Expand Down
8 changes: 4 additions & 4 deletions apps/heft/src/configuration/RigPackageResolver.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import {
type INodePackageJson,
type IPackageJson
} from '@rushstack/node-core-library';
import type { RigConfig } from '@rushstack/rig-package';
import type { IRigConfig } from '@rushstack/rig-package';

/**
* Rig resolves requested tools from the project's Heft rig.
Expand All @@ -29,7 +29,7 @@ export interface IRigPackageResolver {
export interface IRigPackageResolverOptions {
buildFolder: string;
projectPackageJson: IPackageJson;
rigConfig: RigConfig;
rigConfig: IRigConfig;
}

/**
Expand All @@ -38,7 +38,7 @@ export interface IRigPackageResolverOptions {
export class RigPackageResolver implements IRigPackageResolver {
private readonly _buildFolder: string;
private readonly _projectPackageJson: IPackageJson;
private readonly _rigConfig: RigConfig;
private readonly _rigConfig: IRigConfig;
private readonly _packageJsonLookup: PackageJsonLookup = new PackageJsonLookup();
private readonly _resolverCache: Map<string, Promise<string>> = new Map();

Expand Down Expand Up @@ -100,7 +100,7 @@ export class RigPackageResolver implements IRigPackageResolver {
}

// See if the project rig has a regular dependency on the package
const rigConfiguration: RigConfig = this._rigConfig;
const rigConfiguration: IRigConfig = this._rigConfig;
if (rigConfiguration.rigFound) {
const rigFolder: string = rigConfiguration.getResolvedProfileFolder();
const rigPackageJsonPath: string | undefined =
Expand Down
6 changes: 3 additions & 3 deletions apps/heft/src/utilities/CoreConfigFiles.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import {
type IJsonPathMetadataResolverOptions
} from '@rushstack/heft-config-file';
import { Import, PackageJsonLookup, type ITerminal, InternalError } from '@rushstack/node-core-library';
import type { RigConfig } from '@rushstack/rig-package';
import type { IRigConfig } from '@rushstack/rig-package';

import type { IDeleteOperation } from '../plugins/DeleteFilesPlugin';
import type { INodeServicePluginConfiguration } from '../plugins/NodeServicePlugin';
Expand Down Expand Up @@ -73,7 +73,7 @@ export class CoreConfigFiles {
public static async loadHeftConfigurationFileForProjectAsync(
terminal: ITerminal,
projectPath: string,
rigConfig?: RigConfig | undefined
rigConfig?: IRigConfig | undefined
): Promise<IHeftConfigurationJson> {
if (!CoreConfigFiles._heftConfigFileLoader) {
const pluginPackageResolver: (
Expand Down Expand Up @@ -197,7 +197,7 @@ export class CoreConfigFiles {
public static async tryLoadNodeServiceConfigurationFileAsync(
terminal: ITerminal,
projectPath: string,
rigConfig?: RigConfig | undefined
rigConfig?: IRigConfig | undefined
): Promise<INodeServicePluginConfiguration | undefined> {
if (!CoreConfigFiles._nodeServiceConfigurationLoader) {
const schemaObject: object = await import('../schemas/node-service.schema.json');
Expand Down

0 comments on commit 19f0b03

Please sign in to comment.