From f691747285a65fe965f3da277ea613d333f1ea26 Mon Sep 17 00:00:00 2001 From: Klimentiy Yudintsev Date: Sat, 9 May 2026 18:44:21 +0300 Subject: [PATCH] Fix: syntax error in resulting d.ts file --- apps/api-extractor/src/generators/ApiReportGenerator.ts | 6 +++++- apps/api-extractor/src/generators/DtsRollupGenerator.ts | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/apps/api-extractor/src/generators/ApiReportGenerator.ts b/apps/api-extractor/src/generators/ApiReportGenerator.ts index a18a62fe05f..c4db9b49bd8 100644 --- a/apps/api-extractor/src/generators/ApiReportGenerator.ts +++ b/apps/api-extractor/src/generators/ApiReportGenerator.ts @@ -21,6 +21,7 @@ import { AstNamespaceImport } from '../analyzer/AstNamespaceImport'; import type { AstEntity } from '../analyzer/AstEntity'; import type { IAstModuleExportInfo } from '../analyzer/AstModule'; import { SourceFileLocationFormatter } from '../analyzer/SourceFileLocationFormatter'; +import { SyntaxHelpers } from '../analyzer/SyntaxHelpers'; import { ExtractorMessageId } from '../api/ExtractorMessageId'; import type { ApiReportVariant } from '../api/IConfigFile'; import type { SymbolMetadata } from '../collector/SymbolMetadata'; @@ -224,7 +225,10 @@ export class ApiReportGenerator { if (collectorEntity.nameForEmit === exportedName) { exportClauses.push(collectorEntity.nameForEmit); } else { - exportClauses.push(`${collectorEntity.nameForEmit} as ${exportedName}`); + const safeExportedName: string = SyntaxHelpers.isSafeUnquotedMemberIdentifier(exportedName) + ? exportedName + : JSON.stringify(exportedName); + exportClauses.push(`${collectorEntity.nameForEmit} as ${safeExportedName}`); } } writer.writeLine(exportClauses.join(',\n')); diff --git a/apps/api-extractor/src/generators/DtsRollupGenerator.ts b/apps/api-extractor/src/generators/DtsRollupGenerator.ts index 9bb69345e05..cf2cc13300b 100644 --- a/apps/api-extractor/src/generators/DtsRollupGenerator.ts +++ b/apps/api-extractor/src/generators/DtsRollupGenerator.ts @@ -21,6 +21,7 @@ import type { DeclarationMetadata } from '../collector/DeclarationMetadata'; import { AstNamespaceImport } from '../analyzer/AstNamespaceImport'; import type { IAstModuleExportInfo } from '../analyzer/AstModule'; import { SourceFileLocationFormatter } from '../analyzer/SourceFileLocationFormatter'; +import { SyntaxHelpers } from '../analyzer/SyntaxHelpers'; import type { AstEntity } from '../analyzer/AstEntity'; /** @@ -216,7 +217,10 @@ export class DtsRollupGenerator { if (collectorEntity.nameForEmit === exportedName) { exportClauses.push(collectorEntity.nameForEmit); } else { - exportClauses.push(`${collectorEntity.nameForEmit} as ${exportedName}`); + const safeExportedName: string = SyntaxHelpers.isSafeUnquotedMemberIdentifier(exportedName) + ? exportedName + : JSON.stringify(exportedName); + exportClauses.push(`${collectorEntity.nameForEmit} as ${safeExportedName}`); } } writer.writeLine(exportClauses.join(',\n'));