* Initial pass adding typescript-eslint
* Add warning to shared rule set
* Add documentation for setting up VSCode extension
* Provide tsconfig path to typescript-eslitn
* Add Babel plug-in for Hooks; Add ESLint plug-in for Hooks (WIP)
* Fix transform destructuring loose config
* Add eslint-plugin-react-hooks to package.json
* Fix package.json's
* Fix eslint-plugin-react-hooks version
* Fix package.json
* Fix package.json
* Add eslint-plugin-react-hooks to script package.json
* Force array destructuring to work in loose mode only for known Hooks
* Update based on feedback from PR
* Add 'exhaustive-deps' lint rule
* Bump eslint-plugin-react-hooks to stable version
* Remove extraneous dependency from react-scripts
* add command to add files to staging after eject
* update console.log message
* wrap git add in a try/catch block
* return true & update log message
* add test to check if files were staged
* Fix check for staged files
* Revert "Revert "Speed up TypeScript projects (#5903)""
This reverts commit 544a5943ce.
* Move fork-ts-checker dep to react-dev-utils
* Convert WebpackDevServerUtils.createCompiler to take in options arg
* Update README.md for react-dev-utils
* Add forward ref to SVG component
* Write proper component for the ref test
* Add ref to jest svg transform and fix tests
* Fix SVG file location
* Use proper `ref` instead of svgRef in tests
* Add ref to svgr loader
As a lot of [people](https://hackernoon.com/why-i-no-longer-use-typescript-with-react-and-why-you-shouldnt-either-e744d27452b4) is complaining about TypeScript performance in CRA, I decided to enable `async` mode in TypeScript checker.
These changes basically brings the JS compilation times to TS projects. So, recompilation took less than 1 second instead of 3 seconds in medium size project.
The problem with async mode is that type-errors are reported after Webpack ends up recompilation as TypeScript could be slower than Babel. PR allows to emit files compiled by Babel immediately and then wait for TS and show type errors in terminal later. Also, if there was no compilation errors and any type error occurs, we trigger a hot-reload with new errors to show error overlay in browser.
Also, I wanted to start a discussion about `skipLibCheck: false` option in default `tsconfig.json`. This makes recompilations really slow and we should consider to set it to `true` or at least give users a big warning to let them know that it could be really slow.
The following video is showing the updated workflow with a forced 2.5 second delay for type-check to give you an idea how it works.

I'm pretty sure that PR needs some polishing and improvements but it should works as it is. Especially a "hack" with reloading the browser after type-check looks ugly to me.
cc @brunolemos as he is an initiator of an original TypeScript PR.
Should fix https://github.com/facebook/create-react-app/issues/5820
Switches to eval-source-map, which is easier for webpack to recompute
when a file changes and has column based mappings, which lets firefox
devtools show original variable in the debugger and evaluate original
expressions in the console.