Skip to content

[api-extractor] Re-exported import * namespaces produce malformed .d.ts rollups (with bundledPackages) #4807

Open
@Josmithr

Description

@Josmithr

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

bugSomething isn't working as intendedeffort: mediumNeeds a somewhat experienced developerhelp wantedIf you're looking to contribute, this issue is a good place to start!repro confirmedThe issue comments included repro instructions, and the maintainers reproduced the problem

Type

No type

Projects

Status

Needs Investigation

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions