From c4781cc48f01e83f95d397eeaecec144b82f1f60 Mon Sep 17 00:00:00 2001 From: Alexey Berezin Date: Thu, 23 Apr 2020 01:18:40 +0300 Subject: [PATCH 1/2] =?UTF-8?q?=E2=9D=8C=20remove=20createTSUnionType=20ch?= =?UTF-8?q?ecks=20for=20backward=20compatibility?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../babel-traverse/src/path/inference/inferer-reference.js | 4 ++-- packages/babel-traverse/src/path/inference/inferers.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/babel-traverse/src/path/inference/inferer-reference.js b/packages/babel-traverse/src/path/inference/inferer-reference.js index 54e6a8b98108..5e0abe2dc9d9 100644 --- a/packages/babel-traverse/src/path/inference/inferer-reference.js +++ b/packages/babel-traverse/src/path/inference/inferer-reference.js @@ -95,7 +95,7 @@ function getTypeAnnotationBindingConstantViolations(binding, path, name) { return; } - if (t.isTSTypeAnnotation(types[0]) && t.createTSUnionType) { + if (t.isTSTypeAnnotation(types[0])) { return t.createTSUnionType(types); } @@ -211,7 +211,7 @@ 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, diff --git a/packages/babel-traverse/src/path/inference/inferers.js b/packages/babel-traverse/src/path/inference/inferers.js index fd9e97bafcf8..ae2b3f5021e2 100644 --- a/packages/babel-traverse/src/path/inference/inferers.js +++ b/packages/babel-traverse/src/path/inference/inferers.js @@ -88,7 +88,7 @@ export function LogicalExpression() { this.get("right").getTypeAnnotation(), ]; - if (t.isTSTypeAnnotation(argumentTypes[0]) && t.createTSUnionType) { + if (t.isTSTypeAnnotation(argumentTypes[0])) { return t.createTSUnionType(argumentTypes); } @@ -105,7 +105,7 @@ export function ConditionalExpression() { this.get("alternate").getTypeAnnotation(), ]; - if (t.isTSTypeAnnotation(argumentTypes[0]) && t.createTSUnionType) { + if (t.isTSTypeAnnotation(argumentTypes[0])) { return t.createTSUnionType(argumentTypes); } From 2f72879ab59c1f4e668ea01e284e44f5b104a207 Mon Sep 17 00:00:00 2001 From: Alexey Berezin Date: Thu, 23 Apr 2020 01:20:28 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=94=84=20replace=20createUnionTypeAnn?= =?UTF-8?q?otation=20with=20createFlowUnionType?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/path/inference/inferer-reference.js | 15 ++------------- .../babel-traverse/src/path/inference/inferers.js | 12 ++---------- packages/babel-types/scripts/generators/flow.js | 2 -- .../babel-types/scripts/generators/typescript.js | 2 -- packages/babel-types/src/index.js | 1 - 5 files changed, 4 insertions(+), 28 deletions(-) diff --git a/packages/babel-traverse/src/path/inference/inferer-reference.js b/packages/babel-traverse/src/path/inference/inferer-reference.js index 5e0abe2dc9d9..964e51a57183 100644 --- a/packages/babel-traverse/src/path/inference/inferer-reference.js +++ b/packages/babel-traverse/src/path/inference/inferer-reference.js @@ -99,11 +99,7 @@ function getTypeAnnotationBindingConstantViolations(binding, path, name) { return t.createTSUnionType(types); } - if (t.createFlowUnionType) { - return t.createFlowUnionType(types); - } - - return t.createUnionTypeAnnotation(types); + return t.createFlowUnionType(types); } function getConstantViolationsBefore(binding, path, functions) { @@ -218,15 +214,8 @@ function getConditionalAnnotation(binding, path, name) { }; } - 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 ae2b3f5021e2..d8b502749810 100644 --- a/packages/babel-traverse/src/path/inference/inferers.js +++ b/packages/babel-traverse/src/path/inference/inferers.js @@ -92,11 +92,7 @@ export function LogicalExpression() { return t.createTSUnionType(argumentTypes); } - if (t.createFlowUnionType) { - return t.createFlowUnionType(argumentTypes); - } - - return t.createUnionTypeAnnotation(argumentTypes); + return t.createFlowUnionType(argumentTypes); } export function ConditionalExpression() { @@ -109,11 +105,7 @@ export function ConditionalExpression() { 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 58c1a1614aa1..3eb133404b16 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";