chore(types): adapt to new express type definitions

This commit is contained in:
Elian Doran
2024-12-10 22:35:23 +02:00
parent 6f371915bf
commit 5190b28d3c
13 changed files with 66 additions and 64 deletions

View File

@@ -70,7 +70,6 @@ import etapiNoteRoutes from "../etapi/notes.js";
import etapiSpecialNoteRoutes from "../etapi/special_notes.js";
import etapiSpecRoute from "../etapi/spec.js";
import etapiBackupRoute from "../etapi/backup.js";
import { AppRequest, AppRequestHandler } from './route-interface.js';
const csrfMiddleware = csurf({
cookie: {
@@ -81,7 +80,8 @@ const csrfMiddleware = csurf({
const MAX_ALLOWED_FILE_SIZE_MB = 250;
const GET = 'get', PST = 'post', PUT = 'put', PATCH = 'patch', DEL = 'delete';
type ApiResultHandler = (req: express.Request, res: express.Response, result: unknown) => number;
export type ApiResultHandler = (req: express.Request, res: express.Response, result: unknown) => number;
export type ApiRequestHandler = (req: express.Request, res: express.Response, next: express.NextFunction) => unknown;
// TODO: Deduplicate with etapi_utils.ts afterwards.
type HttpMethod = "all" | "get" | "post" | "put" | "delete" | "patch" | "options" | "head";
@@ -438,11 +438,11 @@ function send(res: express.Response, statusCode: number, response: unknown) {
}
}
function apiRoute(method: HttpMethod, path: string, routeHandler: express.Handler) {
function apiRoute(method: HttpMethod, path: string, routeHandler: ApiRequestHandler) {
route(method, path, [auth.checkApiAuth, csrfMiddleware], routeHandler, apiResultHandler);
}
function route(method: HttpMethod, path: string, middleware: (express.Handler | AppRequestHandler)[], routeHandler: AppRequestHandler, resultHandler: ApiResultHandler | null = null, transactional = true) {
function route(method: HttpMethod, path: string, middleware: express.Handler[], routeHandler: ApiRequestHandler, resultHandler: ApiResultHandler | null = null, transactional = true) {
router[method](path, ...(middleware as express.Handler[]), (req: express.Request, res: express.Response, next: express.NextFunction) => {
const start = Date.now();
@@ -455,7 +455,7 @@ function route(method: HttpMethod, path: string, middleware: (express.Handler |
cls.set('localNowDateTime', req.headers['trilium-local-now-datetime']);
cls.set('hoistedNoteId', req.headers['trilium-hoisted-note-id'] || 'root');
const cb = () => routeHandler(req as AppRequest, res, next);
const cb = () => routeHandler(req, res, next);
return transactional ? sql.transactional(cb) : cb();
});