* Test showing wrong resolution is returned because of incorrect mode calculation
Test for #48229
* Pass in information for the module name resolution when resolutions from file are partially used
Fixes#48229
* Make the resolution info complete
* Add different tests for baselining before behavior
* Fix assert for first project output
* Add ability to pass declaration, declarationMap, emitDeclarationOnly, sourceMap and inlineSourceMap on commandline of --build
* Store these options in --out scenario
* Store buildInfo program for --out even if not composite
* Changes to make these commanline options work
* Do not include sourceMapUrl text in the sourceFile version
* Emit complete program in --out scenario as well since we need to determine uptodate ness
* Copy js or dts bundle from old build if emitting only js or dts files
* Dont emit dts if we want to emit only js files even though options suggest emitting d.ts files as well
* Adding comments and refactoring some of the code
* Convert some of the tests to baselines
* There is no use of creating reference map with --out since its not used anyways.
The changes to affectedFileList returned should be intended since --out needs saving just one file for correct output and not both
* Add test that fails
* Handle impliedNodeFormat when handling sourceFileCache
Fixes#50872
* Revert the fix
* Make sure impliedNodeFormat is set for the sourceFile
* Revert "Make sure impliedNodeFormat is set for the sourceFile"
This reverts commit 651a47fdd6.
* Revert "Revert the fix"
This reverts commit 5c98b9cfc1.
* Swap the keys for map
* Add test where current plugins dont get reset when reloading config file
* Reset loaded plugins when reloading configured project and closing project
* Add test
* During uptodate ness check, with buildInfo, check if there are errors in the program to determine uptodateness
Fixes#50959
* Comment update
* WIP
* implement typequery contains reference check + tests
* add unit test
* fix unit test
* use symbols in scope to check type query type parameter references
* remove comment on unit test
* remove comment
* use isNodeDescendantOf implementation to check scoping
* CR: small fixes
* treat the different kinds of type parameter declarations
* undo test change
* Add test for node16 resolution with package json lookup making casing incorrect
* Handle more places where package direcroy is converted to canonical file path
* Some more formatting to have baselines similar to what we have in tsserver.log
* Some refactor
* Baselines
* Baseline host details on each request
* More formatting per tsserver log
* More baselining of host state
* Update Baselines and/or Applied Lint Fixes
* Use utc time in logger for baselines
Co-authored-by: TypeScript Bot <typescriptbot@microsoft.com>
* Remove unnecessary parameter
* Dont store name unnecessarily in the watchers
* Polled watches and not files
* Use fs events as default watching
* Some refactoring
* Make single per directory native watchers now that we are using it as default
* Rename
* Comment
* Add test to show how scope messes with casing
* Do not canonicalize the file names when getting absolute paths
Fixes#50544
* Unnecessary exports
* Add test for self referencing package
* Fix self reference package with casing
* feat(7481): add explicit type compatibility check with 'satisfies' expression
* Add failing test for lack of intersectioned contextual type
* Implement the behavior
* Add test corresponding to the 'if'
* Add test based on defined scenarios
* remove isExpression in favor of using type casting
* move tests from compiler to conformance folder
* update baseline
* add missing contextFlags argument
* use asserted type
* accept baseline
Co-authored-by: Ryan Cavanaugh <ryanca@microsoft.com>
* Change type of deprecated 'decorators' property
* fix 'Invalid Arguments' error for create/update constructor in factory
* Update deprecation comments
* Make 'decorators' optional and 'undefined'
* Rename '_decorators' to 'illegalDecorators'
* Update baselines
* Add test where clearing affected files watcher that also is shared by real path causes Debug failure
* Ensure that file watcher is closed only once for affected file locations that share watcher because of different names but same real path
* Lift up package json map
* Add test where module resolution cache is not local and hence doesnt report errors in watch mode
* Ensure module resolution cache is passed through in watch mode
* Remove unnecessary setting of impliedFormat which should anyways be done as part of create source file
* Add test for packge.json changing and modifying implied format
* Distinguish between package.json watch and affecting file location watch
* Pass in failed lookup and affected file locations for source file's implied format
Also stop creating options if we already have them
* Add diagnostic for explaining file's implied format if based on package.json
* Watch implied format dependencies for modules and schedule update on change
* For program if implied node format doesnt match create new source file. Handle implied node format in document registry
Fixes#50086
* Modify tests to show package.json being watched irrespective of folder its in
* Check file path if it can be watched before watching package.json file
* Because we are watching package.json files and failed lookups its safe to invalidate package json entries instead of clearing them out everytime program is created
* Remove todos
* Fix the incorrect merge
* Pickup PackageJsonInfo renames from #50088
* Rename
* fix(49719): omit TS2301 error with enabled usedefineforclassfields
* show error for target lower than esnext with useddefineforclassfields enabled
* change target from esnext to es2022
* Elide import equals in transpileModule if referenced only by export type.
* Revise approach to avoid marking alias in export type as referenced.
* Handle type only export specifier.
* Store dts change file path in buildinfo
* With composite, do not write d.ts files if they changed
* Determine dts change based on outputs
* Instead of storing time in buildinfo store filename which was last updated to get modified time stamp from
* Get declaration time change lazily
* Rename per feedback
* Add test when declaration emit has errors and d.ts emit doesnt change which results in incorrect incremental behaviour
* Refactor
* Use declaration diagnostics in the d.ts signature for the file so it can be more accurate for detecting changes to file that could affect other files
Fixes#49527
* Renames and clarifications
* Simplify serialize declaration diagnostics for signature purpose
Do not serialize file name if error is in same file we are emitting. this should avoid having to do file path computation in most cases.
Locations are start and length instead of line and character.
Do not use any indents
* Fix baselines
* Prototype TS plugins on web
This prototype allows service plugins to be loaded on web TSServer
Main changes:
- Adds a new host entryPoint called `importServicePlugin` for overriding how plugins can be loaded. This may be async
- Implement `importServicePlugin` for webServer
- The web server plugin implementation looks for a `browser` field in the plugin's `package.json`
- It then uses `import(...)` to load the plugin (the plugin source must be compiled to support being loaded as a module)
* use default export from plugins
This more or less matches how node plugins expect the plugin module to be an init function
* Allow configure plugin requests against any web servers in partial semantic mode
* Addressing some comments
- Use result value instead of try/catch (`ImportPluginResult`)
- Add awaits
- Add logging
* add tsserverWeb to patch in dynamic import
* Remove eval
We should throw instead when dynamic import is not implemented
* Ensure dynamically imported plugins are loaded in the correct order
* Add tests for async service plugin timing
* Update src/server/editorServices.ts
Co-authored-by: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com>
* Partial PR feedback
* Rename tsserverWeb to dynamicImportCompat
* Additional PR feedback
Co-authored-by: Ron Buckton <ron.buckton@microsoft.com>
Co-authored-by: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com>
* Merge 'decorators' into 'modifiers' on various Nodes
* Drop RESERVED argument in favor of removing parameter
* Ignore grammar error nodes when asserting invariants
* Revert 'illegalX' property renames
* PR Feedback