You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
145 lines
2.9 KiB
145 lines
2.9 KiB
"use strict"; |
|
|
|
Object.defineProperty(exports, "__esModule", { |
|
value: true |
|
}); |
|
exports.JSXAttribute = JSXAttribute; |
|
exports.JSXClosingElement = JSXClosingElement; |
|
exports.JSXClosingFragment = JSXClosingFragment; |
|
exports.JSXElement = JSXElement; |
|
exports.JSXEmptyExpression = JSXEmptyExpression; |
|
exports.JSXExpressionContainer = JSXExpressionContainer; |
|
exports.JSXFragment = JSXFragment; |
|
exports.JSXIdentifier = JSXIdentifier; |
|
exports.JSXMemberExpression = JSXMemberExpression; |
|
exports.JSXNamespacedName = JSXNamespacedName; |
|
exports.JSXOpeningElement = JSXOpeningElement; |
|
exports.JSXOpeningFragment = JSXOpeningFragment; |
|
exports.JSXSpreadAttribute = JSXSpreadAttribute; |
|
exports.JSXSpreadChild = JSXSpreadChild; |
|
exports.JSXText = JSXText; |
|
|
|
function JSXAttribute(node) { |
|
this.print(node.name, node); |
|
|
|
if (node.value) { |
|
this.token("="); |
|
this.print(node.value, node); |
|
} |
|
} |
|
|
|
function JSXIdentifier(node) { |
|
this.word(node.name); |
|
} |
|
|
|
function JSXNamespacedName(node) { |
|
this.print(node.namespace, node); |
|
this.token(":"); |
|
this.print(node.name, node); |
|
} |
|
|
|
function JSXMemberExpression(node) { |
|
this.print(node.object, node); |
|
this.token("."); |
|
this.print(node.property, node); |
|
} |
|
|
|
function JSXSpreadAttribute(node) { |
|
this.token("{"); |
|
this.token("..."); |
|
this.print(node.argument, node); |
|
this.token("}"); |
|
} |
|
|
|
function JSXExpressionContainer(node) { |
|
this.token("{"); |
|
this.print(node.expression, node); |
|
this.token("}"); |
|
} |
|
|
|
function JSXSpreadChild(node) { |
|
this.token("{"); |
|
this.token("..."); |
|
this.print(node.expression, node); |
|
this.token("}"); |
|
} |
|
|
|
function JSXText(node) { |
|
const raw = this.getPossibleRaw(node); |
|
|
|
if (raw != null) { |
|
this.token(raw); |
|
} else { |
|
this.token(node.value); |
|
} |
|
} |
|
|
|
function JSXElement(node) { |
|
const open = node.openingElement; |
|
this.print(open, node); |
|
if (open.selfClosing) return; |
|
this.indent(); |
|
|
|
for (const child of node.children) { |
|
this.print(child, node); |
|
} |
|
|
|
this.dedent(); |
|
this.print(node.closingElement, node); |
|
} |
|
|
|
function spaceSeparator() { |
|
this.space(); |
|
} |
|
|
|
function JSXOpeningElement(node) { |
|
this.token("<"); |
|
this.print(node.name, node); |
|
this.print(node.typeParameters, node); |
|
|
|
if (node.attributes.length > 0) { |
|
this.space(); |
|
this.printJoin(node.attributes, node, { |
|
separator: spaceSeparator |
|
}); |
|
} |
|
|
|
if (node.selfClosing) { |
|
this.space(); |
|
this.token("/>"); |
|
} else { |
|
this.token(">"); |
|
} |
|
} |
|
|
|
function JSXClosingElement(node) { |
|
this.token("</"); |
|
this.print(node.name, node); |
|
this.token(">"); |
|
} |
|
|
|
function JSXEmptyExpression(node) { |
|
this.printInnerComments(node); |
|
} |
|
|
|
function JSXFragment(node) { |
|
this.print(node.openingFragment, node); |
|
this.indent(); |
|
|
|
for (const child of node.children) { |
|
this.print(child, node); |
|
} |
|
|
|
this.dedent(); |
|
this.print(node.closingFragment, node); |
|
} |
|
|
|
function JSXOpeningFragment() { |
|
this.token("<"); |
|
this.token(">"); |
|
} |
|
|
|
function JSXClosingFragment() { |
|
this.token("</"); |
|
this.token(">"); |
|
} |