typescript-strict-plugin
typescript-strict-plugin copied to clipboard
Idea: Proxy strict/non-strict semantics requests to two child tsserver instances?
Description
We've been looking at adopting this plugin in our very large project and noticed that switching between files which are marked as strict and files which are not can be very slow (in the order of 10s of seconds). That seems to be because the plugin needs to switch strict
on and off in the language server based on the presence of the @ts-strict-ignore
comments. This slowness makes the plugin very disruptive to use on a day-to-day basis, at least until most of our codebase has been made strict and we don't need to switch strict
on/off so often.
Idea
Maybe this occurred to you as well but the following came to mind: could we run two tsserver instances in parallel, one with strict
enabled and the other one with it disabled? If possible, it should avoid the cost of switching a single tsserver between strict and non-strict mode in very large codebases (those which typically are harder to make strict).
I suppose to make this happen one would have to create a custom tsserver which would start two child tsserver processes and proxy any requests from the IDE to the right child process based on the presence (or lack) of the @ts-strict-ignore
comment.
What do you think? Have you maybe tried going down this route?