-
Notifications
You must be signed in to change notification settings - Fork 677
Description
Summary
I am trying to run API Extractor on declarations that include a re-export of default from a .d.cts file that uses export =.
API Extractor throws an internal error instead of analyzing the export.
The failure is reproducible in a minimal project with only two declaration files.
Repro steps
- Create a clean repro folder and files:
mkdir api-extractor-export-equals-repro
cd api-extractor-export-equals-repropackage.json
{
"name": "api-extractor-export-equals-repro",
"version": "0.0.0",
"private": true,
"devDependencies": {
"@microsoft/api-extractor": "7.57.6",
"typescript": "5.9.3"
}
}tsconfig.json
{
"compilerOptions": {
"target": "ES2022",
"module": "NodeNext",
"moduleResolution": "NodeNext",
"strict": true,
"skipLibCheck": true
},
"include": ["./**/*"]
}api-extractor.json
{
"$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
"mainEntryPointFilePath": "<projectFolder>/index.d.ts",
"bundledPackages": [],
"compiler": {
"tsconfigFilePath": "<projectFolder>/tsconfig.json"
},
"apiReport": {
"enabled": false,
"reportFolder": "<projectFolder>/etc"
},
"docModel": {
"enabled": false
},
"dtsRollup": {
"enabled": false
},
"tsdocMetadata": {
"enabled": false
},
"messages": {
"compilerMessageReporting": {
"default": { "logLevel": "warning" }
},
"extractorMessageReporting": {
"default": { "logLevel": "warning" }
},
"tsdocMessageReporting": {
"default": { "logLevel": "warning" }
}
}
}index.d.ts
export { default as ar } from "./ar.cjs";ar.d.cts
import type * as errors from "./errors.cjs";
declare function _default(): { localeError: errors.Error };
export = _default;errors.d.cts
export interface Error {
code: string;
}- Install and run:
npm install
npx api-extractor run --diagnostics --local --config ./api-extractor.jsonExpected result: API Extractor should analyze the export successfully (or emit a normal diagnostic if unsupported), but should not crash with an internal error.
Actual result: API Extractor throws:
ERROR: Internal Error: Unable to analyze the export "default" in
.../ar.d.cts
You have encountered a software defect. Please consider reporting the issue to the maintainers of this application.(Also prints: Analysis will use the bundled TypeScript version 5.9.3.)
Details
This looks like a default re-export resolution bug for .d.cts modules that use export =.
In this repro:
index.d.tsusesexport { default as ar } from "./ar.cjs"- target declaration
ar.d.ctsusesexport = _default
TypeScript models export = differently from default, and API Extractor appears to throw while resolving this path instead of mapping/handling it.
I also observed the same failure with @microsoft/api-extractor@7.57.7.
Standard questions
Please answer these questions to help us investigate your issue more quickly:
| Question | Answer |
|---|---|
@microsoft/api-extractor version? |
7.57.6 (also reproducible on 7.57.7) |
| Operating system? | Mac (Darwin) |
| API Extractor scenario? | rollups (.d.ts) |
| Would you consider contributing a PR? | Yes |
| TypeScript compiler version? | 5.9.3 (bundled by API Extractor in diagnostics output) |
Node.js version (node -v)? |
v24.13.0 |
Metadata
Metadata
Assignees
Labels
Type
Projects
Status