{"version":3,"sources":["../../../src/shared/logging/logEpic.ts"],"names":["logEpic","epic","paramsRaw","fn","commands","ctx","rest","params","logEvents","logger","maybeLogIncoming","input","maybeLogOutgoing","output","incomingName","name","outgoingName","pipe","prefix","Utils","setFunctionName"],"mappings":";;;;;;;AAAA;;AAEA;;AAQO,MAAMA,OAAO,GAAG,CACrBC,IADqB,EAErBC,SAFqB,KAGf;AACN,QAAMC,EAAE,GAAG,CAAC,GAAG,CAACC,QAAD,EAAWC,GAAX,EAAgB,GAAGC,IAAnB,CAAJ,KAA+D;AAAA;;AACxE,UAAMC,MAAM,GAAG;AACbC,MAAAA,SAAS,EAAEH,GAAG,CAACI,MAAJ,CAAWD,SADT;AAEb,SAAGN;AAFU,KAAf;AAKA,UAAMQ,gBAAgB,GAAG,+DACvBH,MAAM,CAACI,KADgB,yDACP,IADO,EAEvBJ,MAAM,CAACC,SAFgB,CAAzB;AAKA,UAAMI,gBAAgB,GAAG,gEACvBL,MAAM,CAACM,MADgB,2DACN,IADM,EAEvBN,MAAM,CAACC,SAFgB,CAAzB;AAKA,UAAMM,YAAY,GAAI,YAAWP,MAAM,CAACQ,IAAP,IAAed,IAAI,CAACc,IAAK,EAA1D;AACA,UAAMC,YAAY,GAAI,WAAUT,MAAM,CAACQ,IAAP,IAAed,IAAI,CAACc,IAAK,EAAzD;AAEA,WAAOd,IAAI,CACTG,QAAQ,CAACa,IAAT,CACEP,gBAAgB,CAAC;AACfQ,MAAAA,MAAM,EAAEJ;AADO,KAAD,CADlB,CADS,EAMTT,GANS,EAOT,GAAGC,IAPM,CAAJ,CAQLW,IARK,CASLL,gBAAgB,CAAC;AACfM,MAAAA,MAAM,EAAEF;AADO,KAAD,CATX,CAAP;AAaD,GAhCD;;AAkCA,SAAQG,gBAAMC,eAAN,CAAuB,WAAUnB,IAAI,CAACc,IAAK,EAA3C,EAA8CZ,EAA9C,CAAR;AACD,CAvCM","sourcesContent":["import { Utils } from '@aimee-blue/ab-shared';\nimport { AnyEpic } from '../kit';\nimport { conditionalOperator } from '../conditionalOperator';\n\nexport interface ILogEpicParams {\n  name?: string;\n  input?: boolean;\n  output?: boolean;\n}\n\nexport const logEpic = <E extends AnyEpic>(\n  epic: E,\n  paramsRaw: ILogEpicParams\n): E => {\n  const fn = (...[commands, ctx, ...rest]: Parameters<E>): ReturnType<E> => {\n    const params = {\n      logEvents: ctx.logger.logEvents,\n      ...paramsRaw,\n    };\n\n    const maybeLogIncoming = conditionalOperator(\n      params.input ?? true,\n      params.logEvents\n    );\n\n    const maybeLogOutgoing = conditionalOperator(\n      params.output ?? true,\n      params.logEvents\n    );\n\n    const incomingName = `commands@${params.name || epic.name}`;\n    const outgoingName = `results@${params.name || epic.name}`;\n\n    return epic(\n      commands.pipe(\n        maybeLogIncoming({\n          prefix: incomingName,\n        })\n      ),\n      ctx,\n      ...rest\n    ).pipe(\n      maybeLogOutgoing({\n        prefix: outgoingName,\n      })\n    ) as ReturnType<E>;\n  };\n\n  return (Utils.setFunctionName(`logEpic.${epic.name}`, fn) as unknown) as E;\n};\n"],"file":"logEpic.js"}