Skip to content

Commit fe6b422

Browse files
committed
Fix for dts emit
1 parent c4a4c9a commit fe6b422

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

internal/printer/printer.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4403,6 +4403,9 @@ func (p *Printer) emitSourceFile(node *ast.SourceFile) {
44034403
p.emitShebangIfNeeded(node)
44044404
index = p.emitPrologueDirectives(node.Statements)
44054405
p.emitHelpers(node.AsNode())
4406+
if node.IsDeclarationFile {
4407+
p.emitTripleSlashDirectives(node)
4408+
}
44064409
}
44074410

44084411
// !!! Emit triple-slash directives
@@ -4420,6 +4423,22 @@ func (p *Printer) emitSourceFile(node *ast.SourceFile) {
44204423
p.commentsDisabled = savedCommentsDisabled
44214424
}
44224425

4426+
func (p *Printer) emitTripleSlashDirectives(node *ast.SourceFile) {
4427+
p.emitDirective("path", node.ReferencedFiles)
4428+
p.emitDirective("types", node.TypeReferenceDirectives)
4429+
p.emitDirective("lib", node.LibReferenceDirectives)
4430+
}
4431+
4432+
func (p *Printer) emitDirective(kind string, refs []*ast.FileReference) {
4433+
for _, ref := range refs {
4434+
var resolutionMode string
4435+
if ref.ResolutionMode != core.ResolutionModeNone {
4436+
resolutionMode = fmt.Sprintf(`resolution-mode="%s" `, core.IfElse(ref.ResolutionMode == core.ResolutionModeESM, "import", "require"))
4437+
}
4438+
p.writeComment(fmt.Sprintf("/// <reference %s=\"%s\" %s%s/>", kind, ref.FileName, resolutionMode, core.IfElse(ref.Preserve, `preserve="true" `, "")))
4439+
}
4440+
}
4441+
44234442
//
44244443
// Lists
44254444
//

0 commit comments

Comments
 (0)