{"version":3,"file":"jfkz-ngx-toolkit-logger.mjs","sources":["../../../projects/logger/src/lib/level.model.ts","../../../projects/logger/src/lib/level.token.ts","../../../projects/logger/src/lib/logger.service.ts","../../../projects/logger/src/lib/console-logger.service.ts","../../../projects/logger/src/lib/logger.decorator.ts","../../../projects/logger/src/lib/logger.module.ts","../../../projects/logger/src/lib/logger.rxjs.ts","../../../projects/logger/src/public-api.ts","../../../projects/logger/src/jfkz-ngx-toolkit-logger.ts"],"sourcesContent":["/**\n * Log levels\n */\nexport enum Level {\n  ERROR,\n  WARN,\n  INFO,\n  DEBUG,\n  LOG\n}\n","import {InjectionToken} from '@angular/core';\nimport {Level} from './level.model';\n\nexport const LOGGER_LEVEL = new InjectionToken<Level>('LOGGER_LEVEL');\n","import {Injectable} from '@angular/core';\nimport {Level} from './level.model';\n\n@Injectable()\nexport class LoggerService {\n\n  /**\n   * Outputs an error message.\n   */\n  error(message?: any, ...optionalParams: any[]) {\n  }\n\n  /**\n   * Outputs a warning message.\n   */\n  warn(message?: any, ...optionalParams: any[]) {\n  }\n\n  /**\n   * Outputs an informational message.\n   */\n  info(message?: any, ...optionalParams: any[]) {\n  }\n\n  /**\n   * Outputs a debug message.\n   */\n  debug(message?: any, ...optionalParams: any[]) {\n  }\n\n  /**\n   * Outputs a message.\n   */\n  log(message?: any, ...optionalParams: any[]) {\n  }\n\n  /**\n   * Outputs a message.\n   */\n  logLevel(level: Level, message?: any, ...optionalParams: any[]) {\n    switch (level) {\n      case Level.ERROR :\n        this.error(message, ...optionalParams);\n        break;\n      case Level.WARN :\n        this.warn(message, ...optionalParams);\n        break;\n      case Level.INFO :\n        this.info(message, ...optionalParams);\n        break;\n      case Level.DEBUG :\n        this.debug(message, ...optionalParams);\n        break;\n      case Level.LOG :\n        this.log(message, ...optionalParams);\n        break;\n    }\n  }\n\n}\n","import {Inject, Injectable, Optional} from '@angular/core';\nimport {Level} from './level.model';\nimport {LOGGER_LEVEL} from './level.token';\nimport {LoggerService} from './logger.service';\n\n@Injectable()\nexport class ConsoleLoggerService extends LoggerService {\n  constructor(@Optional() @Inject(LOGGER_LEVEL) level: Level) {\n    super();\n\n    if (level) {\n      Object.keys(Level)\n        .filter(s => isNaN(+s) && level >= Level[s])\n        .forEach(levelName => {\n          const methodName: string = levelName.toLowerCase();\n          this[methodName] = console[methodName].bind(console);\n        });\n    }\n  }\n}\n","import {Level} from './level.model';\nimport {LoggerService} from './logger.service';\n\nexport interface LoggerDecoratorData {\n  loggerService?: LoggerService;\n}\n\nexport const LOGGER_DECORATOR_DATA: LoggerDecoratorData = {};\n\nexport function Debug(message?: string): MethodDecorator {\n  return Log(message, Level.DEBUG);\n}\n\nexport function Log(message?: string, level: Level = Level.INFO): MethodDecorator {\n  return (target: Object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<any>): TypedPropertyDescriptor<any> => {\n    const originalMethod = descriptor.value;\n    descriptor.value = function(...args: any[]) {\n      const result = originalMethod.apply(this, args);\n      if (LOGGER_DECORATOR_DATA.loggerService) {\n        LOGGER_DECORATOR_DATA.loggerService.logLevel(level, message || `Call ${propertyKey.toString()}`, args, result);\n      }\n      return result;\n    };\n    return descriptor;\n  };\n}\n","import {APP_INITIALIZER, ModuleWithProviders, NgModule, Type} from '@angular/core';\nimport {ConsoleLoggerService} from './console-logger.service';\nimport {Level} from './level.model';\nimport {LOGGER_LEVEL} from './level.token';\nimport {LOGGER_DECORATOR_DATA} from './logger.decorator';\nimport {LoggerService} from './logger.service';\n\nexport function setupLoggerDecorator(loggerService: LoggerService) {\n  LOGGER_DECORATOR_DATA.loggerService = loggerService;\n  return () => null;\n}\n\n@NgModule()\nexport class LoggerModule {\n  static forRoot(level: Level = null, provider: Type<LoggerService> = ConsoleLoggerService): ModuleWithProviders<LoggerModule> {\n    return {\n      ngModule: LoggerModule,\n      providers: [\n        {\n          provide: LOGGER_LEVEL,\n          useValue: level\n        },\n        {\n          provide: LoggerService,\n          useClass: provider\n        },\n        {\n          provide: APP_INITIALIZER,\n          useFactory: setupLoggerDecorator,\n          deps: [LoggerService],\n          multi: true\n        }\n      ]\n    };\n  }\n}\n","import {MonoTypeOperatorFunction} from 'rxjs';\nimport {tap} from 'rxjs/operators';\nimport {Level} from './level.model';\nimport {LOGGER_DECORATOR_DATA} from './logger.decorator';\n\nexport function logger<T>(message: string,\n                          nextLevel: Level = Level.INFO,\n                          errorLevel: Level = Level.ERROR,\n                          completeLevel?: Level): MonoTypeOperatorFunction<T> {\n  return tap(x => {\n    if (LOGGER_DECORATOR_DATA.loggerService) {\n      LOGGER_DECORATOR_DATA.loggerService.logLevel(nextLevel, message, x);\n    }\n  }, e => {\n    if (LOGGER_DECORATOR_DATA.loggerService) {\n      LOGGER_DECORATOR_DATA.loggerService.logLevel(errorLevel, message, e);\n    }\n  }, () => {\n    if (LOGGER_DECORATOR_DATA.loggerService && completeLevel) {\n      LOGGER_DECORATOR_DATA.loggerService.logLevel(completeLevel, message);\n    }\n  });\n}\n","/*\n * Public API Surface of logger\n */\n\nexport {Level} from './lib/level.model';\nexport {LOGGER_LEVEL} from './lib/level.token';\nexport {LoggerService} from './lib/logger.service';\nexport {ConsoleLoggerService} from './lib/console-logger.service';\nexport {LoggerModule} from './lib/logger.module';\nexport {Log, Debug} from './lib/logger.decorator';\nexport {logger} from './lib/logger.rxjs';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAAA;;AAEG;AACS,IAAA,MAMX;AAND,CAAA,UAAY,KAAK,EAAA;IACf,KAAA,CAAA,KAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;IACL,KAAA,CAAA,KAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,KAAA,CAAA,KAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,KAAA,CAAA,KAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;IACL,KAAA,CAAA,KAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;AACL,CAAC,EANW,KAAK,KAAL,KAAK,GAMhB,EAAA,CAAA,CAAA;;MCNY,YAAY,GAAG,IAAI,cAAc,CAAQ,cAAc;;MCCvD,aAAa,CAAA;AAExB;;AAEG;AACH,IAAA,KAAK,CAAC,OAAa,EAAE,GAAG,cAAqB,EAAA;KAC5C;AAED;;AAEG;AACH,IAAA,IAAI,CAAC,OAAa,EAAE,GAAG,cAAqB,EAAA;KAC3C;AAED;;AAEG;AACH,IAAA,IAAI,CAAC,OAAa,EAAE,GAAG,cAAqB,EAAA;KAC3C;AAED;;AAEG;AACH,IAAA,KAAK,CAAC,OAAa,EAAE,GAAG,cAAqB,EAAA;KAC5C;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,OAAa,EAAE,GAAG,cAAqB,EAAA;KAC1C;AAED;;AAEG;AACH,IAAA,QAAQ,CAAC,KAAY,EAAE,OAAa,EAAE,GAAG,cAAqB,EAAA;AAC5D,QAAA,QAAQ,KAAK;YACX,KAAK,KAAK,CAAC,KAAK;gBACd,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,CAAC;gBACvC,MAAM;YACR,KAAK,KAAK,CAAC,IAAI;gBACb,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,CAAC;gBACtC,MAAM;YACR,KAAK,KAAK,CAAC,IAAI;gBACb,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,CAAC;gBACtC,MAAM;YACR,KAAK,KAAK,CAAC,KAAK;gBACd,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,CAAC;gBACvC,MAAM;YACR,KAAK,KAAK,CAAC,GAAG;gBACZ,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,CAAC;gBACrC,MAAM;AACT,SAAA;KACF;;0GArDU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;8GAAb,aAAa,EAAA,CAAA,CAAA;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;;;ACGL,MAAO,oBAAqB,SAAQ,aAAa,CAAA;AACrD,IAAA,WAAA,CAA8C,KAAY,EAAA;AACxD,QAAA,KAAK,EAAE,CAAC;AAER,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACf,iBAAA,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;iBAC3C,OAAO,CAAC,SAAS,IAAG;AACnB,gBAAA,MAAM,UAAU,GAAW,SAAS,CAAC,WAAW,EAAE,CAAC;AACnD,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACvD,aAAC,CAAC,CAAC;AACN,SAAA;KACF;;AAZU,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,kBACC,YAAY,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;qHADjC,oBAAoB,EAAA,CAAA,CAAA;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC,UAAU;;;8BAEI,QAAQ;;8BAAI,MAAM;+BAAC,YAAY,CAAA;;;;ACAvC,MAAM,qBAAqB,GAAwB,EAAE,CAAC;AAEvD,SAAU,KAAK,CAAC,OAAgB,EAAA;IACpC,OAAO,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAEK,SAAU,GAAG,CAAC,OAAgB,EAAE,KAAe,GAAA,KAAK,CAAC,IAAI,EAAA;AAC7D,IAAA,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAE,UAAwC,KAAkC;AAC9H,QAAA,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;AACxC,QAAA,UAAU,CAAC,KAAK,GAAG,UAAS,GAAG,IAAW,EAAA;YACxC,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAChD,IAAI,qBAAqB,CAAC,aAAa,EAAE;gBACvC,qBAAqB,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,CAAA,KAAA,EAAQ,WAAW,CAAC,QAAQ,EAAE,CAAE,CAAA,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAChH,aAAA;AACD,YAAA,OAAO,MAAM,CAAC;AAChB,SAAC,CAAC;AACF,QAAA,OAAO,UAAU,CAAC;AACpB,KAAC,CAAC;AACJ;;AClBM,SAAU,oBAAoB,CAAC,aAA4B,EAAA;AAC/D,IAAA,qBAAqB,CAAC,aAAa,GAAG,aAAa,CAAC;AACpD,IAAA,OAAO,MAAM,IAAI,CAAC;AACpB,CAAC;MAGY,YAAY,CAAA;IACvB,OAAO,OAAO,CAAC,QAAe,IAAI,EAAE,WAAgC,oBAAoB,EAAA;QACtF,OAAO;AACL,YAAA,QAAQ,EAAE,YAAY;AACtB,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,YAAY;AACrB,oBAAA,QAAQ,EAAE,KAAK;AAChB,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,aAAa;AACtB,oBAAA,QAAQ,EAAE,QAAQ;AACnB,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,eAAe;AACxB,oBAAA,UAAU,EAAE,oBAAoB;oBAChC,IAAI,EAAE,CAAC,aAAa,CAAC;AACrB,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA;AACF,aAAA;SACF,CAAC;KACH;;yGArBU,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;0GAAZ,YAAY,EAAA,CAAA,CAAA;0GAAZ,YAAY,EAAA,CAAA,CAAA;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,QAAQ;;;SCPO,MAAM,CAAI,OAAe,EACf,SAAmB,GAAA,KAAK,CAAC,IAAI,EAC7B,UAAoB,GAAA,KAAK,CAAC,KAAK,EAC/B,aAAqB,EAAA;AAC7C,IAAA,OAAO,GAAG,CAAC,CAAC,IAAG;QACb,IAAI,qBAAqB,CAAC,aAAa,EAAE;YACvC,qBAAqB,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;AACrE,SAAA;KACF,EAAE,CAAC,IAAG;QACL,IAAI,qBAAqB,CAAC,aAAa,EAAE;YACvC,qBAAqB,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;AACtE,SAAA;KACF,EAAE,MAAK;AACN,QAAA,IAAI,qBAAqB,CAAC,aAAa,IAAI,aAAa,EAAE;YACxD,qBAAqB,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AACtE,SAAA;AACH,KAAC,CAAC,CAAC;AACL;;ACtBA;;AAEG;;ACFH;;AAEG;;;;"}