diff --git a/database/entities/Federation.ts b/database/entities/Federation.ts index f78e3f6d..b1f13ef4 100644 --- a/database/entities/Federation.ts +++ b/database/entities/Federation.ts @@ -1,3 +1,4 @@ +import { debugRequest } from "@api"; import { type EntityValidator, SignatureConstructor, @@ -42,5 +43,12 @@ export const objectToInboxRequest = async ( body: JSON.stringify(object), }); - return await ctor.sign(request); + const signed = await ctor.sign(request); + + if (config.debug.federation) { + // Debug request + await debugRequest(signed); + } + + return signed; }; diff --git a/utils/api.ts b/utils/api.ts index 4c9de52d..5a0e974d 100644 --- a/utils/api.ts +++ b/utils/api.ts @@ -24,7 +24,7 @@ import { fromZodError } from "zod-validation-error"; import type { Application } from "~database/entities/Application"; import { getFromHeader } from "~database/entities/User"; import type { User } from "~packages/database-interface/user"; -import { LogLevel } from "~packages/log-manager"; +import { LogLevel, LogManager } from "~packages/log-manager"; import type { APIRouteMetadata, HttpVerb } from "~types/api"; export const applyConfig = (routeMeta: APIRouteMetadata) => { @@ -302,7 +302,10 @@ export const jsonOrForm = () => { }); }; -export const debugRequest = async (req: Request, logger = consoleLogger) => { +export const debugRequest = async ( + req: Request, + logger = new LogManager(Bun.stdout), +) => { const body = await req.clone().text(); await logger.log( LogLevel.DEBUG, diff --git a/utils/loggers.ts b/utils/loggers.ts index dd6b6e0a..4d9a5d5b 100644 --- a/utils/loggers.ts +++ b/utils/loggers.ts @@ -10,6 +10,7 @@ const isEntry = true; export const logger = new LogManager( isEntry ? requests_log : Bun.file("/dev/null"), ); + export const consoleLogger = new LogManager( isEntry ? Bun.stdout : Bun.file("/dev/null"), !noColors,