@decaf-ts/core
Version:
Core persistence module for the decaf framework
17 lines (16 loc) • 1.13 kB
TypeScript
import { LoggedClass } from "@decaf-ts/logging";
import { Context } from "../persistence/Context";
import { LoggerOf } from "../persistence/index";
export type ContextualArgs<C extends Context<any>, ARGS extends any[] = any[]> = [...ARGS, C];
export type MaybeContextualArg<C extends Context<any>, ARGS extends any[] = any[]> = any[] | ContextualArgs<C, ARGS>;
export type ContextualizedArgs<C extends Context<any>, ARGS extends any[] = any[]> = {
ctx: C;
log: LoggerOf<C>;
ctxArgs: ContextualArgs<C, ARGS>;
};
export declare abstract class ContextualLoggedClass<C extends Context<any>> extends LoggedClass {
protected logFor(ctx: C, ...args: any[]): LoggerOf<C>;
protected logCtx<ARGS extends any[]>(args: ARGS, method: ((...args: any[]) => any) | string): ContextualizedArgs<any, ARGS>;
protected static logCtx<CONTEXT extends Context<any>, ARGS extends any[]>(this: any, args: ARGS, method: string): ContextualizedArgs<CONTEXT, ARGS>;
protected static logCtx<CONTEXT extends Context<any>, ARGS extends any[]>(this: any, args: ARGS, method: (...args: any[]) => any): ContextualizedArgs<CONTEXT, ARGS>;
}