More work towards making the codebase TS strict mode compliant.
Namely:
Fixed some cases where TS couldn't narrow types well enough
Added assertions for cases that shouldn't(?) happen
Fixed some docstring issues
Changed a few maps to objects just because we don't need to use maps to access well-known keys (e.g. game versions)
This does contain a few API changes:
Some APIs now explicitly mark that they could return undefined (to match their actual behavior)
getLevelCount now always returns 0 if given an undefined group contract, instead of throwing from accessing undefined keys.
A LOT of the remaining type issues actually boil down to the routers expecting RequestWithJwt when the express types don't guarantee that, which is very annoying. Blocked by #337
More work towards making the codebase TS strict mode compliant.
Namely:
This does contain a few API changes:
getLevelCount
now always returns 0 if given an undefined group contract, instead of throwing from accessing undefined keys.A LOT of the remaining type issues actually boil down to the routers expecting RequestWithJwt when the express types don't guarantee that, which is very annoying. Blocked by #337