@decaf-ts/core
Version:
Core persistence module for the decaf framework
29 lines • 1.11 kB
JavaScript
import { LoggedClass } from "@decaf-ts/logging";
import { Context as BaseContext, InternalError } from "@decaf-ts/db-decorators";
export class ContextualLoggedClass extends LoggedClass {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
logFor(ctx, ...args) {
return ctx.logger.for(this);
}
logCtx(args, method) {
return ContextualLoggedClass.logCtx.call(this, args, method);
}
static logCtx(args, method) {
if (args.length < 1)
throw new InternalError("No context provided");
const ctx = args.pop();
if (!(ctx instanceof BaseContext))
throw new InternalError("No context provided");
if (args.filter((a) => a instanceof BaseContext).length > 1)
throw new Error("here");
const log = (this
? ctx.logger.for(this).for(method)
: ctx.logger.clear().for(this).for(method));
return {
ctx: ctx,
log: method ? log.for(method) : log,
ctxArgs: [...args, ctx],
};
}
}
//# sourceMappingURL=ContextualLoggedClass.js.map