Description
Summary
See this repo for a repro of the issue: https://github.com/Josmithr/api-extractor-playground/tree/re-export-module-namespace
The repo contains 2 packages, package-a
and package-b
.
package-b
depends on package-a
, and both are configured with API-Extractor.
In this scenario, package-a
contains a single root export, which is a "namespace" generated via:
package-a/src/index.ts
import * as A from './NamespaceModule.js';
export { A };
It's type rollup, generated by API-Extractor looks like this:
package-a/dist/rollup.d.ts
declare namespace A {
export { Foo, bar, Baz };
}
export { A };
/** @public */
declare const bar = 5;
/** @public */
declare interface Baz {
value: string;
}
/** @public */
declare class Foo {}
export {};
package-b
also contains a single root export, which is simply a re-export of namespace A
from package-a
.
It is also configured with package-a
specified in its bundledPackages
.
Its export looks like this:
package-b/src/index.ts
export { A } from 'package-a';
I would expect package-b
's type roll-up to look identical to that of package-a
, but instead, a malformed rollup is generated:
package-b/dist/rollup.d.ts with bundledPackages
export declare namespace A {
{
Foo, bar, Baz;
}
}
export {};
package-b/dist/rollup.d.ts WITHOUT bundledPackages
import { A } from "package-a";
export { A }
Notice that the necessary imports are missing for Foo
, bar
, and Baz
.
Standard questions
Please answer these questions to help us investigate your issue more quickly:
Question | Answer |
---|---|
@microsoft/api-extractor version? |
7.47.0 |
Operating system? | Linux (GitHub Codespace) |
API Extractor scenario? | reporting (.api.md) / rollups (.d.ts) / docs (.api.json) |
Would you consider contributing a PR? | Yes |
TypeScript compiler version? | 5.5.2 |
Node.js version (node -v )? |
20.12.1 |
Metadata
Metadata
Assignees
Labels
Type
Projects
Status