From this point forward the cache should basically just be a data container.
Methods on the cache object are there for convenience and should only ever
return very simple data [booleans, integers, () etc.].
The cache should also have very litter/no concept of commands to decouple it
from the renderer process.
! list_channels is still implemented in the cache however it remaains a vestige
and will be moved to the net module
Also the client is getting some new packages for websocket connections and
while they work some additional work has to be put in to figure out where fug to
actually place the websocket so that it can update the cache+DOM in a seomewhat sensible fashion
Json-bigint should help alleviate this issue by correctly parsing numbers for us
- Removing url method in favor of new url property in server config model
+ Building UserConfigs and ServerConfig from typical JS Obects
This should reduce some up front complexity regarding parameters
! Fix: using new url property instead of protocol + host + port
- Reducing upfront complexity of public channels API
* Also moving to using new updated server.url property
* Channels also handles its part of updating the dom now
bigint parsing in configs now
* More switches to server.url property
The main reason for this change is for writing more descriptive code
Such a change isn't impossible with JS but requires annoying doccing that most dev environments don't really pick up on ever
Also the cache system is goingto be much more complex than anything else in this project so static compilation should help remove annoyances
✨ Channels list now fully asynchronous
✨ html pusher is now its own function for cleanness
➕ New ANY_CHANNEL integer is supported by the backend for requesting all channels in one go instead of voice|text
➖ Removed more callback hell code
✨ JSDocs updated to reflect their respective function signatures
✨ Changing inline script to now run in an async block
❗ No more callback hell, literally anything can be written with async/await or callbacks when appropos
✨ Messages now has its own properly named type exposed for other modules to use if it's required
➕ New jquery calls in messages to actually populate the message box with the last 48 hours worth of messages
✨ DOM manipulation for channel buttons moved to new module
❗ Message hooks themselves still require actual implementation but
all the required fallbacks are there
+ Explicit login route handler now in takes care of logging in to 1 specific domain on request
+ auth.init which just hits /login for all available servers it can find
* url parameter in Request is replace with domain, port & path
* params handled by gotjs
* body defaults to null and is only added with truth like values with allowGetBody protection