Skip to content

[rig-package] Expose an IRigConfig interface and use it in consuming projects' APIs. #4212

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 19, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading