@aimee-blue/ab-service-kit
Version:
Aimee Blue Service Template
37 lines (36 loc) • 1.87 kB
TypeScript
import { OperatorFunction, Observable } from 'rxjs';
import { BasicLogger } from './basicLogger';
import { TagNotification } from '../notifications';
export declare type LogNotification = TagNotification | 'audit';
export interface ILogTextParams {
prefix: string;
tags?: unknown[];
suffix?: unknown[];
}
export declare type LogOn<K extends string = string> = Array<LogNotification | Observable<K>>;
export interface ILogStreamParamsCore<T, Y> extends ILogTextParams {
on?: LogOn;
project?: (stream: Observable<T>) => Observable<Y>;
logger?: BasicLogger;
}
export declare type LogTextParamsMap = Partial<Record<LogNotification, ILogTextParams>>;
export declare type LogStreamParams<T, Y> = ILogStreamParamsCore<T, Y> & LogTextParamsMap;
export declare type LogEventsArg<T, Y> = LogStreamParams<T, Y> | string;
export declare function logEventsParams<T, Y>(arg: LogEventsArg<T, Y>, defaultLogger?: Readonly<{
log: (message?: unknown, ...parameters: unknown[]) => void;
warn: (message?: unknown, ...parameters: unknown[]) => void;
error: (message?: unknown, ...parameters: unknown[]) => void;
}>): LogStreamParams<T, Y> & {
logger: BasicLogger;
};
export declare function logEvents<T, Y>(paramsRaw: LogEventsArg<T, Y>): OperatorFunction<T, T>;
export declare type LogEventsOperator<T, Y> = (paramsRaw: LogEventsArg<T, Y>) => OperatorFunction<T, T>;
export declare function createTaggedLogEvents(tags: unknown[], logger?: Readonly<{
log: (message?: unknown, ...parameters: unknown[]) => void;
warn: (message?: unknown, ...parameters: unknown[]) => void;
error: (message?: unknown, ...parameters: unknown[]) => void;
}>): {
<T, Y>(paramsRaw: LogEventsArg<T, Y>): OperatorFunction<T, T>;
withTags(...extraTags: unknown[]): any;
};
export declare type TaggedLogEventsOperator = ReturnType<typeof createTaggedLogEvents>;