Commit Graph

77 Commits

Author SHA1 Message Date
Sheetal Nandi 4606a4b700 Merge pull request #28209 from Microsoft/ignorePathsStartingWithDotInNodeModules
Ignore any changes to file or folder that are in node_modules and start with "."
2018-10-30 18:06:00 -07:00
Andy 903e68164e Redo resolution on ATA when previous resolution was to '.js' file (#28236)
* Redo resolution on ATA when previous resolution was to '.js' file

* Use a separate test case
2018-10-30 16:39:40 -07:00
Andy acc34bd95d Miscellaneous code cleanup relating to module resolution (#28092)
* Miscellaneous code cleanup relating to module resolution

* Revert if condition
2018-10-30 10:15:01 -07:00
Sheetal Nandi d32c1b091a Ignore any changes to file or folder that are in node_modules and start with "."
Fixes #27673
2018-10-29 12:00:46 -07:00
Andy 070218f828 Remove DirectoryOfFailedLookupWatch#ignore, use DirectoryOfFailedLookupWatch | undefined (#28091) 2018-10-25 15:03:46 -07:00
Klaus Meinhardt 5b3fe6e68b update other interfaces and implementations
and accept baseline
2018-10-22 21:23:04 +02:00
Andy 72244c5b03 Support 'isSourceFileFromExternalLibrary' for source files from '/// <reference types="" />'' (#28004)
* Support 'isSourceFileFromExternalLibrary' for source files from '/// <reference types="" />''

* Calculate `isExternalLibraryImport` at the end

* Calculate isExternalLibraryImport with symlink path
2018-10-19 18:00:45 -07:00
Sheetal Nandi 94df5167b0 Handle resolution caching when referenced tsconfig changes 2018-10-04 15:04:12 -07:00
Sheetal Nandi 6923f2cdb0 Handle caching of module resolution depending on project references 2018-10-04 15:04:11 -07:00
Sheetal Nandi 0e4b10d726 Use resolution options of project reference if the file is from the project reference 2018-10-04 15:04:10 -07:00
Sheetal Nandi ee04b8c7f3 Handle the case of failed lookup location being not normalized.
Also fixed issue where type defs with relative name didnt resolve when directoryExists is present on the host
Fixes #27405
2018-09-28 14:40:34 -07:00
Nathan Shively-Sanders 64d0e0d448 Shorten more internal names to JS or TS (#27080) 2018-09-13 15:05:57 -07:00
Sheetal Nandi fea1667002 Use string contains and nodeModulesPathPart const for "/node_modules/" 2018-08-15 11:47:16 -07:00
Sheetal Nandi 7bd1c8e6aa Merge pull request #25811 from Microsoft/subDirectoryOfRootWatches
Watch subdirectories in project root instead of watching project root…
2018-07-31 11:51:16 -07:00
Sheetal Nandi b31f242223 Reflect getCurrentProgram as Program|undefined in the ResolutionHostCache
If there were any exceptions, the getCurrentProgram might return undefined so this is defensive check for program
Fixes #25765
2018-07-20 12:20:39 -07:00
Sheetal Nandi 4ee3f2b3ea Watch subdirectories in project root instead of watching project root so as to avoid watching excluded directories that are not part of config file
Fixes #25629 and Microsoft/vscode#51139
2018-07-19 17:21:50 -07:00
Sheetal Nandi f941226011 Do not watch modules that get resolved by ambient modules 2018-07-09 12:05:29 -07:00
Sheetal Nandi cd97adbf3b Do not watch the parent folders recursively if not needed.
This avoids watching folders like parent folder of the project root just to watch files created in the folder
Fixes Microsoft/vscode#51139
2018-06-13 14:37:58 -07:00
Ryan Cavanaugh 5804905ca6 Jakefile rewrite WIP 2018-06-10 13:23:16 -07:00
Ryan Cavanaugh 336c37662d Projzilla phase 1 2018-06-09 16:48:08 -07:00
Sheetal Nandi 16e01174b7 Do not watch folders like "c:/users/username", "c:/users/username/folderAtRoot"
Fixes Microsoft/vscode#51139
2018-06-07 13:52:34 -07:00
Sheetal Nandi 939e3e4780 Instead of creating filter for subDirectories to watch in the ancestor directory of root, watch those subDirectories for failed lookup locations
Before this change, when failed lookup location didnt fall in root directory,
we tried to find the ancestor directory of the rootDirectory to watch.
We also created subDirectory map for the directories that are being watched so we dont go through invalidation if path is unwanted directory
With this change, we will watch those subdirectories instead of root. On windows node supports file system level recursive watching so the earlier approach was better because we reduced number of watches created
But on other os, since node doesnt support it, we create the watches for existing folders outselves, so earlier approach becomes expensive.
This should be better compromize to satisfy both types of OS.
Fixes #24434
2018-05-29 14:49:19 -07:00
Andy e53e56cf82 Enable '--strictNullChecks' (#22088)
* Enable '--strictNullChecks'

* Fix API baselines

* Make sys.getEnvironmentVariable non-nullable

* make properties optional instead of using `| undefined` in thier type

* reportDiagnostics should be required

* Declare firstAccessor as non-nullable

* Make `some` a type guard

* Fix `getEnvironmentVariable` definition in tests

* Pretend transformFlags are always defined

* Fix one more use of sys.getEnvironmentVariable

* `requiredResponse` accepts undefined, remove assertions

* Mark optional properties as optional instead of using `| undefined`

* Mark optional properties as optional instead of using ` | undefined`

* Remove unnecessary null assertions

* Put the bang on the declaration instead of every use

* Make `createMapFromTemplate` require a parameter

* Mark `EmitResult.emittedFiles` and `EmitResult.sourceMaps` as optional

* Plumb through undefined in emitLsit and EmitExpressionList

* `ElementAccessExpression.argumentExpression` can not be `undefined`

* Add overloads for `writeTokenText`

* Make `shouldWriteSeparatingLineTerminator` argument non-nullable

* Make `synthesizedNodeStartsOnNewLine` argument required

* `PropertyAssignment.initializer` cannot be undefined

* Use one `!` at declaration site instead of on every use site

* Capture host in a constant and avoid null assertions

* Remove few more unused assertions

* Update baselines

* Use parameter defaults

* Update baselines

* Fix lint

* Make Symbol#valueDeclaration and Symbol#declarations non-optional to reduce assertions

* Make Node#symbol and Type#symbol non-optional to reduce assertions

* Make `flags` non-nullable to reduce assertions

* Convert some asserts to type guards

* Make `isNonLocalAlias` a type guard

* Add overload for `getSymbolOfNode` for `Declaration`

* Some more `getSymbolOfNode` changes

* Push undefined suppression into `typeToTypeNodeHelper`

* `NodeBuilderContext.tracker` is never `undefined`

* use `Debug.assertDefined`

* Remove unnecessary tag

* Mark `LiteralType.freshType` and `LiteralTupe.regularType` as required
2018-05-22 14:46:57 -07:00
Andy 4c22bf786e getEditsForFileRename: Do fresh module resolution instead of relying on cache (#24211)
* getEditsForFileRename: Do fresh module resolution instead of relying on cache

* Add host.resolveModuleNameWithFailedLookupLocations method

* Make host.resolveModuleNameWithFailedLookupLocations mandatory, and implement for Project

* Add test, and no need to check host.fileExists

* Change method name and always use cache

* Update name in string
2018-05-18 16:42:42 -07:00
Alex Ryan 4fb2add9a1 Fix comment typo in resolutionCache.ts
Another comment-only fix.
2018-05-08 14:27:40 -07:00
Sheetal Nandi 1a2fda0f56 Add support to update module resolutions on watches from mono repo like setup with path mapping
Fixes #22349
2018-05-04 15:39:06 -07:00
Sheetal Nandi d64f2483e4 Update to respond to PR feedback 2018-04-17 14:17:15 -07:00
Sheetal Nandi 60b19f5782 Invalidate the unresolved import resolutions when typing files are set
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
2018-04-13 15:17:13 -07:00
Ryan Cavanaugh 8294259ec2 Remove all reference comments from compiler/ 2018-04-11 15:38:26 -07:00
Sheetal Nandi 306ed1291b Invalidate resolutions from typeRoots watch event as a fallback mechanism
There are times when the directory watcher for failed lookup locations isnt invoked and is not very determinitstic
So as a fallback, when we receive typeRoots watch event, handle failed lookup locations as well
2018-03-22 13:54:41 -07:00
Sheetal Nandi 020f046696 Fix when program module resolution in watch mode when node_modules folder itself gets the rename event
Fixes #22712
2018-03-20 12:10:13 -07:00
Sheetal Nandi 9569b13174 Use refcounts on the resolution so we arent going through failed lookup locations when resolutions are cached. 2018-02-22 16:04:00 -08:00
Sheetal Nandi fdb5e95f0a Use the module cache to resolve non relative module name as well 2018-02-22 15:44:13 -08:00
Sheetal Nandi 8a51cdaf42 Merge branch 'master' into builderApi 2018-01-19 15:56:40 -08:00
Sheetal Nandi 96ac5aa241 Check if the file added is emitted file after validating extensions
May fix #21274
2018-01-18 12:26:45 -08:00
Sheetal Nandi 5bd3f97b18 Merge branch 'master' into builderApi 2018-01-16 11:14:39 -08:00
Sheetal Nandi 69bb5ea8f0 Do not trigger the failed lookup location invalidation for creation of program emit files
Handles #20934
2018-01-11 12:34:58 -08:00
Sheetal Nandi cb2636679b When user provided resolution is used, invalidate resolutions for all files
In this case there is no way to tell if resolution has changed so resolution cache wont have answers
2017-12-08 12:38:34 -08:00
Sheetal Nandi 43c2610a69 More functions moved from system to WatchCompilerHost 2017-12-05 16:53:34 -08:00
Sheetal Nandi 471c83b7f5 Rename WatchHost.moduleNameResolver to WatchHost.resolveModuleNames to align with compiler host 2017-12-04 15:11:25 -08:00
Andy fd41521421 Enable 'callable-types' tslint rule (#19654) 2017-11-02 17:16:09 -07:00
Sheetal Nandi 2d5331edde Handle cases when npm install doesnt get triggered with the actual file added
Fixes #19597
2017-11-02 13:45:50 -07:00
Sheetal Nandi 50628e73c5 Do not watch root folders for failed lookup locations and effective type roots
Fixes #19170
2017-10-16 18:40:21 -07:00
Sheetal Nandi 5a776e28ba Merge pull request #19088 from Microsoft/resolutionCacheDefensiveChecks
Function to clear the per directory resolution
2017-10-12 08:55:17 -07:00
Sheetal Nandi a7fa187fb2 Merge pull request #19058 from Microsoft/whenWatchesFail
Swallow the directory watcher exceptions and ignore them
2017-10-10 18:32:22 -07:00
Sheetal Nandi e30a66d22f Add utitlity for stringContains 2017-10-10 17:16:39 -07:00
Sheetal Nandi cb326ed298 Function to clear the per directory resolution 2017-10-10 16:40:12 -07:00
Sheetal Nandi b9592d4186 Use the parent most node_modules directory for module resolution failed lookup locations 2017-10-09 15:59:27 -07:00
Sheetal Nandi 07ba906594 Handle the case when finishCachingPerDirectoryResolution is not called because of exception
Fixes #18975
2017-10-09 14:32:33 -07:00
Sheetal Nandi 68d360585a PR feedback 2017-09-26 16:21:15 -07:00