Providing a great error experience is vital. Errors can exist in
tsconfig.json files, in
ts files and these need to be shown in the UI as well handled from different sources in the backend.
We keep a client instance of
errorCache.ts syncing to error deltas from the backend.
You might want to read on our async docs so you know how we
castand what we mean by
The webserver contains the
globalErrorCacheServer.ts which is again the singular source of truth.
It is just an instance of
- We just pipe its updates to the clients over web sockets (as mentioned in async).
- It receives
deltachanges from other error caches e.g. the projectSeviceWorker
(various source) -> globalErrorCacheServer -> socketio -> globalErrorCacheClient -> (various UI elements)