diff --git a/packages/babel-types/src/definitions/core.js b/packages/babel-types/src/definitions/core.js index 0b9f89fc56..12ede7e4d0 100644 --- a/packages/babel-types/src/definitions/core.js +++ b/packages/babel-types/src/definitions/core.js @@ -1,18 +1,20 @@ /* @flow */ import * as t from "../index"; + import { BINARY_OPERATORS, LOGICAL_OPERATORS, UNARY_OPERATORS, - UPDATE_OPERATORS -} from "../index"; + UPDATE_OPERATORS, +} from "../constants"; + import defineType, { assertValueType, assertNodeType, assertEach, chain, - assertOneOf + assertOneOf, } from "./index"; defineType("ArrayExpression", { @@ -46,7 +48,7 @@ defineType("BinaryExpression", { builder: ["operator", "left", "right"], fields: { operator: { - validate: assertOneOf(BINARY_OPERATORS) + validate: assertOneOf(...BINARY_OPERATORS) }, left: { validate: assertNodeType("Expression") @@ -394,7 +396,7 @@ defineType("LogicalExpression", { aliases: ["Binary", "Expression"], fields: { operator: { - validate: assertOneOf(LOGICAL_OPERATORS) + validate: assertOneOf(...LOGICAL_OPERATORS) }, left: { validate: assertNodeType("Expression") @@ -626,7 +628,7 @@ defineType("UnaryExpression", { validate: assertNodeType("Expression") }, operator: { - validate: assertOneOf(UNARY_OPERATORS) + validate: assertOneOf(...UNARY_OPERATORS) } }, visitor: ["argument"], @@ -643,7 +645,7 @@ defineType("UpdateExpression", { validate: assertNodeType("Expression") }, operator: { - validate: assertOneOf(UPDATE_OPERATORS) + validate: assertOneOf(...UPDATE_OPERATORS) } }, visitor: ["argument"], diff --git a/packages/babel-types/src/index.js b/packages/babel-types/src/index.js index c93d48eeb7..1ea1f28308 100644 --- a/packages/babel-types/src/index.js +++ b/packages/babel-types/src/index.js @@ -26,30 +26,9 @@ function registerType(type: string) { }; } -export const STATEMENT_OR_BLOCK_KEYS = ["consequent", "body", "alternate"]; -export const FLATTENABLE_KEYS = ["body", "expressions"]; -export const FOR_INIT_KEYS = ["left", "init"]; -export const COMMENT_KEYS = ["leadingComments", "trailingComments", "innerComments"]; +// -export const INHERIT_KEYS = { - optional: ["typeAnnotation", "typeParameters", "returnType"], - force: ["start", "loc", "end"] -}; - -export const UPDATE_OPERATORS = ["++", "--"]; -export const LOGICAL_OPERATORS = ["||", "&&"]; - -export const BOOLEAN_NUMBER_BINARY_OPERATORS = [">", "<", ">=", "<="]; -export const EQUALITY_BINARY_OPERATORS = ["==", "===", "!=", "!=="]; -export const COMPARISON_BINARY_OPERATORS = [...EQUALITY_BINARY_OPERATORS, "in", "instanceof"]; -export const BOOLEAN_BINARY_OPERATORS = [...COMPARISON_BINARY_OPERATORS, ...BOOLEAN_NUMBER_BINARY_OPERATORS]; -export const NUMBER_BINARY_OPERATORS = ["-", "/", "*", "**", "&", "|", ">>", ">>>", "<<", "^"]; -export const BINARY_OPERATORS = ["+", ...NUMBER_BINARY_OPERATORS, ...BOOLEAN_BINARY_OPERATORS]; - -export const BOOLEAN_UNARY_OPERATORS = ["delete", "!"]; -export const NUMBER_UNARY_OPERATORS = ["+", "-", "++", "--", "~"]; -export const STRING_UNARY_OPERATORS = ["typeof"]; -export const UNARY_OPERATORS = ["void", ...BOOLEAN_UNARY_OPERATORS, ...NUMBER_UNARY_OPERATORS, ...STRING_UNARY_OPERATORS]; +export * from "./constants"; import "./definitions/init"; import { VISITOR_KEYS, ALIAS_KEYS, NODE_FIELDS, BUILDER_KEYS, DEPRECATED_KEYS } from "./definitions"; @@ -347,7 +326,7 @@ export function buildMatchMemberExpression(match:string, allowPartial?: boolean) */ export function removeComments(node: Object): Object { - for (let key of COMMENT_KEYS) { + for (let key of t.COMMENT_KEYS) { delete node[key]; } return node;