Skip to content
0

katanakit-js / LoggerDecorator

Function: LoggerDecorator() ​

ts
function LoggerDecorator<T>(
   fn, 
   label?, 
   level?
): T;

Defined in: src/infrastructure/decorators/logger.decorator.ts:39

LoggerDecorator - Decorator Pattern para trazado de llamadas.

Envuelve una función (sync o async) y registra cada invocación con sus argumentos, el resultado y la duración. No modifica la función original: el logging se añade en tiempo de composición (Open/Closed).

Nota: el nombre usa mayúscula inicial porque es un decorador composible, no una función utilitaria (use*) del API pública.

Type Parameters ​

Type ParameterDescription
T extends (...args) => unknownTipo de la función envuelta.

Parameters ​

ParameterTypeDefault valueDescription
fnTundefinedLa función a decorar.
label?stringundefinedNombre legible que aparece en los logs (default: fn.name).
level?"error" | "log" | "warn""log"Nivel de log para el resultado (default: "log").

Returns ​

T

La función decorada con logging.

Examples ​

ts
import { LoggerDecorator } from "katanakit-js";

const traced = LoggerDecorator(fetchUser, "fetchUser");
await traced(1);
// [fetchUser] start { args: [1] }
// [fetchUser] ok (12ms) { result: {...} }

Composición

ts
const robust = RetryDecorator(LoggerDecorator(flakyRequest, "flaky"), 2);

Remarks ​

Security: arguments and results are logged verbatim. Do NOT decorate functions that receive secrets (API keys, tokens, passwords) — wrap a redacting adapter instead, or strip sensitive fields before calling.

Released under the MIT License.