JS: Avoid inconsistent DB when embedded TS has no associated tsconfig.json #18550
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When TypeScript code is embedded in a HTML-like file such as a Vue file, we write the embedded code to a separate
.tsfile, to be extracted later by the TypeScript extractor. (To avoid starting up the TypeScript extractor in a multi-threaded context). These generated files are called "snippets". The mapping between such snippet files and their original source location is stored inExtractorState#getSnippets().We have two different code paths for scheduling TypeScript files for extraction: one for files that are part of a tsconfig file, and one for "loose" files that aren't associated with any tsconfig. The second code path however was missing a case for extracting snippets. This led to unextracted code and DB consistency errors. This PR adds the missing snippet-extracting code.