UNPKG

@decaf-ts/core

Version:

Core persistence module for the decaf framework

17 lines (16 loc) 1.13 kB
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>; }