diff --git a/packages/babel-types/src/converters.js b/packages/babel-types/src/converters.js index f156c6d32b..8716a10a3f 100644 --- a/packages/babel-types/src/converters.js +++ b/packages/babel-types/src/converters.js @@ -288,7 +288,7 @@ export function valueToNode(value: any): Object { if (t.isValidIdentifier(key)) { nodeKey = t.identifier(key); } else { - nodeKey = t.literal(key); + nodeKey = t.stringLiteral(key); } props.push(t.objectProperty(nodeKey, t.valueToNode(value[key]))); } diff --git a/packages/babel-types/src/definitions/core.js b/packages/babel-types/src/definitions/core.js index 12ede7e4d0..825565b588 100644 --- a/packages/babel-types/src/definitions/core.js +++ b/packages/babel-types/src/definitions/core.js @@ -478,7 +478,7 @@ defineType("ObjectMethod", { }, key: { validate(node, key, val) { - let expectedTypes = node.computed ? ["Expression"] : ["Identifier", "Literal"]; + let expectedTypes = node.computed ? ["Expression"] : ["Identifier", "StringLiteral", "NumericLiteral"]; assertNodeType(...expectedTypes)(node, key, val); } }, @@ -510,7 +510,7 @@ defineType("ObjectProperty", { }, key: { validate(node, key, val) { - let expectedTypes = node.computed ? ["Expression"] : ["Identifier", "Literal"]; + let expectedTypes = node.computed ? ["Expression"] : ["Identifier", "StringLiteral", "NumericLiteral"]; assertNodeType(...expectedTypes)(node, key, val); } }, diff --git a/packages/babel-types/src/definitions/es2015.js b/packages/babel-types/src/definitions/es2015.js index ee726ab95a..e699ba3d18 100644 --- a/packages/babel-types/src/definitions/es2015.js +++ b/packages/babel-types/src/definitions/es2015.js @@ -254,7 +254,7 @@ defineType("ClassMethod", { }, key: { validate(node, key, val) { - let expectedTypes = node.computed ? ["Expression"] : ["Identifier", "Literal"]; + let expectedTypes = node.computed ? ["Expression"] : ["Identifier", "StringLiteral", "NumericLiteral"]; assertNodeType(...expectedTypes)(node, key, val); } }, diff --git a/packages/babel-types/src/definitions/jsx.js b/packages/babel-types/src/definitions/jsx.js index c11d2fdc17..7da4f26ba2 100644 --- a/packages/babel-types/src/definitions/jsx.js +++ b/packages/babel-types/src/definitions/jsx.js @@ -7,7 +7,7 @@ defineType("JSXAttribute", { aliases: ["JSX", "Immutable"], fields: { name: { - validate: assertNodeType("JSXIdentifier", "JSXMemberExpression") + validate: assertNodeType("JSXIdentifier", "JSXNamespacedName") }, value: { optional: true, @@ -39,7 +39,10 @@ defineType("JSXElement", { validate: assertNodeType("JSXClosingElement") }, children: { - // todo + validate: chain( + assertValueType("array"), + assertEach(assertNodeType("StringLiteral", "JSXExpressionContainer", "JSXElement")) + ) } } }); @@ -73,7 +76,7 @@ defineType("JSXMemberExpression", { aliases: ["JSX", "Expression"], fields: { object: { - validate: assertNodeType("JSXIdentifier") + validate: assertNodeType("JSXMemberExpression", "JSXIdentifier") }, property: { validate: assertNodeType("JSXIdentifier")