diff --git a/packages/babel-types/src/constants.js b/packages/babel-types/src/constants.js new file mode 100644 index 0000000000..7cccc83192 --- /dev/null +++ b/packages/babel-types/src/constants.js @@ -0,0 +1,24 @@ +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 LOGICAL_OPERATORS = ["||", "&&"]; +export const UPDATE_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 const INHERIT_KEYS = { + optional: ["typeAnnotation", "typeParameters", "returnType"], + force: ["start", "loc", "end"] +};