diff options
author | bobzel <zzzman@gmail.com> | 2025-07-21 12:45:55 -0400 |
---|---|---|
committer | bobzel <zzzman@gmail.com> | 2025-07-21 12:45:55 -0400 |
commit | 401431d732fecd6bdef69d83e21253e1b157416d (patch) | |
tree | 77348c17ec94779033982c8f362c775b0564aa34 /src/server/RouteManager.ts | |
parent | 3b0fca96e8350c4d103833a0cee6dcdc5e781d5c (diff) |
cleaning up server warnings/errors
Diffstat (limited to 'src/server/RouteManager.ts')
-rw-r--r-- | src/server/RouteManager.ts | 46 |
1 files changed, 27 insertions, 19 deletions
diff --git a/src/server/RouteManager.ts b/src/server/RouteManager.ts index c5d70da3d..ed51aea40 100644 --- a/src/server/RouteManager.ts +++ b/src/server/RouteManager.ts @@ -18,10 +18,11 @@ export interface CoreArguments { isRelease: boolean; } -export type AuthorizedCore = CoreArguments & { user: DashUserModel }; -export type SecureHandler = (core: AuthorizedCore) => any | Promise<any>; -export type PublicHandler = (core: CoreArguments) => any | Promise<any>; -export type ErrorHandler = (core: CoreArguments & { error: any }) => any | Promise<any>; +export type AuthorizedCore = CoreArguments & { user: Partial<DashUserModel> }; +export type SecureHandler = (core: AuthorizedCore) => unknown | Promise<unknown>; +export type PublicHandler = (core: CoreArguments) => unknown | Promise<unknown>; +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export type ErrorHandler = (core: CoreArguments & { error: any }) => unknown | Promise<unknown>; export const STATUS = { OK: 200, @@ -30,13 +31,14 @@ export const STATUS = { PERMISSION_DENIED: 403, }; +// eslint-disable-next-line @typescript-eslint/no-explicit-any export function _error(res: Response, message: string, error?: any) { console.error(message, error); res.statusMessage = message; res.status(STATUS.EXECUTION_ERROR).send(error); } -export function _success(res: Response, body: any) { +export function _success(res: Response, body: unknown) { res.status(STATUS.OK).send(body); } @@ -135,18 +137,6 @@ export default class RouteManager { user = { id: 'guest', email: 'guest', userDocumentId: Utils.GuestID() }; } const core = { req, res, isRelease }; - const tryExecute = async (toExecute: (args: any) => any | Promise<any>, args: any) => { - try { - await toExecute(args); - } catch (e) { - console.log(red(target), user && 'email' in user ? '<user logged out>' : undefined); - if (errorHandler) { - errorHandler({ ...core, error: e }); - } else { - _error(res, `The server encountered an internal error when serving ${target}.`, e); - } - } - }; if (user) { if (requireAdmin && isRelease && process.env.PASSWORD) { if (AdminPrivileges.get(user.id)) { @@ -156,11 +146,29 @@ export default class RouteManager { return; } } - await tryExecute(secureHandler, { ...core, user }); + try { + await secureHandler({ ...core, user }); + } catch (e) { + console.log(red(target), user && 'email' in user ? '<user logged out>' : undefined); + if (errorHandler) { + errorHandler({ ...core, error: e }); + } else { + _error(res, `The server encountered an internal error when serving ${target}.`, e); + } + } } // req.session!.target = target; else if (publicHandler) { - await tryExecute(publicHandler, core); + try { + await publicHandler(core); + } catch (e) { + console.log(red(target), user && 'email' in user ? '<user logged out>' : undefined); + if (errorHandler) { + errorHandler({ ...core, error: e }); + } else { + _error(res, `The server encountered an internal error when serving ${target}.`, e); + } + } if (!res.headersSent) { // res.redirect("/login"); } |