A utility for upgrading your codebase to the latest version of Flow.
npm install flow-upgradeflow-upgradeA utility for upgrading your codebase to the latest version of Flow.
Install using yarn add flow-upgrade. We expect prettier to be installed as a peer dependency wherever you are running flow-upgrade.
You can then run:
```
yarn run flow-upgrade
You may also use npx:
``
npx flow-upgrade
We also supply the flow-codemod binary:
``
yarn run flow-codemod
If you just want to run a codemod without specifying Flow versions.
By default, Flow will only upgrade files that have an // @flow header comment.--all
If you want to upgrade all of your JavaScript files you may pass in the :
``
yarn create flow-upgrade --all
Path to a .prettierrc file to use.prettier
Upgrade codemods rely upon to print the resulting code after transformation.
If this is not provided, we will just use the defaults.
) to inline properties (e.g. const o = {a: 1};).Run with
yarn run flow-codemod collapseObjectInitialization.$3
Replaces T: {} with T: {...} in type parameter bounds. The former is almost always wrong.Run with
yarn run flow-codemod typeParameterBoundExactEmptyObjectToInexact.$3
Converts implicitly inexact object type syntax {} to explicitly inexact {...}.Run with
yarn run flow-codemod convertImplicitInexactObjectTypes.$3
Converts explicitly exact object type syntax {| |} to be just be { }. To be done after you turn on exact_by_default=true in your .flowconfig.Run with
yarn run flow-codemod removeExplicitlyExactObjectTypeSyntax.$3
Removes annotations nested inside of destructuring (e.g. const [o: number] = foo;). These are not valid Flow syntax.Run with
yarn run flow-codemod removeAnnotationsInDestructuring.Part of the upgrade to 0.176
$3
Removes useless duplicate class properties and fixes bad constructor binding in those classes.Run with
yarn run flow-codemod removeDuplicateClassProperties.Part of the upgrade to 0.170
$3
Renames usages of the $Partial utility type to its new name, Partial.Run with
yarn run flow-codemod renamePartial.Part of the upgrade to 0.201
$3
Converts usages of the deprecated and unsafe $Shape utility type to its replacement, Partial.Run with
yarn run flow-codemod convertShapeToPartial.$3
Converts usages of the old casting syntax (x: T) to the new casting syntax x as T.Run with
yarn run flow-codemod typeCastToAsExpression.$3
Converts usages of the internal React types like React$Node to public facing ones like React.Node.Run with
yarn run flow-codemod replaceReactDollarUtilityTypes.$3
Converts:
- $TEMPORARY$object<{props}> to $ReadOnly<{props}>
- $TEMPORARY$array to $ReadOnlyArray
- $TEMPORARY$number<42> annotations to number
- $TEMPORARY$string<"foo"> annotations to string$3
Converts:-
React.AbstractComponent to React.ComponentType
- React.ElementConfig to Props
- React.ElementRef to Instance
- React.ElementRef to mixed$3
Converts legacy Flow utility types to TypeScript-compatible equivalents:
- $NonMaybeType to NonNullable
- $ReadOnly to Readonly
- $ReadOnlyArray to ReadonlyArray
- $ReadOnlyMap to ReadonlyMap
- $ReadOnlySet to ReadonlySet
- $Keys to keyof T
- $Values to Values
- mixed to unknownRun with
yarn run flow-codemod convertLegacyUtilityTypes`.