diff --git a/packages/babel-traverse/src/path/inference/inferer-reference.js b/packages/babel-traverse/src/path/inference/inferer-reference.js index bb6ab6827ab8..c704935834a6 100644 --- a/packages/babel-traverse/src/path/inference/inferer-reference.js +++ b/packages/babel-traverse/src/path/inference/inferer-reference.js @@ -95,15 +95,11 @@ function getTypeAnnotationBindingConstantViolations(binding, path, name) { return; } - if (t.isTSTypeAnnotation(types[0]) && t.createTSUnionType) { + if (t.isTSTypeAnnotation(types[0])) { return t.createTSUnionType(types); } - if (t.createFlowUnionType) { - return t.createFlowUnionType(types); - } - - return t.createUnionTypeAnnotation(types); + return t.createFlowUnionType(types); } function getConstantViolationsBefore(binding, path, functions) { @@ -211,22 +207,15 @@ function getConditionalAnnotation(binding, path, name) { } if (types.length) { - if (t.isTSTypeAnnotation(types[0]) && t.createTSUnionType) { + if (t.isTSTypeAnnotation(types[0])) { return { typeAnnotation: t.createTSUnionType(types), ifStatement, }; } - if (t.createFlowUnionType) { - return { - typeAnnotation: t.createFlowUnionType(types), - ifStatement, - }; - } - return { - typeAnnotation: t.createUnionTypeAnnotation(types), + typeAnnotation: t.createFlowUnionType(types), ifStatement, }; } diff --git a/packages/babel-traverse/src/path/inference/inferers.js b/packages/babel-traverse/src/path/inference/inferers.js index 1b3de6cbd8c6..ca79f8e9e03e 100644 --- a/packages/babel-traverse/src/path/inference/inferers.js +++ b/packages/babel-traverse/src/path/inference/inferers.js @@ -88,15 +88,11 @@ export function LogicalExpression() { this.get("right").getTypeAnnotation(), ]; - if (t.isTSTypeAnnotation(argumentTypes[0]) && t.createTSUnionType) { + if (t.isTSTypeAnnotation(argumentTypes[0])) { return t.createTSUnionType(argumentTypes); } - if (t.createFlowUnionType) { - return t.createFlowUnionType(argumentTypes); - } - - return t.createUnionTypeAnnotation(argumentTypes); + return t.createFlowUnionType(argumentTypes); } export function ConditionalExpression() { @@ -105,15 +101,11 @@ export function ConditionalExpression() { this.get("alternate").getTypeAnnotation(), ]; - if (t.isTSTypeAnnotation(argumentTypes[0]) && t.createTSUnionType) { + if (t.isTSTypeAnnotation(argumentTypes[0])) { return t.createTSUnionType(argumentTypes); } - if (t.createFlowUnionType) { - return t.createFlowUnionType(argumentTypes); - } - - return t.createUnionTypeAnnotation(argumentTypes); + return t.createFlowUnionType(argumentTypes); } export function SequenceExpression() { diff --git a/packages/babel-types/scripts/generators/flow.js b/packages/babel-types/scripts/generators/flow.js index 50f20bc61172..1f1e80c4f75e 100644 --- a/packages/babel-types/scripts/generators/flow.js +++ b/packages/babel-types/scripts/generators/flow.js @@ -127,8 +127,6 @@ lines.push( // eslint-disable-next-line max-len `declare function createTypeAnnotationBasedOnTypeof(type: 'string' | 'number' | 'undefined' | 'boolean' | 'function' | 'object' | 'symbol'): ${NODE_PREFIX}TypeAnnotation`, // eslint-disable-next-line max-len - `declare function createUnionTypeAnnotation(types: Array<${NODE_PREFIX}FlowType>): ${NODE_PREFIX}UnionTypeAnnotation`, - // eslint-disable-next-line max-len `declare function createFlowUnionType(types: Array<${NODE_PREFIX}FlowType>): ${NODE_PREFIX}UnionTypeAnnotation`, // this smells like "internal API" // eslint-disable-next-line max-len diff --git a/packages/babel-types/scripts/generators/typescript.js b/packages/babel-types/scripts/generators/typescript.js index ef460a73456e..6b19484f6ba9 100644 --- a/packages/babel-types/scripts/generators/typescript.js +++ b/packages/babel-types/scripts/generators/typescript.js @@ -143,11 +143,9 @@ lines.push( // builders/ // eslint-disable-next-line max-len `export function createTypeAnnotationBasedOnTypeof(type: 'string' | 'number' | 'undefined' | 'boolean' | 'function' | 'object' | 'symbol'): StringTypeAnnotation | VoidTypeAnnotation | NumberTypeAnnotation | BooleanTypeAnnotation | GenericTypeAnnotation`, - `export function createUnionTypeAnnotation(types: [T]): T`, `export function createFlowUnionType(types: [T]): T`, // this probably misbehaves if there are 0 elements, and it's not a UnionTypeAnnotation if there's only 1 // it is possible to require "2 or more" for this overload ([T, T, ...T[]]) but it requires typescript 3.0 - `export function createUnionTypeAnnotation(types: ReadonlyArray): UnionTypeAnnotation`, `export function createFlowUnionType(types: ReadonlyArray): UnionTypeAnnotation`, // this smells like "internal API" // eslint-disable-next-line max-len diff --git a/packages/babel-types/src/index.js b/packages/babel-types/src/index.js index 7239401fd68f..a7e4a9be3a97 100644 --- a/packages/babel-types/src/index.js +++ b/packages/babel-types/src/index.js @@ -9,7 +9,6 @@ export * from "./asserts/generated"; // builders export { default as createTypeAnnotationBasedOnTypeof } from "./builders/flow/createTypeAnnotationBasedOnTypeof"; -export { default as createUnionTypeAnnotation } from "./builders/flow/createFlowUnionType"; export { default as createFlowUnionType } from "./builders/flow/createFlowUnionType"; export { default as createTSUnionType } from "./builders/typescript/createTSUnionType"; export * from "./builders/generated";