- Notifications
You must be signed in to change notification settings - Fork1
Tools to facilitate data.world's migration from Flow to TypeScript
License
datadotworld/ts-migration
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
These are a collection of tools that we used at Quizlet when migrating from Flow to TypeScript. We hope that you find these tools useful when doing your own migration, but keep in mind that they are made for the particularities of Quizlet's large codebase. You may need to modify these tools to suit your needs, but that said, they should be at the very least a good starting point.
The converter uses a fork ofbabel-plugin-flow-to-typescript along withRecast to preserve formatting. As it runs, it will rename files to.ts
(or.tsx
if it contains React), along with any snaps. In order to preserve the git history, this runs the conversion and commits the changes, and then renames all the files in a separate commit.
or add this indevDependencies
:
"ts-migration": "git+https://github.com/datadotworld/ts-migration"
and runnpm install
.
- TypeScript is installed in your codebase, and you have a
tsconfig.json
configured to suit your needs. - You use prettier, and you have a
.prettierrc
.
Once installed, you can access the tools via the binary.
npx ts-migration convert-codebase
npx ts-migration convert-codebase --commit
npx ts-migration ignore-errors [--commit] [--includeJSX]
The--includeJSX
option can be extremely useful when you have a lot of errors you want to ignore, but will insert ignore comments in such a way that they can appear in the rendered HTML, so be sure to carefully review the output!
npx ts-migration strip-comments [--commit]
ts-migration isMIT licensed.