MCPcopy Index your code
hub / github.com/microsoft/typescript-go / emitMappedType

Method emitMappedType

internal/printer/printer.go:2137–2191  ·  view source on GitHub ↗
(node *ast.MappedTypeNode)

Source from the content-addressed store, hash-verified

2135}
2136
2137func (p *Printer) emitMappedType(node *ast.MappedTypeNode) {
2138 state := p.enterNode(node.AsNode())
2139 singleLine := p.shouldEmitOnSingleLine(node.AsNode())
2140 p.writePunctuation("{")
2141 if singleLine {
2142 p.writeSpace()
2143 } else {
2144 p.writeLine()
2145 p.increaseIndent()
2146 }
2147 if node.ReadonlyToken != nil {
2148 p.emitTokenNode(node.ReadonlyToken)
2149 if node.ReadonlyToken.Kind != ast.KindReadonlyKeyword {
2150 p.writeKeyword("readonly")
2151 }
2152 p.writeSpace()
2153 }
2154 p.writePunctuation("[")
2155 p.emitMappedTypeParameter(node.TypeParameter.AsTypeParameterDeclaration())
2156 if node.NameType != nil {
2157 p.writeSpace()
2158 p.writeKeyword("as")
2159 p.writeSpace()
2160 p.emitTypeNodeOutsideExtends(node.NameType)
2161 }
2162 p.writePunctuation("]")
2163 if node.QuestionToken != nil {
2164 p.emitPunctuationNode(node.QuestionToken)
2165 if node.QuestionToken.Kind != ast.KindQuestionToken {
2166 p.writePunctuation("?")
2167 }
2168 }
2169 p.writePunctuation(":")
2170 p.writeSpace()
2171 p.emitTypeNodeOutsideExtends(node.Type)
2172 p.writeTrailingSemicolon()
2173 if node.Members != nil {
2174 if len(node.Members.Nodes) > 0 {
2175 if singleLine {
2176 p.writeSpace()
2177 } else {
2178 p.writeLine()
2179 }
2180 p.emitList((*Printer).emitTypeElement, node.AsNode(), node.Members, LFPreserveLines)
2181 }
2182 }
2183 if singleLine {
2184 p.writeSpace()
2185 } else {
2186 p.writeLine()
2187 p.decreaseIndent()
2188 }
2189 p.writePunctuation("}")
2190 p.exitNode(node.AsNode(), state)
2191}
2192
2193func (p *Printer) emitLiteralType(node *ast.LiteralTypeNode) {
2194 state := p.enterNode(node.AsNode())

Callers 1

emitTypeNodeMethod · 0.95

Calls 15

enterNodeMethod · 0.95
writePunctuationMethod · 0.95
writeSpaceMethod · 0.95
writeLineMethod · 0.95
increaseIndentMethod · 0.95
emitTokenNodeMethod · 0.95
writeKeywordMethod · 0.95
emitPunctuationNodeMethod · 0.95

Tested by

no test coverage detected