diff --git a/apps/api-extractor/src/api/ExtractorConfig.ts b/apps/api-extractor/src/api/ExtractorConfig.ts index f3e33f4682..080902d37f 100644 --- a/apps/api-extractor/src/api/ExtractorConfig.ts +++ b/apps/api-extractor/src/api/ExtractorConfig.ts @@ -33,6 +33,7 @@ import { PackageMetadataManager } from '../analyzer/PackageMetadataManager'; import { MessageRouter } from '../collector/MessageRouter'; import type { IApiModelGenerationOptions } from '../generators/ApiModelGenerator'; import apiExtractorSchema from '../schemas/api-extractor.schema.json'; +import apiExtractorDefaults from '../schemas/api-extractor-defaults.json'; /** * Tokens used during variable expansion of path fields from api-extractor.json. @@ -228,9 +229,9 @@ interface IExtractorConfigParameters { enumMemberOrder: EnumMemberOrder; } -const _defaultConfig: Partial = JsonFile.load( - path.join(__dirname, '../schemas/api-extractor-defaults.json') -); +// The defaults file deliberately omits fields that are required once a section is used +// (for example "apiReport.enabled"), so it does not structurally match IConfigFile. +const _defaultConfig: Partial = apiExtractorDefaults as unknown as Partial; /** * Match all three flavors for type declaration files (.d.ts, .d.mts, .d.cts) diff --git a/apps/api-extractor/src/schemas/api-extractor-defaults.json b/apps/api-extractor/src/schemas/api-extractor-defaults.json index bb6b6157aa..a5401209c4 100644 --- a/apps/api-extractor/src/schemas/api-extractor-defaults.json +++ b/apps/api-extractor/src/schemas/api-extractor-defaults.json @@ -1,8 +1,6 @@ { "projectFolder": "", - // ("mainEntryPointFilePath" is required) - "bundledPackages": [], "newlineKind": "crlf", @@ -15,7 +13,6 @@ }, "apiReport": { - // ("enabled" is required) "reportFileName": ".api.md", "reportFolder": "/etc/", "reportTempFolder": "/temp/", @@ -23,13 +20,11 @@ }, "docModel": { - // ("enabled" is required) "apiJsonFilePath": "/temp/.api.json", "includeForgottenExports": false }, "dtsRollup": { - // ("enabled" is required) "untrimmedFilePath": "/dist/.d.ts", "alphaTrimmedFilePath": "", "betaTrimmedFilePath": "", diff --git a/common/changes/@microsoft/api-extractor/fix-api-extractor-esm-bundling_2026-08-17-04-39-03.json b/common/changes/@microsoft/api-extractor/fix-api-extractor-esm-bundling_2026-08-17-04-39-03.json new file mode 100644 index 0000000000..98066ac42c --- /dev/null +++ b/common/changes/@microsoft/api-extractor/fix-api-extractor-esm-bundling_2026-08-17-04-39-03.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "comment": "Fix an error that occurred when `@microsoft/api-extractor` was bundled into ESM output, caused by loading the default config from a `__dirname`-relative path at module initialization.", + "type": "patch", + "packageName": "@microsoft/api-extractor" + } + ], + "packageName": "@microsoft/api-extractor" +}