This has 3 changes:
1. In updateGraph when enqueue the typing installation request (depending on unresolved imports)
2. When ActionSet event is received, invalidate only files with unresolved imports and resolve those.
3. When ActionInvalidate event is received, typing installer has detected some change in global typing cache location, so just enqueue a new typing installation request. This will repeat the cycle of setting correct typings and pickiing unresolved imports
This helps in reducing number of forced typing installation requests
We anyways use changes in unresolved import array to determine if we need to enqueue new typing request
Hence there is no need to soley rely on hasChanges from updateGraph which just indicates that we didnt reused the program (that does not mean new files were added to the program or changes in unresolved imports)
* Prepare for adding webpack submodule
* Actually switch webpack to submodule
I'm sure this will work with no problems!
* Add ignore=all to webpack gitmodule entry
The other submodules do this, although I'm not sure why.
* Add newline at end of .gitmodules
* Exclude generated files from user tests
The top 3 offenders, at least: bcryptjs, bluebird and lodash.
* Clean url-search-params too
Only need to build the commonjs original, not the browserified ones.
* Improve user test tsconfigs
Also incorporate updates from the packages themselves (they fixed
some of the bugs the compiler noticed).
* Fix enhanced-resolve module resolution
* Update baselines after merge w/master
* When testing references, also test documentHighlights respects filesToSearch
* Fix handling for redirects and move assertion inside getDocumentHighlights
* Add another assert
1. Allow assignment to `exports`.
2. The type of the rhs is not checked against the type of `exports`
since they are aliased declarations.
To support more complex patterns like `exports = c.name = c`, we may
have to treat `c.name` as a declaration. That will be more complicated
than this PR.