Skip to content

Commit 19f0b03

Browse files
committed
Expose an 'IRigConfig' interface and use it in consuming projects' APIs.
1 parent 4c121cb commit 19f0b03

File tree

16 files changed

+362
-215
lines changed

16 files changed

+362
-215
lines changed

apps/api-extractor/src/api/ExtractorConfig.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import {
1616
Path,
1717
NewlineKind
1818
} from '@rushstack/node-core-library';
19-
import { RigConfig } from '@rushstack/rig-package';
19+
import { type IRigConfig, RigConfig } from '@rushstack/rig-package';
2020

2121
import { IConfigFile, IExtractorMessagesConfig } from './IConfigFile';
2222
import { PackageMetadataManager } from '../analyzer/PackageMetadataManager';
@@ -71,7 +71,7 @@ export interface IExtractorConfigLoadForFolderOptions {
7171
/**
7272
* An already constructed `RigConfig` object. If omitted, then a new `RigConfig` object will be constructed.
7373
*/
74-
rigConfig?: RigConfig;
74+
rigConfig?: IRigConfig;
7575
}
7676

7777
/**
@@ -426,7 +426,7 @@ export class ExtractorConfig {
426426
// If We didn't find it in <packageFolder>/api-extractor.json or <packageFolder>/config/api-extractor.json
427427
// then check for a rig package
428428
if (packageFolder) {
429-
let rigConfig: RigConfig;
429+
let rigConfig: IRigConfig;
430430
if (options.rigConfig) {
431431
// The caller provided an already solved RigConfig. Double-check that it is for the right project.
432432
if (!Path.isEqual(options.rigConfig.projectFolderPath, packageFolder)) {

apps/heft/src/configuration/HeftConfiguration.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import {
1111
type ITerminal
1212
} from '@rushstack/node-core-library';
1313
import { trueCasePathSync } from 'true-case-path';
14-
import { RigConfig } from '@rushstack/rig-package';
14+
import { type IRigConfig, RigConfig } from '@rushstack/rig-package';
1515

1616
import { Constants } from '../utilities/Constants';
1717
import { RigPackageResolver, type IRigPackageResolver } from './RigPackageResolver';
@@ -39,7 +39,7 @@ export class HeftConfiguration {
3939
private _projectConfigFolderPath: string | undefined;
4040
private _cacheFolderPath: string | undefined;
4141
private _tempFolderPath: string | undefined;
42-
private _rigConfig: RigConfig | undefined;
42+
private _rigConfig: IRigConfig | undefined;
4343
private _globalTerminal!: Terminal;
4444
private _terminalProvider!: ITerminalProvider;
4545
private _rigPackageResolver!: RigPackageResolver;
@@ -80,7 +80,7 @@ export class HeftConfiguration {
8080
/**
8181
* The rig.json configuration for this project, if present.
8282
*/
83-
public get rigConfig(): RigConfig {
83+
public get rigConfig(): IRigConfig {
8484
if (!this._rigConfig) {
8585
throw new InternalError(
8686
'The rigConfig cannot be accessed until HeftConfiguration.checkForRigAsync() has been called'

apps/heft/src/configuration/RigPackageResolver.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
type INodePackageJson,
1010
type IPackageJson
1111
} from '@rushstack/node-core-library';
12-
import type { RigConfig } from '@rushstack/rig-package';
12+
import type { IRigConfig } from '@rushstack/rig-package';
1313

1414
/**
1515
* Rig resolves requested tools from the project's Heft rig.
@@ -29,7 +29,7 @@ export interface IRigPackageResolver {
2929
export interface IRigPackageResolverOptions {
3030
buildFolder: string;
3131
projectPackageJson: IPackageJson;
32-
rigConfig: RigConfig;
32+
rigConfig: IRigConfig;
3333
}
3434

3535
/**
@@ -38,7 +38,7 @@ export interface IRigPackageResolverOptions {
3838
export class RigPackageResolver implements IRigPackageResolver {
3939
private readonly _buildFolder: string;
4040
private readonly _projectPackageJson: IPackageJson;
41-
private readonly _rigConfig: RigConfig;
41+
private readonly _rigConfig: IRigConfig;
4242
private readonly _packageJsonLookup: PackageJsonLookup = new PackageJsonLookup();
4343
private readonly _resolverCache: Map<string, Promise<string>> = new Map();
4444

@@ -100,7 +100,7 @@ export class RigPackageResolver implements IRigPackageResolver {
100100
}
101101

102102
// See if the project rig has a regular dependency on the package
103-
const rigConfiguration: RigConfig = this._rigConfig;
103+
const rigConfiguration: IRigConfig = this._rigConfig;
104104
if (rigConfiguration.rigFound) {
105105
const rigFolder: string = rigConfiguration.getResolvedProfileFolder();
106106
const rigPackageJsonPath: string | undefined =

apps/heft/src/utilities/CoreConfigFiles.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
type IJsonPathMetadataResolverOptions
1010
} from '@rushstack/heft-config-file';
1111
import { Import, PackageJsonLookup, type ITerminal, InternalError } from '@rushstack/node-core-library';
12-
import type { RigConfig } from '@rushstack/rig-package';
12+
import type { IRigConfig } from '@rushstack/rig-package';
1313

1414
import type { IDeleteOperation } from '../plugins/DeleteFilesPlugin';
1515
import type { INodeServicePluginConfiguration } from '../plugins/NodeServicePlugin';
@@ -73,7 +73,7 @@ export class CoreConfigFiles {
7373
public static async loadHeftConfigurationFileForProjectAsync(
7474
terminal: ITerminal,
7575
projectPath: string,
76-
rigConfig?: RigConfig | undefined
76+
rigConfig?: IRigConfig | undefined
7777
): Promise<IHeftConfigurationJson> {
7878
if (!CoreConfigFiles._heftConfigFileLoader) {
7979
const pluginPackageResolver: (
@@ -197,7 +197,7 @@ export class CoreConfigFiles {
197197
public static async tryLoadNodeServiceConfigurationFileAsync(
198198
terminal: ITerminal,
199199
projectPath: string,
200-
rigConfig?: RigConfig | undefined
200+
rigConfig?: IRigConfig | undefined
201201
): Promise<INodeServicePluginConfiguration | undefined> {
202202
if (!CoreConfigFiles._nodeServiceConfigurationLoader) {
203203
const schemaObject: object = await import('../schemas/node-service.schema.json');

0 commit comments

Comments
 (0)