Errors
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.
FrontEnd
We keep a client instance of errorCache.ts
syncing to error deltas from the backend.
Backend
You might want to read on our async docs so you know how we
cast
and what we mean bywebserver
.
The webserver contains the globalErrorCacheServer.ts
which is again the singular source of truth.
It is just an instance of errorCache.ts
- We just pipe its updates to the clients over web sockets (as mentioned in async).
- It receives
delta
changes from other error caches e.g. the projectSeviceWorkertsErrorCache
.
That's it!
Diagram
(various source) -> globalErrorCacheServer -> socketio -> globalErrorCacheClient -> (various UI elements)