Skip to content

Commit 8ea227b

Browse files
author
Will Sabransky
committed
New: support for shorthand fragments (fixes eslint#503)
1 parent 51178b9 commit 8ea227b

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

lib/ast-node-types.js

+3
Original file line numberDiff line numberDiff line change
@@ -62,13 +62,16 @@ module.exports = {
6262
ImportSpecifier: "ImportSpecifier",
6363
JSXAttribute: "JSXAttribute",
6464
JSXClosingElement: "JSXClosingElement",
65+
JSXClosingFragment: "JSXClosingFragment",
6566
JSXElement: "JSXElement",
6667
JSXEmptyExpression: "JSXEmptyExpression",
6768
JSXExpressionContainer: "JSXExpressionContainer",
69+
JSXFragment: "JSXFragment",
6870
JSXIdentifier: "JSXIdentifier",
6971
JSXMemberExpression: "JSXMemberExpression",
7072
JSXNamespacedName: "JSXNamespacedName",
7173
JSXOpeningElement: "JSXOpeningElement",
74+
JSXOpeningFragment: "JSXOpeningFragment",
7275
JSXSpreadAttribute: "JSXSpreadAttribute",
7376
JSXSpreadChild: "JSXSpreadChild",
7477
JSXText: "JSXText",

lib/convert.js

+23
Original file line numberDiff line numberDiff line change
@@ -1842,6 +1842,16 @@ module.exports = function convert(config) {
18421842

18431843
break;
18441844

1845+
case SyntaxKind.JsxFragment:
1846+
Object.assign(result, {
1847+
type: AST_NODE_TYPES.JSXFragment,
1848+
openingElement: convertChild(node.openingElement),
1849+
closingElement: convertChild(node.closingElement),
1850+
children: node.children.map(convertChild)
1851+
});
1852+
1853+
break;
1854+
18451855
case SyntaxKind.JsxSelfClosingElement: {
18461856
/**
18471857
* Convert SyntaxKind.JsxSelfClosingElement to SyntaxKind.JsxOpeningElement,
@@ -1882,6 +1892,19 @@ module.exports = function convert(config) {
18821892
});
18831893
break;
18841894

1895+
case SyntaxKind.JsxOpeningFragment:
1896+
Object.assign(result, {
1897+
type: AST_NODE_TYPES.JSXOpeningFragment,
1898+
selfClosing: false,
1899+
});
1900+
break;
1901+
1902+
case SyntaxKind.JsxClosingFragment:
1903+
Object.assign(result, {
1904+
type: AST_NODE_TYPES.JSXClosingFragment,
1905+
});
1906+
break;
1907+
18851908
case SyntaxKind.JsxExpression: {
18861909
const eloc = ast.getLineAndCharacterOfPosition(result.range[0] + 1);
18871910
const expression = (node.expression) ? convertChild(node.expression) : {

0 commit comments

Comments
 (0)