diff --git a/apps/api-extractor/src/api/ExtractorConfig.ts b/apps/api-extractor/src/api/ExtractorConfig.ts index 60e1904ad4..33192aa2e2 100644 --- a/apps/api-extractor/src/api/ExtractorConfig.ts +++ b/apps/api-extractor/src/api/ExtractorConfig.ts @@ -136,6 +136,14 @@ export interface IExtractorConfigPrepareOptions { * `@microsoft/api-extractor/extends/tsdoc-base.json`. */ tsdocConfigFile?: TSDocConfigFile; + + /** + * When preparing the configuration object, folder and file paths referenced in the configuration are checked + * for existence, and an error is reported if they are not found. This option can be used to disable this + * check for the main entry point module. This may be useful when preparing a configuration file for an + * un-built project. + */ + ignoreMissingEntryPoint?: boolean; } interface IExtractorConfigParameters { @@ -811,7 +819,7 @@ export class ExtractorConfig { ); } - if (!FileSystem.exists(mainEntryPointFilePath)) { + if (!options.ignoreMissingEntryPoint && !FileSystem.exists(mainEntryPointFilePath)) { throw new Error('The "mainEntryPointFilePath" path does not exist: ' + mainEntryPointFilePath); } diff --git a/common/changes/@microsoft/api-extractor/user-danade-ApiExtractorConfigLoad_2022-06-15-22-45.json b/common/changes/@microsoft/api-extractor/user-danade-ApiExtractorConfigLoad_2022-06-15-22-45.json new file mode 100644 index 0000000000..4e80aeec12 --- /dev/null +++ b/common/changes/@microsoft/api-extractor/user-danade-ApiExtractorConfigLoad_2022-06-15-22-45.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@microsoft/api-extractor", + "comment": "Add support for the \"ignoreMissingEntryPoint\" ExtractorConfig option to allow for loading an ExtractorConfig before the target project is built.", + "type": "minor" + } + ], + "packageName": "@microsoft/api-extractor" +} \ No newline at end of file diff --git a/common/reviews/api/api-extractor.api.md b/common/reviews/api/api-extractor.api.md index 55170ad404..476b16e9b0 100644 --- a/common/reviews/api/api-extractor.api.md +++ b/common/reviews/api/api-extractor.api.md @@ -243,6 +243,7 @@ export interface IExtractorConfigLoadForFolderOptions { export interface IExtractorConfigPrepareOptions { configObject: IConfigFile; configObjectFullPath: string | undefined; + ignoreMissingEntryPoint?: boolean; packageJson?: INodePackageJson | undefined; packageJsonFullPath: string | undefined; projectFolderLookupToken?: string;