/* eslint-disable @typescript-eslint/explicit-function-return-type */ import * as O from "./Option"; import * as T from "./Task"; import * as E from "./Either"; import * as TE from "./TaskEither"; import * as P from "./Peek"; import { LogFunction, LoggerId, LogLevels } from "./types/logging"; const init = (loggerId: LoggerId) => ({ either: { debug: (fm: LogFunction) => E.debug(fm, loggerId), debugLeft: (fm: LogFunction) => E.debugLeft(fm, loggerId), error: (fm: LogFunction) => E.error(fm, loggerId), errorLeft: (fm: LogFunction) => E.errorLeft(fm, loggerId), info: (fm: LogFunction) => E.info(fm, loggerId), infoLeft: (fm: LogFunction) => E.infoLeft(fm, loggerId), log: (level: LogLevels, fm: LogFunction) => E.log(level, fm, loggerId), logLeft: (level: LogLevels, fm: LogFunction) => E.logLeft(level, fm, loggerId), warn: (fm: LogFunction) => E.warn(fm, loggerId), warnLeft: (fm: LogFunction) => E.warnLeft(fm, loggerId) }, option: { debug: (fm: LogFunction) => O.debug(fm, loggerId), debugNone: (fm: LogFunction) => O.debugNone(fm, loggerId), error: (fm: LogFunction) => O.error(fm, loggerId), errorNone: (fm: LogFunction) => O.errorNone(fm, loggerId), info: (fm: LogFunction) => O.info(fm, loggerId), infoNone: (fm: LogFunction) => O.infoNone(fm, loggerId), log: (level: LogLevels, fm: LogFunction) => O.log(level, fm, loggerId), logNone: (level: LogLevels, fm: LogFunction) => O.logNone(level, fm, loggerId), warn: (fm: LogFunction) => O.warn(fm, loggerId), warnNone: (fm: LogFunction) => O.warnNone(fm, loggerId) }, peek: { debug: (fm: LogFunction) => P.debug(fm, loggerId), error: (fm: LogFunction) => P.error(fm, loggerId), info: (fm: LogFunction) => P.info(fm, loggerId), log: (level: LogLevels, fm: LogFunction) => P.log(level, fm, loggerId), warn: (fm: LogFunction) => P.warn(fm, loggerId) }, task: { debug: (fm: LogFunction) => T.debug(fm, loggerId), error: (fm: LogFunction) => T.error(fm, loggerId), info: (fm: LogFunction) => T.info(fm, loggerId), log: (level: LogLevels, fm: LogFunction) => T.log(level, fm, loggerId), warn: (fm: LogFunction) => T.warn(fm, loggerId) }, taskEither: { debug: (fm: LogFunction) => TE.debug(fm, loggerId), debugLeft: (fm: LogFunction) => TE.debugLeft(fm, loggerId), error: (fm: LogFunction) => TE.error(fm, loggerId), errorLeft: (fm: LogFunction) => TE.errorLeft(fm, loggerId), info: (fm: LogFunction) => TE.info(fm, loggerId), infoLeft: (fm: LogFunction) => TE.infoLeft(fm, loggerId), log: (level: LogLevels, fm: LogFunction) => TE.log(level, fm, loggerId), logLeft: (level: LogLevels, fm: LogFunction) => TE.logLeft(level, fm, loggerId), warn: (fm: LogFunction) => TE.warn(fm, loggerId), warnLeft: (fm: LogFunction) => TE.warnLeft(fm, loggerId) } }); export const defaultLog = init(LoggerId.default); export const contextLog = init(LoggerId.context); export const consoleLog = init(LoggerId.console); export const eventLog = init(LoggerId.event); export { useWinston, useWinstonFor, withConsole, FINEST_LEVEL } from "./utils/config";