@iamnnort/nestjs-logger 2.1.10 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -3,7 +3,6 @@ import { DynamicModule, ConsoleLogger } from '@nestjs/common';
3
3
 
4
4
  type LoggerConfig = {
5
5
  level: LoggerLevels;
6
- output?: LoggerOutputs;
7
6
  };
8
7
  declare enum LoggerLevels {
9
8
  FATAL = "fatal",
@@ -13,10 +12,6 @@ declare enum LoggerLevels {
13
12
  DEBUG = "debug",
14
13
  TRACE = "trace"
15
14
  }
16
- declare enum LoggerOutputs {
17
- MESSAGE = "message",
18
- DATA = "data"
19
- }
20
15
  declare enum LoggerContexts {
21
16
  SYSTEM = "System",
22
17
  INSTANCE_LOADER = "InstanceLoader",
@@ -46,4 +41,4 @@ declare class LoggerService extends ConsoleLogger {
46
41
  fatal(message: any, context?: string): void;
47
42
  }
48
43
 
49
- export { type LoggerConfig, LoggerContexts, LoggerLevels, LoggerModule, LoggerOutputs, LoggerService };
44
+ export { type LoggerConfig, LoggerContexts, LoggerLevels, LoggerModule, LoggerService };
package/dist/index.d.ts CHANGED
@@ -3,7 +3,6 @@ import { DynamicModule, ConsoleLogger } from '@nestjs/common';
3
3
 
4
4
  type LoggerConfig = {
5
5
  level: LoggerLevels;
6
- output?: LoggerOutputs;
7
6
  };
8
7
  declare enum LoggerLevels {
9
8
  FATAL = "fatal",
@@ -13,10 +12,6 @@ declare enum LoggerLevels {
13
12
  DEBUG = "debug",
14
13
  TRACE = "trace"
15
14
  }
16
- declare enum LoggerOutputs {
17
- MESSAGE = "message",
18
- DATA = "data"
19
- }
20
15
  declare enum LoggerContexts {
21
16
  SYSTEM = "System",
22
17
  INSTANCE_LOADER = "InstanceLoader",
@@ -46,4 +41,4 @@ declare class LoggerService extends ConsoleLogger {
46
41
  fatal(message: any, context?: string): void;
47
42
  }
48
43
 
49
- export { type LoggerConfig, LoggerContexts, LoggerLevels, LoggerModule, LoggerOutputs, LoggerService };
44
+ export { type LoggerConfig, LoggerContexts, LoggerLevels, LoggerModule, LoggerService };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var h=Object.defineProperty;var i=(t,e)=>h(t,"name",{value:e,configurable:!0});var _common = require('@nestjs/common');var _core = require('@nestjs/core');var _nestjspino = require('nestjs-pino');var{ConfigurableModuleClass:T,MODULE_OPTIONS_TOKEN:K,OPTIONS_TYPE:X,ASYNC_OPTIONS_TYPE:J}=new (0, _common.ConfigurableModuleBuilder)().build();function P(t,e,r,n){var s=arguments.length,o=s<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,r):n,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(t,e,r,n);else for(var c=t.length-1;c>=0;c--)(a=t[c])&&(o=(s<3?a(o):s>3?a(e,r,o):a(e,r))||o);return s>3&&o&&Object.defineProperty(e,r,o),o}i(P,"_ts_decorate");var p=class{static{i(this,"LoggerExceptionFilter")}catch(e,r){let s=r.switchToHttp().getResponse();if(e instanceof _common.HttpException){let o=e.getStatus(),a=e.getResponse();return s.status(o).json(a)}s.status(_common.HttpStatus.INTERNAL_SERVER_ERROR).json({message:"Something went wrong.",error:"Internal Server Error",statusCode:_common.HttpStatus.INTERNAL_SERVER_ERROR})}};p=P([_common.Catch.call(void 0, )],p);var _http = require('@iamnnort/config/http');var $=(function(t){return t.FATAL="fatal",t.ERROR="error",t.WARN="warn",t.INFO="info",t.DEBUG="debug",t.TRACE="trace",t})({}),A= exports.LoggerOutputs =(function(t){return t.MESSAGE="message",t.DATA="data",t})({}),m= exports.LoggerContexts =(function(t){return t.SYSTEM="System",t.INSTANCE_LOADER="InstanceLoader",t.ROUTES_RESOLVER="RoutesResolver",t.ROUTER_EXPLORER="RouterExplorer",t.NEST_FACTORY="NestFactory",t.NEST_APPLICATION="NestApplication",t})({});function _(t){let e=t;return{url:t.url,method:t.method,data:e.body}}i(_,"toAxiosConfig");function R(t,e){return{status:e.statusCode,statusText:e.statusMessage,data:void 0,headers:{},config:_(t)}}i(R,"toAxiosResponse");function L(t,e,r){return{...r,name:r.name,message:r.message,response:R(t,e),config:_(t)}}i(L,"toAxiosError");function d(t){let e=new _http.HttpMessageFormatter;return{pinoHttp:[{name:"Http",level:t.level,timestamp:!1,customReceivedMessage:i(n=>{let s=R(n,{});return new (0, _http.HttpMessageBuilder)({response:s}).makeMethodText().makeUrlText().build()},"customReceivedMessage"),customSuccessMessage:i((n,s,o)=>{let a=R(n,s);return new (0, _http.HttpMessageBuilder)({response:a,duration:o}).makeMethodText().makeUrlText().makeStatusText().makeDurationText().build()},"customSuccessMessage"),customSuccessObject:i((n,s)=>{let o=R(n,s),a=new (0, _http.HttpMessageBuilder)({response:o}),c={},E=a.makeRequestDataObj();return Object.keys(E).length>0&&(c.request=E),c},"customSuccessObject"),customErrorMessage:i((n,s,o)=>{let a=L(n,s,o);return new (0, _http.HttpMessageBuilder)({error:a}).makeMethodText().makeUrlText().makeStatusText().build()},"customErrorMessage"),customLogLevel:i((n,s,o)=>o||s.statusCode>=_http.HttpStatuses.INTERNAL_SERVER_ERROR?"error":s.statusCode>=_http.HttpStatuses.BAD_REQUEST?"warn":"info","customLogLevel"),customAttributeKeys:{err:"error"}},t.output===A.DATA?e.makeLambdaLogStream():e.makeLogStream()],forRoutes:[{path:"*",method:_common.RequestMethod.ALL}]}}i(d,"makePinoParams");function x(t,e,r,n){var s=arguments.length,o=s<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,r):n,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(t,e,r,n);else for(var c=t.length-1;c>=0;c--)(a=t[c])&&(o=(s<3?a(o):s>3?a(e,r,o):a(e,r))||o);return s>3&&o&&Object.defineProperty(e,r,o),o}i(x,"_ts_decorate");function w(t,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(t,e)}i(w,"_ts_metadata");var u=class extends _common.ConsoleLogger{static{i(this,"LoggerService")}print(e,r,n){let s=_optionalChain([n, 'optionalAccess', _2 => _2.replace, 'call', _3 => _3(/^_/,"")])||this.context||"";if([m.INSTANCE_LOADER,m.ROUTES_RESOLVER,m.ROUTER_EXPLORER].includes(s))return;let c={[m.NEST_FACTORY]:"Application is starting...",[m.NEST_APPLICATION]:"Application started."}[s]||r||"";(s?this.pinoLogger.logger.child({name:s}):this.pinoLogger.logger)[e](c)}log(e,r){this.print("info",e,r)}error(e,r){this.print("error",e,r)}warn(e,r){this.print("warn",e,r)}debug(e,r){this.print("debug",e,r)}verbose(e,r){this.print("trace",e,r)}fatal(e,r){this.print("fatal",e,r)}};x([_common.Inject.call(void 0, _nestjspino.PinoLogger),w("design:type",typeof _nestjspino.PinoLogger>"u"?Object:_nestjspino.PinoLogger)],u.prototype,"pinoLogger",void 0);u= exports.LoggerService =x([_common.Injectable.call(void 0, {scope:_common.Scope.TRANSIENT})],u);function F(t,e,r,n){var s=arguments.length,o=s<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,r):n,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(t,e,r,n);else for(var c=t.length-1;c>=0;c--)(a=t[c])&&(o=(s<3?a(o):s>3?a(e,r,o):a(e,r))||o);return s>3&&o&&Object.defineProperty(e,r,o),o}i(F,"_ts_decorate");var f=class extends T{static{i(this,"LoggerModule")}static register(e){let r=super.register(e);return{...r,imports:[..._nullishCoalesce(r.imports, () => ([])),_nestjspino.LoggerModule.forRoot(d(e))]}}static registerAsync(e){let r=super.registerAsync(e);return{...r,imports:[..._nullishCoalesce(r.imports, () => ([])),_nestjspino.LoggerModule.forRootAsync({imports:e.imports,inject:e.inject,useFactory:i(async(...n)=>{if(e.useFactory){let s=await e.useFactory(...n);return d(s)}return d({})},"useFactory")})]}}};f= exports.LoggerModule =F([_common.Global.call(void 0, ),_common.Module.call(void 0, {providers:[u,{provide:_core.APP_INTERCEPTOR,useClass:_nestjspino.LoggerErrorInterceptor},{provide:_core.APP_FILTER,useClass:p}],exports:[u]})],f);exports.LoggerContexts = m; exports.LoggerLevels = $; exports.LoggerModule = f; exports.LoggerOutputs = A; exports.LoggerService = u;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var x=Object.defineProperty;var i=(r,e)=>x(r,"name",{value:e,configurable:!0});var _common = require('@nestjs/common');var _core = require('@nestjs/core');var _nestjspino = require('nestjs-pino');var{ConfigurableModuleClass:g,MODULE_OPTIONS_TOKEN:G,OPTIONS_TYPE:K,ASYNC_OPTIONS_TYPE:X}=new (0, _common.ConfigurableModuleBuilder)().build();function h(r,e,t,n){var s=arguments.length,o=s<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,t):n,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(r,e,t,n);else for(var c=r.length-1;c>=0;c--)(a=r[c])&&(o=(s<3?a(o):s>3?a(e,t,o):a(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o}i(h,"_ts_decorate");var p=class{static{i(this,"LoggerExceptionFilter")}catch(e,t){let s=t.switchToHttp().getResponse();if(e instanceof _common.HttpException){let o=e.getStatus(),a=e.getResponse();return s.status(o).json(a)}s.status(_common.HttpStatus.INTERNAL_SERVER_ERROR).json({message:"Something went wrong.",error:"Internal Server Error",statusCode:_common.HttpStatus.INTERNAL_SERVER_ERROR})}};p=h([_common.Catch.call(void 0, )],p);var _http = require('@iamnnort/config/http');function S(r){let e=r;return{url:r.url,method:r.method,data:e.body}}i(S,"toAxiosConfig");function R(r,e){return{status:e.statusCode,statusText:e.statusMessage,data:void 0,headers:{},config:S(r)}}i(R,"toAxiosResponse");function j(r,e,t){return{...t,name:t.name,message:t.message,response:R(r,e),config:S(r)}}i(j,"toAxiosError");function d(r){let e=new _http.HttpMessageFormatter;return{pinoHttp:[{name:"Http",level:r.level,timestamp:!1,customReceivedMessage:i(t=>{let n=R(t,{});return new (0, _http.HttpMessageBuilder)({response:n}).makeMethodText().makeUrlText().build()},"customReceivedMessage"),customSuccessMessage:i((t,n,s)=>{let o=R(t,n);return new (0, _http.HttpMessageBuilder)({response:o,duration:s}).makeMethodText().makeUrlText().makeStatusText().makeDurationText().build()},"customSuccessMessage"),customSuccessObject:i((t,n)=>{let s=R(t,n),o=new (0, _http.HttpMessageBuilder)({response:s}),a={},c=o.makeRequestDataObj();return Object.keys(c).length>0&&(a.request=c),a},"customSuccessObject"),customErrorMessage:i((t,n,s)=>{let o=j(t,n,s);return new (0, _http.HttpMessageBuilder)({error:o}).makeMethodText().makeUrlText().makeStatusText().build()},"customErrorMessage"),customLogLevel:i((t,n,s)=>s||n.statusCode>=_http.HttpStatuses.INTERNAL_SERVER_ERROR?"error":n.statusCode>=_http.HttpStatuses.BAD_REQUEST?"warn":"info","customLogLevel"),customAttributeKeys:{err:"error"}},e.makeLogStream()],forRoutes:[{path:"*",method:_common.RequestMethod.ALL}]}}i(d,"makePinoParams");var oe=(function(r){return r.FATAL="fatal",r.ERROR="error",r.WARN="warn",r.INFO="info",r.DEBUG="debug",r.TRACE="trace",r})({}),f= exports.LoggerContexts =(function(r){return r.SYSTEM="System",r.INSTANCE_LOADER="InstanceLoader",r.ROUTES_RESOLVER="RoutesResolver",r.ROUTER_EXPLORER="RouterExplorer",r.NEST_FACTORY="NestFactory",r.NEST_APPLICATION="NestApplication",r})({});function _(r,e,t,n){var s=arguments.length,o=s<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,t):n,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(r,e,t,n);else for(var c=r.length-1;c>=0;c--)(a=r[c])&&(o=(s<3?a(o):s>3?a(e,t,o):a(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o}i(_,"_ts_decorate");function C(r,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(r,e)}i(C,"_ts_metadata");var u=class extends _common.ConsoleLogger{static{i(this,"LoggerService")}print(e,t,n){let s=_optionalChain([n, 'optionalAccess', _2 => _2.replace, 'call', _3 => _3(/^_/,"")])||this.context||"";if([f.INSTANCE_LOADER,f.ROUTES_RESOLVER,f.ROUTER_EXPLORER].includes(s))return;let c={[f.NEST_FACTORY]:"Application is starting...",[f.NEST_APPLICATION]:"Application started."}[s]||t||"";(s?this.pinoLogger.logger.child({name:s}):this.pinoLogger.logger)[e](c)}log(e,t){this.print("info",e,t)}error(e,t){this.print("error",e,t)}warn(e,t){this.print("warn",e,t)}debug(e,t){this.print("debug",e,t)}verbose(e,t){this.print("trace",e,t)}fatal(e,t){this.print("fatal",e,t)}};_([_common.Inject.call(void 0, _nestjspino.PinoLogger),C("design:type",typeof _nestjspino.PinoLogger>"u"?Object:_nestjspino.PinoLogger)],u.prototype,"pinoLogger",void 0);u= exports.LoggerService =_([_common.Injectable.call(void 0, {scope:_common.Scope.TRANSIENT})],u);function B(r,e,t,n){var s=arguments.length,o=s<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,t):n,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(r,e,t,n);else for(var c=r.length-1;c>=0;c--)(a=r[c])&&(o=(s<3?a(o):s>3?a(e,t,o):a(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o}i(B,"_ts_decorate");var m=class extends g{static{i(this,"LoggerModule")}static register(e){let t=super.register(e);return{...t,imports:[..._nullishCoalesce(t.imports, () => ([])),_nestjspino.LoggerModule.forRoot(d(e))]}}static registerAsync(e){let t=super.registerAsync(e);return{...t,imports:[..._nullishCoalesce(t.imports, () => ([])),_nestjspino.LoggerModule.forRootAsync({imports:e.imports,inject:e.inject,useFactory:i(async(...n)=>{if(e.useFactory){let s=await e.useFactory(...n);return d(s)}return d({})},"useFactory")})]}}};m= exports.LoggerModule =B([_common.Global.call(void 0, ),_common.Module.call(void 0, {providers:[u,{provide:_core.APP_INTERCEPTOR,useClass:_nestjspino.LoggerErrorInterceptor},{provide:_core.APP_FILTER,useClass:p}],exports:[u]})],m);exports.LoggerContexts = f; exports.LoggerLevels = oe; exports.LoggerModule = m; exports.LoggerService = u;
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/nestjs-logger/nestjs-logger/dist/index.js","../src/module.ts","../src/module-definition.ts","../src/exception-filter.ts","../src/builder.ts","../src/types.ts","../src/service.ts"],"names":["ConfigurableModuleClass","MODULE_OPTIONS_TOKEN","OPTIONS_TYPE","ASYNC_OPTIONS_TYPE","ConfigurableModuleBuilder","build","LoggerExceptionFilter","catch","exception","host","response","switchToHttp","getResponse","HttpException","statusCode","getStatus","errorResponse","status","json","HttpStatus","INTERNAL_SERVER_ERROR","message","error","LoggerLevels","LoggerOutputs","LoggerContexts","toAxiosConfig","req","expressReq","url","method","data","body","toAxiosResponse","res","statusText","statusMessage","undefined","headers","config","toAxiosError","name","makePinoParams","options","formatter","HttpMessageFormatter","pinoHttp","level","timestamp","customReceivedMessage","__name","HttpMessageBuilder","makeMethodText","makeUrlText","customSuccessMessage","duration","makeStatusText","makeDurationText","customSuccessObject","messageBuilder","requestData","makeRequestDataObj","Object","keys","length","customErrorMessage","axiosError","customLogLevel","_req","HttpStatuses","BAD_REQUEST","customAttributeKeys","err","output","DATA","makeLambdaLogStream","makeLogStream","forRoutes","path","RequestMethod","ALL","LoggerService","ConsoleLogger","pinoLogger","print","context","ctx","replace","INSTANCE_LOADER","ROUTES_RESOLVER","ROUTER_EXPLORER","includes","msg","NEST_FACTORY","NEST_APPLICATION","logger","child","log","warn","debug","verbose","fatal","scope","Scope","TRANSIENT","LoggerModule","register","base","imports","NestJsPinoLoggerModule","forRoot","registerAsync","forRootAsync","inject","useFactory","args","providers","provide","APP_INTERCEPTOR","useClass","LoggerErrorInterceptor","APP_FILTER","exports"],"mappings":"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","file":"/home/runner/work/nestjs-logger/nestjs-logger/dist/index.js","sourcesContent":[null,"import { DynamicModule, Global, Module } from '@nestjs/common';\nimport { APP_FILTER, APP_INTERCEPTOR } from '@nestjs/core';\nimport { LoggerErrorInterceptor, LoggerModule as NestJsPinoLoggerModule } from 'nestjs-pino';\nimport { ASYNC_OPTIONS_TYPE, ConfigurableModuleClass, OPTIONS_TYPE } from './module-definition';\nimport { LoggerExceptionFilter } from './exception-filter';\nimport { makePinoParams } from './builder';\nimport { LoggerService } from './service';\nimport type { LoggerConfig } from './types';\n\n@Global()\n@Module({\n providers: [\n LoggerService,\n {\n provide: APP_INTERCEPTOR,\n useClass: LoggerErrorInterceptor,\n },\n {\n provide: APP_FILTER,\n useClass: LoggerExceptionFilter,\n },\n ],\n exports: [LoggerService],\n})\nexport class LoggerModule extends ConfigurableModuleClass {\n static register(options: typeof OPTIONS_TYPE): DynamicModule {\n const base = super.register(options);\n\n return {\n ...base,\n imports: [...(base.imports ?? []), NestJsPinoLoggerModule.forRoot(makePinoParams(options))],\n };\n }\n\n static registerAsync(options: typeof ASYNC_OPTIONS_TYPE): DynamicModule {\n const base = super.registerAsync(options);\n\n return {\n ...base,\n imports: [\n ...(base.imports ?? []),\n NestJsPinoLoggerModule.forRootAsync({\n imports: options.imports,\n inject: options.inject,\n useFactory: async (...args: unknown[]) => {\n if (options.useFactory) {\n const config = await options.useFactory(...args);\n\n return makePinoParams(config);\n }\n\n return makePinoParams({} as LoggerConfig);\n },\n }),\n ],\n };\n }\n}\n","import { ConfigurableModuleBuilder } from '@nestjs/common';\nimport { LoggerConfig } from './types';\n\nexport const { ConfigurableModuleClass, MODULE_OPTIONS_TOKEN, OPTIONS_TYPE, ASYNC_OPTIONS_TYPE } =\n new ConfigurableModuleBuilder<LoggerConfig>().build();\n","import { type ArgumentsHost, Catch, type ExceptionFilter, HttpException, HttpStatus } from '@nestjs/common';\nimport type { Response } from 'express';\n\n@Catch()\nexport class LoggerExceptionFilter implements ExceptionFilter {\n catch(exception: any, host: ArgumentsHost) {\n const ctx = host.switchToHttp();\n const response = ctx.getResponse<Response>();\n\n if (exception instanceof HttpException) {\n const statusCode = exception.getStatus();\n const errorResponse = exception.getResponse();\n\n return response.status(statusCode).json(errorResponse);\n }\n\n response.status(HttpStatus.INTERNAL_SERVER_ERROR).json({\n message: 'Something went wrong.',\n error: 'Internal Server Error',\n statusCode: HttpStatus.INTERNAL_SERVER_ERROR,\n });\n }\n}\n","import type { IncomingMessage, ServerResponse } from 'http';\nimport type { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport type { Params as NestJsPinoParams } from 'nestjs-pino';\nimport { OPTIONS_TYPE } from './module-definition';\nimport { RequestMethod } from '@nestjs/common';\nimport { HttpMessageBuilder, HttpStatuses } from '@iamnnort/config/http';\nimport { HttpMessageFormatter } from '@iamnnort/config/http';\nimport { LoggerOutputs } from './types';\n\nfunction toAxiosConfig(req: IncomingMessage): AxiosRequestConfig {\n const expressReq = req as IncomingMessage & { body?: unknown };\n\n return {\n url: req.url,\n method: req.method,\n data: expressReq.body,\n } as AxiosRequestConfig;\n}\n\nfunction toAxiosResponse(req: IncomingMessage, res: ServerResponse): AxiosResponse {\n return {\n status: res.statusCode,\n statusText: res.statusMessage,\n data: undefined,\n headers: {},\n config: toAxiosConfig(req),\n } as AxiosResponse;\n}\n\nfunction toAxiosError(req: IncomingMessage, res: ServerResponse, error: Error): AxiosError {\n return {\n ...error,\n name: error.name,\n message: error.message,\n response: toAxiosResponse(req, res),\n config: toAxiosConfig(req),\n } as AxiosError;\n}\n\nexport function makePinoParams(options: typeof OPTIONS_TYPE): NestJsPinoParams {\n const formatter = new HttpMessageFormatter();\n\n const pinoOptions = {\n name: 'Http',\n level: options.level,\n timestamp: false,\n customReceivedMessage: (req) => {\n const response = toAxiosResponse(req, {} as ServerResponse);\n\n const messageBuilder = new HttpMessageBuilder({\n response,\n });\n\n return messageBuilder.makeMethodText().makeUrlText().build();\n },\n customSuccessMessage: (req, res, duration) => {\n const response = toAxiosResponse(req, res);\n\n const messageBuilder = new HttpMessageBuilder({\n response,\n duration,\n });\n\n return messageBuilder.makeMethodText().makeUrlText().makeStatusText().makeDurationText().build();\n },\n customSuccessObject: (req, res) => {\n const response = toAxiosResponse(req, res);\n\n const messageBuilder = new HttpMessageBuilder({\n response,\n });\n\n const data = {};\n\n const requestData = messageBuilder.makeRequestDataObj();\n\n if (Object.keys(requestData).length > 0) {\n data['request'] = requestData;\n }\n\n return data;\n },\n customErrorMessage: (req, res, error) => {\n const axiosError = toAxiosError(req, res, error);\n\n const messageBuilder = new HttpMessageBuilder({\n error: axiosError,\n });\n\n return messageBuilder.makeMethodText().makeUrlText().makeStatusText().build();\n },\n customLogLevel: (_req, res, error) => {\n if (error || res.statusCode >= HttpStatuses.INTERNAL_SERVER_ERROR) {\n return 'error';\n }\n\n if (res.statusCode >= HttpStatuses.BAD_REQUEST) {\n return 'warn';\n }\n\n return 'info';\n },\n customAttributeKeys: {\n err: 'error',\n },\n };\n\n return {\n pinoHttp: [\n pinoOptions,\n options.output === LoggerOutputs.DATA ? formatter.makeLambdaLogStream() : formatter.makeLogStream(),\n ],\n\n forRoutes: [\n {\n path: '*',\n method: RequestMethod.ALL,\n },\n ],\n };\n}\n","export type LoggerConfig = {\n level: LoggerLevels;\n output?: LoggerOutputs;\n};\n\nexport enum LoggerLevels {\n FATAL = 'fatal',\n ERROR = 'error',\n WARN = 'warn',\n INFO = 'info',\n DEBUG = 'debug',\n TRACE = 'trace',\n}\n\nexport enum LoggerOutputs {\n MESSAGE = 'message',\n DATA = 'data',\n}\n\nexport enum LoggerContexts {\n SYSTEM = 'System',\n INSTANCE_LOADER = 'InstanceLoader',\n ROUTES_RESOLVER = 'RoutesResolver',\n ROUTER_EXPLORER = 'RouterExplorer',\n NEST_FACTORY = 'NestFactory',\n NEST_APPLICATION = 'NestApplication',\n}\n","import { ConsoleLogger, Inject, Injectable, Scope } from '@nestjs/common';\nimport { PinoLogger } from 'nestjs-pino';\nimport { LoggerContexts } from './types';\n\n@Injectable({\n scope: Scope.TRANSIENT,\n})\nexport class LoggerService extends ConsoleLogger {\n @Inject(PinoLogger)\n private readonly pinoLogger: PinoLogger;\n\n private print(level: string, message: any, context?: string) {\n const ctx = context?.replace(/^_/, '') || this.context || '';\n\n const ctxBlacklist: string[] = [\n LoggerContexts.INSTANCE_LOADER,\n LoggerContexts.ROUTES_RESOLVER,\n LoggerContexts.ROUTER_EXPLORER,\n ];\n\n if (ctxBlacklist.includes(ctx)) {\n return;\n }\n\n const ctxMessageMap: Record<string, string> = {\n [LoggerContexts.NEST_FACTORY]: 'Application is starting...',\n [LoggerContexts.NEST_APPLICATION]: 'Application started.',\n };\n\n const msg = ctxMessageMap[ctx] || message || '';\n\n const logger = ctx ? this.pinoLogger.logger.child({ name: ctx }) : this.pinoLogger.logger;\n\n logger[level](msg);\n }\n\n log(message: any, context?: string) {\n this.print('info', message, context);\n }\n\n error(message: any, context?: string) {\n this.print('error', message, context);\n }\n\n warn(message: any, context?: string) {\n this.print('warn', message, context);\n }\n\n debug(message: any, context?: string) {\n this.print('debug', message, context);\n }\n\n verbose(message: any, context?: string) {\n this.print('trace', message, context);\n }\n\n fatal(message: any, context?: string) {\n this.print('fatal', message, context);\n }\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/nestjs-logger/nestjs-logger/dist/index.js","../src/module.ts","../src/module-definition.ts","../src/exception-filter.ts","../src/builder.ts","../src/service.ts","../src/types.ts"],"names":["ConfigurableModuleClass","MODULE_OPTIONS_TOKEN","OPTIONS_TYPE","ASYNC_OPTIONS_TYPE","ConfigurableModuleBuilder","build","LoggerExceptionFilter","catch","exception","host","response","switchToHttp","getResponse","HttpException","statusCode","getStatus","errorResponse","status","json","HttpStatus","INTERNAL_SERVER_ERROR","message","error","toAxiosConfig","req","expressReq","url","method","data","body","toAxiosResponse","res","statusText","statusMessage","undefined","headers","config","toAxiosError","name","makePinoParams","options","formatter","HttpMessageFormatter","pinoHttp","level","timestamp","customReceivedMessage","__name","HttpMessageBuilder","makeMethodText","makeUrlText","customSuccessMessage","duration","makeStatusText","makeDurationText","customSuccessObject","messageBuilder","requestData","makeRequestDataObj","Object","keys","length","customErrorMessage","axiosError","customLogLevel","_req","HttpStatuses","BAD_REQUEST","customAttributeKeys","err","makeLogStream","forRoutes","path","RequestMethod","ALL","LoggerLevels","LoggerContexts","LoggerService","ConsoleLogger","pinoLogger","print","context","ctx","replace","INSTANCE_LOADER","ROUTES_RESOLVER","ROUTER_EXPLORER","includes","msg","NEST_FACTORY","NEST_APPLICATION","logger","child","log","warn","debug","verbose","fatal","scope","Scope","TRANSIENT","LoggerModule","register","base","imports","NestJsPinoLoggerModule","forRoot","registerAsync","forRootAsync","inject","useFactory","args","providers","provide","APP_INTERCEPTOR","useClass","LoggerErrorInterceptor","APP_FILTER","exports"],"mappings":"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","file":"/home/runner/work/nestjs-logger/nestjs-logger/dist/index.js","sourcesContent":[null,"import { DynamicModule, Global, Module } from '@nestjs/common';\nimport { APP_FILTER, APP_INTERCEPTOR } from '@nestjs/core';\nimport { LoggerErrorInterceptor, LoggerModule as NestJsPinoLoggerModule } from 'nestjs-pino';\nimport { ASYNC_OPTIONS_TYPE, ConfigurableModuleClass, OPTIONS_TYPE } from './module-definition';\nimport { LoggerExceptionFilter } from './exception-filter';\nimport { makePinoParams } from './builder';\nimport { LoggerService } from './service';\nimport type { LoggerConfig } from './types';\n\n@Global()\n@Module({\n providers: [\n LoggerService,\n {\n provide: APP_INTERCEPTOR,\n useClass: LoggerErrorInterceptor,\n },\n {\n provide: APP_FILTER,\n useClass: LoggerExceptionFilter,\n },\n ],\n exports: [LoggerService],\n})\nexport class LoggerModule extends ConfigurableModuleClass {\n static register(options: typeof OPTIONS_TYPE): DynamicModule {\n const base = super.register(options);\n\n return {\n ...base,\n imports: [...(base.imports ?? []), NestJsPinoLoggerModule.forRoot(makePinoParams(options))],\n };\n }\n\n static registerAsync(options: typeof ASYNC_OPTIONS_TYPE): DynamicModule {\n const base = super.registerAsync(options);\n\n return {\n ...base,\n imports: [\n ...(base.imports ?? []),\n NestJsPinoLoggerModule.forRootAsync({\n imports: options.imports,\n inject: options.inject,\n useFactory: async (...args: unknown[]) => {\n if (options.useFactory) {\n const config = await options.useFactory(...args);\n\n return makePinoParams(config);\n }\n\n return makePinoParams({} as LoggerConfig);\n },\n }),\n ],\n };\n }\n}\n","import { ConfigurableModuleBuilder } from '@nestjs/common';\nimport { LoggerConfig } from './types';\n\nexport const { ConfigurableModuleClass, MODULE_OPTIONS_TOKEN, OPTIONS_TYPE, ASYNC_OPTIONS_TYPE } =\n new ConfigurableModuleBuilder<LoggerConfig>().build();\n","import { type ArgumentsHost, Catch, type ExceptionFilter, HttpException, HttpStatus } from '@nestjs/common';\nimport type { Response } from 'express';\n\n@Catch()\nexport class LoggerExceptionFilter implements ExceptionFilter {\n catch(exception: any, host: ArgumentsHost) {\n const ctx = host.switchToHttp();\n const response = ctx.getResponse<Response>();\n\n if (exception instanceof HttpException) {\n const statusCode = exception.getStatus();\n const errorResponse = exception.getResponse();\n\n return response.status(statusCode).json(errorResponse);\n }\n\n response.status(HttpStatus.INTERNAL_SERVER_ERROR).json({\n message: 'Something went wrong.',\n error: 'Internal Server Error',\n statusCode: HttpStatus.INTERNAL_SERVER_ERROR,\n });\n }\n}\n","import type { IncomingMessage, ServerResponse } from 'http';\nimport type { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport type { Params as NestJsPinoParams } from 'nestjs-pino';\nimport { OPTIONS_TYPE } from './module-definition';\nimport { RequestMethod } from '@nestjs/common';\nimport { HttpMessageBuilder, HttpStatuses } from '@iamnnort/config/http';\nimport { HttpMessageFormatter } from '@iamnnort/config/http';\n\nfunction toAxiosConfig(req: IncomingMessage): AxiosRequestConfig {\n const expressReq = req as IncomingMessage & { body?: unknown };\n\n return {\n url: req.url,\n method: req.method,\n data: expressReq.body,\n } as AxiosRequestConfig;\n}\n\nfunction toAxiosResponse(req: IncomingMessage, res: ServerResponse): AxiosResponse {\n return {\n status: res.statusCode,\n statusText: res.statusMessage,\n data: undefined,\n headers: {},\n config: toAxiosConfig(req),\n } as AxiosResponse;\n}\n\nfunction toAxiosError(req: IncomingMessage, res: ServerResponse, error: Error): AxiosError {\n return {\n ...error,\n name: error.name,\n message: error.message,\n response: toAxiosResponse(req, res),\n config: toAxiosConfig(req),\n } as AxiosError;\n}\n\nexport function makePinoParams(options: typeof OPTIONS_TYPE): NestJsPinoParams {\n const formatter = new HttpMessageFormatter();\n\n return {\n pinoHttp: [\n {\n name: 'Http',\n level: options.level,\n timestamp: false,\n customReceivedMessage: (req) => {\n const response = toAxiosResponse(req, {} as ServerResponse);\n\n const messageBuilder = new HttpMessageBuilder({\n response,\n });\n\n return messageBuilder.makeMethodText().makeUrlText().build();\n },\n customSuccessMessage: (req, res, duration) => {\n const response = toAxiosResponse(req, res);\n\n const messageBuilder = new HttpMessageBuilder({\n response,\n duration,\n });\n\n return messageBuilder.makeMethodText().makeUrlText().makeStatusText().makeDurationText().build();\n },\n customSuccessObject: (req, res) => {\n const response = toAxiosResponse(req, res);\n\n const messageBuilder = new HttpMessageBuilder({\n response,\n });\n\n const data = {};\n\n const requestData = messageBuilder.makeRequestDataObj();\n\n if (Object.keys(requestData).length > 0) {\n data['request'] = requestData;\n }\n\n return data;\n },\n customErrorMessage: (req, res, error) => {\n const axiosError = toAxiosError(req, res, error);\n\n const messageBuilder = new HttpMessageBuilder({\n error: axiosError,\n });\n\n return messageBuilder.makeMethodText().makeUrlText().makeStatusText().build();\n },\n customLogLevel: (_req, res, error) => {\n if (error || res.statusCode >= HttpStatuses.INTERNAL_SERVER_ERROR) {\n return 'error';\n }\n\n if (res.statusCode >= HttpStatuses.BAD_REQUEST) {\n return 'warn';\n }\n\n return 'info';\n },\n customAttributeKeys: {\n err: 'error',\n },\n },\n formatter.makeLogStream(),\n ],\n forRoutes: [\n {\n path: '*',\n method: RequestMethod.ALL,\n },\n ],\n };\n}\n","import { ConsoleLogger, Inject, Injectable, Scope } from '@nestjs/common';\nimport { PinoLogger } from 'nestjs-pino';\nimport { LoggerContexts } from './types';\n\n@Injectable({\n scope: Scope.TRANSIENT,\n})\nexport class LoggerService extends ConsoleLogger {\n @Inject(PinoLogger)\n private readonly pinoLogger: PinoLogger;\n\n private print(level: string, message: any, context?: string) {\n const ctx = context?.replace(/^_/, '') || this.context || '';\n\n const ctxBlacklist: string[] = [\n LoggerContexts.INSTANCE_LOADER,\n LoggerContexts.ROUTES_RESOLVER,\n LoggerContexts.ROUTER_EXPLORER,\n ];\n\n if (ctxBlacklist.includes(ctx)) {\n return;\n }\n\n const ctxMessageMap: Record<string, string> = {\n [LoggerContexts.NEST_FACTORY]: 'Application is starting...',\n [LoggerContexts.NEST_APPLICATION]: 'Application started.',\n };\n\n const msg = ctxMessageMap[ctx] || message || '';\n\n const logger = ctx ? this.pinoLogger.logger.child({ name: ctx }) : this.pinoLogger.logger;\n\n logger[level](msg);\n }\n\n log(message: any, context?: string) {\n this.print('info', message, context);\n }\n\n error(message: any, context?: string) {\n this.print('error', message, context);\n }\n\n warn(message: any, context?: string) {\n this.print('warn', message, context);\n }\n\n debug(message: any, context?: string) {\n this.print('debug', message, context);\n }\n\n verbose(message: any, context?: string) {\n this.print('trace', message, context);\n }\n\n fatal(message: any, context?: string) {\n this.print('fatal', message, context);\n }\n}\n","export type LoggerConfig = {\n level: LoggerLevels;\n};\n\nexport enum LoggerLevels {\n FATAL = 'fatal',\n ERROR = 'error',\n WARN = 'warn',\n INFO = 'info',\n DEBUG = 'debug',\n TRACE = 'trace',\n}\n\nexport enum LoggerContexts {\n SYSTEM = 'System',\n INSTANCE_LOADER = 'InstanceLoader',\n ROUTES_RESOLVER = 'RoutesResolver',\n ROUTER_EXPLORER = 'RouterExplorer',\n NEST_FACTORY = 'NestFactory',\n NEST_APPLICATION = 'NestApplication',\n}\n"]}
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- var h=Object.defineProperty;var i=(t,e)=>h(t,"name",{value:e,configurable:!0});import{Global as U,Module as H}from"@nestjs/common";import{APP_FILTER as Y,APP_INTERCEPTOR as k}from"@nestjs/core";import{LoggerErrorInterceptor as V,LoggerModule as b}from"nestjs-pino";import{ConfigurableModuleBuilder as N}from"@nestjs/common";var{ConfigurableModuleClass:T,MODULE_OPTIONS_TOKEN:K,OPTIONS_TYPE:X,ASYNC_OPTIONS_TYPE:J}=new N().build();import{Catch as M,HttpException as I,HttpStatus as O}from"@nestjs/common";function P(t,e,r,n){var s=arguments.length,o=s<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,r):n,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(t,e,r,n);else for(var c=t.length-1;c>=0;c--)(a=t[c])&&(o=(s<3?a(o):s>3?a(e,r,o):a(e,r))||o);return s>3&&o&&Object.defineProperty(e,r,o),o}i(P,"_ts_decorate");var p=class{static{i(this,"LoggerExceptionFilter")}catch(e,r){let s=r.switchToHttp().getResponse();if(e instanceof I){let o=e.getStatus(),a=e.getResponse();return s.status(o).json(a)}s.status(O.INTERNAL_SERVER_ERROR).json({message:"Something went wrong.",error:"Internal Server Error",statusCode:O.INTERNAL_SERVER_ERROR})}};p=P([M()],p);import{RequestMethod as j}from"@nestjs/common";import{HttpMessageBuilder as l,HttpStatuses as S}from"@iamnnort/config/http";import{HttpMessageFormatter as C}from"@iamnnort/config/http";var $=(function(t){return t.FATAL="fatal",t.ERROR="error",t.WARN="warn",t.INFO="info",t.DEBUG="debug",t.TRACE="trace",t})({}),A=(function(t){return t.MESSAGE="message",t.DATA="data",t})({}),m=(function(t){return t.SYSTEM="System",t.INSTANCE_LOADER="InstanceLoader",t.ROUTES_RESOLVER="RoutesResolver",t.ROUTER_EXPLORER="RouterExplorer",t.NEST_FACTORY="NestFactory",t.NEST_APPLICATION="NestApplication",t})({});function _(t){let e=t;return{url:t.url,method:t.method,data:e.body}}i(_,"toAxiosConfig");function R(t,e){return{status:e.statusCode,statusText:e.statusMessage,data:void 0,headers:{},config:_(t)}}i(R,"toAxiosResponse");function L(t,e,r){return{...r,name:r.name,message:r.message,response:R(t,e),config:_(t)}}i(L,"toAxiosError");function d(t){let e=new C;return{pinoHttp:[{name:"Http",level:t.level,timestamp:!1,customReceivedMessage:i(n=>{let s=R(n,{});return new l({response:s}).makeMethodText().makeUrlText().build()},"customReceivedMessage"),customSuccessMessage:i((n,s,o)=>{let a=R(n,s);return new l({response:a,duration:o}).makeMethodText().makeUrlText().makeStatusText().makeDurationText().build()},"customSuccessMessage"),customSuccessObject:i((n,s)=>{let o=R(n,s),a=new l({response:o}),c={},E=a.makeRequestDataObj();return Object.keys(E).length>0&&(c.request=E),c},"customSuccessObject"),customErrorMessage:i((n,s,o)=>{let a=L(n,s,o);return new l({error:a}).makeMethodText().makeUrlText().makeStatusText().build()},"customErrorMessage"),customLogLevel:i((n,s,o)=>o||s.statusCode>=S.INTERNAL_SERVER_ERROR?"error":s.statusCode>=S.BAD_REQUEST?"warn":"info","customLogLevel"),customAttributeKeys:{err:"error"}},t.output===A.DATA?e.makeLambdaLogStream():e.makeLogStream()],forRoutes:[{path:"*",method:j.ALL}]}}i(d,"makePinoParams");import{ConsoleLogger as y,Inject as v,Injectable as B,Scope as D}from"@nestjs/common";import{PinoLogger as g}from"nestjs-pino";function x(t,e,r,n){var s=arguments.length,o=s<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,r):n,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(t,e,r,n);else for(var c=t.length-1;c>=0;c--)(a=t[c])&&(o=(s<3?a(o):s>3?a(e,r,o):a(e,r))||o);return s>3&&o&&Object.defineProperty(e,r,o),o}i(x,"_ts_decorate");function w(t,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(t,e)}i(w,"_ts_metadata");var u=class extends y{static{i(this,"LoggerService")}pinoLogger;print(e,r,n){let s=n?.replace(/^_/,"")||this.context||"";if([m.INSTANCE_LOADER,m.ROUTES_RESOLVER,m.ROUTER_EXPLORER].includes(s))return;let c={[m.NEST_FACTORY]:"Application is starting...",[m.NEST_APPLICATION]:"Application started."}[s]||r||"";(s?this.pinoLogger.logger.child({name:s}):this.pinoLogger.logger)[e](c)}log(e,r){this.print("info",e,r)}error(e,r){this.print("error",e,r)}warn(e,r){this.print("warn",e,r)}debug(e,r){this.print("debug",e,r)}verbose(e,r){this.print("trace",e,r)}fatal(e,r){this.print("fatal",e,r)}};x([v(g),w("design:type",typeof g>"u"?Object:g)],u.prototype,"pinoLogger",void 0);u=x([B({scope:D.TRANSIENT})],u);function F(t,e,r,n){var s=arguments.length,o=s<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,r):n,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(t,e,r,n);else for(var c=t.length-1;c>=0;c--)(a=t[c])&&(o=(s<3?a(o):s>3?a(e,r,o):a(e,r))||o);return s>3&&o&&Object.defineProperty(e,r,o),o}i(F,"_ts_decorate");var f=class extends T{static{i(this,"LoggerModule")}static register(e){let r=super.register(e);return{...r,imports:[...r.imports??[],b.forRoot(d(e))]}}static registerAsync(e){let r=super.registerAsync(e);return{...r,imports:[...r.imports??[],b.forRootAsync({imports:e.imports,inject:e.inject,useFactory:i(async(...n)=>{if(e.useFactory){let s=await e.useFactory(...n);return d(s)}return d({})},"useFactory")})]}}};f=F([U(),H({providers:[u,{provide:k,useClass:V},{provide:Y,useClass:p}],exports:[u]})],f);export{m as LoggerContexts,$ as LoggerLevels,f as LoggerModule,A as LoggerOutputs,u as LoggerService};
1
+ var x=Object.defineProperty;var i=(r,e)=>x(r,"name",{value:e,configurable:!0});import{Global as D,Module as F}from"@nestjs/common";import{APP_FILTER as U,APP_INTERCEPTOR as H}from"@nestjs/core";import{LoggerErrorInterceptor as Y,LoggerModule as A}from"nestjs-pino";import{ConfigurableModuleBuilder as b}from"@nestjs/common";var{ConfigurableModuleClass:g,MODULE_OPTIONS_TOKEN:G,OPTIONS_TYPE:K,ASYNC_OPTIONS_TYPE:X}=new b().build();import{Catch as N,HttpException as P,HttpStatus as T}from"@nestjs/common";function h(r,e,t,n){var s=arguments.length,o=s<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,t):n,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(r,e,t,n);else for(var c=r.length-1;c>=0;c--)(a=r[c])&&(o=(s<3?a(o):s>3?a(e,t,o):a(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o}i(h,"_ts_decorate");var p=class{static{i(this,"LoggerExceptionFilter")}catch(e,t){let s=t.switchToHttp().getResponse();if(e instanceof P){let o=e.getStatus(),a=e.getResponse();return s.status(o).json(a)}s.status(T.INTERNAL_SERVER_ERROR).json({message:"Something went wrong.",error:"Internal Server Error",statusCode:T.INTERNAL_SERVER_ERROR})}};p=h([N()],p);import{RequestMethod as M}from"@nestjs/common";import{HttpMessageBuilder as l,HttpStatuses as O}from"@iamnnort/config/http";import{HttpMessageFormatter as I}from"@iamnnort/config/http";function S(r){let e=r;return{url:r.url,method:r.method,data:e.body}}i(S,"toAxiosConfig");function R(r,e){return{status:e.statusCode,statusText:e.statusMessage,data:void 0,headers:{},config:S(r)}}i(R,"toAxiosResponse");function j(r,e,t){return{...t,name:t.name,message:t.message,response:R(r,e),config:S(r)}}i(j,"toAxiosError");function d(r){let e=new I;return{pinoHttp:[{name:"Http",level:r.level,timestamp:!1,customReceivedMessage:i(t=>{let n=R(t,{});return new l({response:n}).makeMethodText().makeUrlText().build()},"customReceivedMessage"),customSuccessMessage:i((t,n,s)=>{let o=R(t,n);return new l({response:o,duration:s}).makeMethodText().makeUrlText().makeStatusText().makeDurationText().build()},"customSuccessMessage"),customSuccessObject:i((t,n)=>{let s=R(t,n),o=new l({response:s}),a={},c=o.makeRequestDataObj();return Object.keys(c).length>0&&(a.request=c),a},"customSuccessObject"),customErrorMessage:i((t,n,s)=>{let o=j(t,n,s);return new l({error:o}).makeMethodText().makeUrlText().makeStatusText().build()},"customErrorMessage"),customLogLevel:i((t,n,s)=>s||n.statusCode>=O.INTERNAL_SERVER_ERROR?"error":n.statusCode>=O.BAD_REQUEST?"warn":"info","customLogLevel"),customAttributeKeys:{err:"error"}},e.makeLogStream()],forRoutes:[{path:"*",method:M.ALL}]}}i(d,"makePinoParams");import{ConsoleLogger as w,Inject as y,Injectable as L,Scope as v}from"@nestjs/common";import{PinoLogger as E}from"nestjs-pino";var oe=(function(r){return r.FATAL="fatal",r.ERROR="error",r.WARN="warn",r.INFO="info",r.DEBUG="debug",r.TRACE="trace",r})({}),f=(function(r){return r.SYSTEM="System",r.INSTANCE_LOADER="InstanceLoader",r.ROUTES_RESOLVER="RoutesResolver",r.ROUTER_EXPLORER="RouterExplorer",r.NEST_FACTORY="NestFactory",r.NEST_APPLICATION="NestApplication",r})({});function _(r,e,t,n){var s=arguments.length,o=s<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,t):n,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(r,e,t,n);else for(var c=r.length-1;c>=0;c--)(a=r[c])&&(o=(s<3?a(o):s>3?a(e,t,o):a(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o}i(_,"_ts_decorate");function C(r,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(r,e)}i(C,"_ts_metadata");var u=class extends w{static{i(this,"LoggerService")}pinoLogger;print(e,t,n){let s=n?.replace(/^_/,"")||this.context||"";if([f.INSTANCE_LOADER,f.ROUTES_RESOLVER,f.ROUTER_EXPLORER].includes(s))return;let c={[f.NEST_FACTORY]:"Application is starting...",[f.NEST_APPLICATION]:"Application started."}[s]||t||"";(s?this.pinoLogger.logger.child({name:s}):this.pinoLogger.logger)[e](c)}log(e,t){this.print("info",e,t)}error(e,t){this.print("error",e,t)}warn(e,t){this.print("warn",e,t)}debug(e,t){this.print("debug",e,t)}verbose(e,t){this.print("trace",e,t)}fatal(e,t){this.print("fatal",e,t)}};_([y(E),C("design:type",typeof E>"u"?Object:E)],u.prototype,"pinoLogger",void 0);u=_([L({scope:v.TRANSIENT})],u);function B(r,e,t,n){var s=arguments.length,o=s<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,t):n,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(r,e,t,n);else for(var c=r.length-1;c>=0;c--)(a=r[c])&&(o=(s<3?a(o):s>3?a(e,t,o):a(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o}i(B,"_ts_decorate");var m=class extends g{static{i(this,"LoggerModule")}static register(e){let t=super.register(e);return{...t,imports:[...t.imports??[],A.forRoot(d(e))]}}static registerAsync(e){let t=super.registerAsync(e);return{...t,imports:[...t.imports??[],A.forRootAsync({imports:e.imports,inject:e.inject,useFactory:i(async(...n)=>{if(e.useFactory){let s=await e.useFactory(...n);return d(s)}return d({})},"useFactory")})]}}};m=B([D(),F({providers:[u,{provide:H,useClass:Y},{provide:U,useClass:p}],exports:[u]})],m);export{f as LoggerContexts,oe as LoggerLevels,m as LoggerModule,u as LoggerService};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/module.ts","../src/module-definition.ts","../src/exception-filter.ts","../src/builder.ts","../src/types.ts","../src/service.ts"],"sourcesContent":["import { DynamicModule, Global, Module } from '@nestjs/common';\nimport { APP_FILTER, APP_INTERCEPTOR } from '@nestjs/core';\nimport { LoggerErrorInterceptor, LoggerModule as NestJsPinoLoggerModule } from 'nestjs-pino';\nimport { ASYNC_OPTIONS_TYPE, ConfigurableModuleClass, OPTIONS_TYPE } from './module-definition';\nimport { LoggerExceptionFilter } from './exception-filter';\nimport { makePinoParams } from './builder';\nimport { LoggerService } from './service';\nimport type { LoggerConfig } from './types';\n\n@Global()\n@Module({\n providers: [\n LoggerService,\n {\n provide: APP_INTERCEPTOR,\n useClass: LoggerErrorInterceptor,\n },\n {\n provide: APP_FILTER,\n useClass: LoggerExceptionFilter,\n },\n ],\n exports: [LoggerService],\n})\nexport class LoggerModule extends ConfigurableModuleClass {\n static register(options: typeof OPTIONS_TYPE): DynamicModule {\n const base = super.register(options);\n\n return {\n ...base,\n imports: [...(base.imports ?? []), NestJsPinoLoggerModule.forRoot(makePinoParams(options))],\n };\n }\n\n static registerAsync(options: typeof ASYNC_OPTIONS_TYPE): DynamicModule {\n const base = super.registerAsync(options);\n\n return {\n ...base,\n imports: [\n ...(base.imports ?? []),\n NestJsPinoLoggerModule.forRootAsync({\n imports: options.imports,\n inject: options.inject,\n useFactory: async (...args: unknown[]) => {\n if (options.useFactory) {\n const config = await options.useFactory(...args);\n\n return makePinoParams(config);\n }\n\n return makePinoParams({} as LoggerConfig);\n },\n }),\n ],\n };\n }\n}\n","import { ConfigurableModuleBuilder } from '@nestjs/common';\nimport { LoggerConfig } from './types';\n\nexport const { ConfigurableModuleClass, MODULE_OPTIONS_TOKEN, OPTIONS_TYPE, ASYNC_OPTIONS_TYPE } =\n new ConfigurableModuleBuilder<LoggerConfig>().build();\n","import { type ArgumentsHost, Catch, type ExceptionFilter, HttpException, HttpStatus } from '@nestjs/common';\nimport type { Response } from 'express';\n\n@Catch()\nexport class LoggerExceptionFilter implements ExceptionFilter {\n catch(exception: any, host: ArgumentsHost) {\n const ctx = host.switchToHttp();\n const response = ctx.getResponse<Response>();\n\n if (exception instanceof HttpException) {\n const statusCode = exception.getStatus();\n const errorResponse = exception.getResponse();\n\n return response.status(statusCode).json(errorResponse);\n }\n\n response.status(HttpStatus.INTERNAL_SERVER_ERROR).json({\n message: 'Something went wrong.',\n error: 'Internal Server Error',\n statusCode: HttpStatus.INTERNAL_SERVER_ERROR,\n });\n }\n}\n","import type { IncomingMessage, ServerResponse } from 'http';\nimport type { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport type { Params as NestJsPinoParams } from 'nestjs-pino';\nimport { OPTIONS_TYPE } from './module-definition';\nimport { RequestMethod } from '@nestjs/common';\nimport { HttpMessageBuilder, HttpStatuses } from '@iamnnort/config/http';\nimport { HttpMessageFormatter } from '@iamnnort/config/http';\nimport { LoggerOutputs } from './types';\n\nfunction toAxiosConfig(req: IncomingMessage): AxiosRequestConfig {\n const expressReq = req as IncomingMessage & { body?: unknown };\n\n return {\n url: req.url,\n method: req.method,\n data: expressReq.body,\n } as AxiosRequestConfig;\n}\n\nfunction toAxiosResponse(req: IncomingMessage, res: ServerResponse): AxiosResponse {\n return {\n status: res.statusCode,\n statusText: res.statusMessage,\n data: undefined,\n headers: {},\n config: toAxiosConfig(req),\n } as AxiosResponse;\n}\n\nfunction toAxiosError(req: IncomingMessage, res: ServerResponse, error: Error): AxiosError {\n return {\n ...error,\n name: error.name,\n message: error.message,\n response: toAxiosResponse(req, res),\n config: toAxiosConfig(req),\n } as AxiosError;\n}\n\nexport function makePinoParams(options: typeof OPTIONS_TYPE): NestJsPinoParams {\n const formatter = new HttpMessageFormatter();\n\n const pinoOptions = {\n name: 'Http',\n level: options.level,\n timestamp: false,\n customReceivedMessage: (req) => {\n const response = toAxiosResponse(req, {} as ServerResponse);\n\n const messageBuilder = new HttpMessageBuilder({\n response,\n });\n\n return messageBuilder.makeMethodText().makeUrlText().build();\n },\n customSuccessMessage: (req, res, duration) => {\n const response = toAxiosResponse(req, res);\n\n const messageBuilder = new HttpMessageBuilder({\n response,\n duration,\n });\n\n return messageBuilder.makeMethodText().makeUrlText().makeStatusText().makeDurationText().build();\n },\n customSuccessObject: (req, res) => {\n const response = toAxiosResponse(req, res);\n\n const messageBuilder = new HttpMessageBuilder({\n response,\n });\n\n const data = {};\n\n const requestData = messageBuilder.makeRequestDataObj();\n\n if (Object.keys(requestData).length > 0) {\n data['request'] = requestData;\n }\n\n return data;\n },\n customErrorMessage: (req, res, error) => {\n const axiosError = toAxiosError(req, res, error);\n\n const messageBuilder = new HttpMessageBuilder({\n error: axiosError,\n });\n\n return messageBuilder.makeMethodText().makeUrlText().makeStatusText().build();\n },\n customLogLevel: (_req, res, error) => {\n if (error || res.statusCode >= HttpStatuses.INTERNAL_SERVER_ERROR) {\n return 'error';\n }\n\n if (res.statusCode >= HttpStatuses.BAD_REQUEST) {\n return 'warn';\n }\n\n return 'info';\n },\n customAttributeKeys: {\n err: 'error',\n },\n };\n\n return {\n pinoHttp: [\n pinoOptions,\n options.output === LoggerOutputs.DATA ? formatter.makeLambdaLogStream() : formatter.makeLogStream(),\n ],\n\n forRoutes: [\n {\n path: '*',\n method: RequestMethod.ALL,\n },\n ],\n };\n}\n","export type LoggerConfig = {\n level: LoggerLevels;\n output?: LoggerOutputs;\n};\n\nexport enum LoggerLevels {\n FATAL = 'fatal',\n ERROR = 'error',\n WARN = 'warn',\n INFO = 'info',\n DEBUG = 'debug',\n TRACE = 'trace',\n}\n\nexport enum LoggerOutputs {\n MESSAGE = 'message',\n DATA = 'data',\n}\n\nexport enum LoggerContexts {\n SYSTEM = 'System',\n INSTANCE_LOADER = 'InstanceLoader',\n ROUTES_RESOLVER = 'RoutesResolver',\n ROUTER_EXPLORER = 'RouterExplorer',\n NEST_FACTORY = 'NestFactory',\n NEST_APPLICATION = 'NestApplication',\n}\n","import { ConsoleLogger, Inject, Injectable, Scope } from '@nestjs/common';\nimport { PinoLogger } from 'nestjs-pino';\nimport { LoggerContexts } from './types';\n\n@Injectable({\n scope: Scope.TRANSIENT,\n})\nexport class LoggerService extends ConsoleLogger {\n @Inject(PinoLogger)\n private readonly pinoLogger: PinoLogger;\n\n private print(level: string, message: any, context?: string) {\n const ctx = context?.replace(/^_/, '') || this.context || '';\n\n const ctxBlacklist: string[] = [\n LoggerContexts.INSTANCE_LOADER,\n LoggerContexts.ROUTES_RESOLVER,\n LoggerContexts.ROUTER_EXPLORER,\n ];\n\n if (ctxBlacklist.includes(ctx)) {\n return;\n }\n\n const ctxMessageMap: Record<string, string> = {\n [LoggerContexts.NEST_FACTORY]: 'Application is starting...',\n [LoggerContexts.NEST_APPLICATION]: 'Application started.',\n };\n\n const msg = ctxMessageMap[ctx] || message || '';\n\n const logger = ctx ? this.pinoLogger.logger.child({ name: ctx }) : this.pinoLogger.logger;\n\n logger[level](msg);\n }\n\n log(message: any, context?: string) {\n this.print('info', message, context);\n }\n\n error(message: any, context?: string) {\n this.print('error', message, context);\n }\n\n warn(message: any, context?: string) {\n this.print('warn', message, context);\n }\n\n debug(message: any, context?: string) {\n this.print('debug', message, context);\n }\n\n verbose(message: any, context?: string) {\n this.print('trace', message, context);\n }\n\n fatal(message: any, context?: string) {\n this.print('fatal', message, context);\n }\n}\n"],"mappings":"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","names":["Global","Module","APP_FILTER","APP_INTERCEPTOR","LoggerErrorInterceptor","LoggerModule","NestJsPinoLoggerModule","ConfigurableModuleBuilder","ConfigurableModuleClass","MODULE_OPTIONS_TOKEN","OPTIONS_TYPE","ASYNC_OPTIONS_TYPE","build","Catch","HttpException","HttpStatus","LoggerExceptionFilter","catch","exception","host","response","switchToHttp","getResponse","HttpException","statusCode","getStatus","errorResponse","status","json","HttpStatus","INTERNAL_SERVER_ERROR","message","error","RequestMethod","HttpMessageBuilder","HttpStatuses","HttpMessageFormatter","LoggerLevels","LoggerOutputs","LoggerContexts","toAxiosConfig","req","expressReq","url","method","data","body","toAxiosResponse","res","status","statusCode","statusText","statusMessage","undefined","headers","config","toAxiosError","error","name","message","response","makePinoParams","options","formatter","HttpMessageFormatter","pinoHttp","level","timestamp","customReceivedMessage","__name","HttpMessageBuilder","makeMethodText","makeUrlText","build","customSuccessMessage","duration","makeStatusText","makeDurationText","customSuccessObject","messageBuilder","requestData","makeRequestDataObj","Object","keys","length","customErrorMessage","axiosError","customLogLevel","_req","HttpStatuses","INTERNAL_SERVER_ERROR","BAD_REQUEST","customAttributeKeys","err","output","LoggerOutputs","DATA","makeLambdaLogStream","makeLogStream","forRoutes","path","RequestMethod","ALL","ConsoleLogger","Inject","Injectable","Scope","PinoLogger","LoggerService","ConsoleLogger","pinoLogger","print","level","message","context","ctx","replace","LoggerContexts","INSTANCE_LOADER","ROUTES_RESOLVER","ROUTER_EXPLORER","includes","msg","NEST_FACTORY","NEST_APPLICATION","logger","child","name","log","error","warn","debug","verbose","fatal","scope","Scope","TRANSIENT","LoggerModule","ConfigurableModuleClass","register","options","base","imports","NestJsPinoLoggerModule","forRoot","makePinoParams","registerAsync","forRootAsync","inject","useFactory","__name","args","config","providers","LoggerService","provide","APP_INTERCEPTOR","useClass","LoggerErrorInterceptor","APP_FILTER","LoggerExceptionFilter","exports"]}
1
+ {"version":3,"sources":["../src/module.ts","../src/module-definition.ts","../src/exception-filter.ts","../src/builder.ts","../src/service.ts","../src/types.ts"],"sourcesContent":["import { DynamicModule, Global, Module } from '@nestjs/common';\nimport { APP_FILTER, APP_INTERCEPTOR } from '@nestjs/core';\nimport { LoggerErrorInterceptor, LoggerModule as NestJsPinoLoggerModule } from 'nestjs-pino';\nimport { ASYNC_OPTIONS_TYPE, ConfigurableModuleClass, OPTIONS_TYPE } from './module-definition';\nimport { LoggerExceptionFilter } from './exception-filter';\nimport { makePinoParams } from './builder';\nimport { LoggerService } from './service';\nimport type { LoggerConfig } from './types';\n\n@Global()\n@Module({\n providers: [\n LoggerService,\n {\n provide: APP_INTERCEPTOR,\n useClass: LoggerErrorInterceptor,\n },\n {\n provide: APP_FILTER,\n useClass: LoggerExceptionFilter,\n },\n ],\n exports: [LoggerService],\n})\nexport class LoggerModule extends ConfigurableModuleClass {\n static register(options: typeof OPTIONS_TYPE): DynamicModule {\n const base = super.register(options);\n\n return {\n ...base,\n imports: [...(base.imports ?? []), NestJsPinoLoggerModule.forRoot(makePinoParams(options))],\n };\n }\n\n static registerAsync(options: typeof ASYNC_OPTIONS_TYPE): DynamicModule {\n const base = super.registerAsync(options);\n\n return {\n ...base,\n imports: [\n ...(base.imports ?? []),\n NestJsPinoLoggerModule.forRootAsync({\n imports: options.imports,\n inject: options.inject,\n useFactory: async (...args: unknown[]) => {\n if (options.useFactory) {\n const config = await options.useFactory(...args);\n\n return makePinoParams(config);\n }\n\n return makePinoParams({} as LoggerConfig);\n },\n }),\n ],\n };\n }\n}\n","import { ConfigurableModuleBuilder } from '@nestjs/common';\nimport { LoggerConfig } from './types';\n\nexport const { ConfigurableModuleClass, MODULE_OPTIONS_TOKEN, OPTIONS_TYPE, ASYNC_OPTIONS_TYPE } =\n new ConfigurableModuleBuilder<LoggerConfig>().build();\n","import { type ArgumentsHost, Catch, type ExceptionFilter, HttpException, HttpStatus } from '@nestjs/common';\nimport type { Response } from 'express';\n\n@Catch()\nexport class LoggerExceptionFilter implements ExceptionFilter {\n catch(exception: any, host: ArgumentsHost) {\n const ctx = host.switchToHttp();\n const response = ctx.getResponse<Response>();\n\n if (exception instanceof HttpException) {\n const statusCode = exception.getStatus();\n const errorResponse = exception.getResponse();\n\n return response.status(statusCode).json(errorResponse);\n }\n\n response.status(HttpStatus.INTERNAL_SERVER_ERROR).json({\n message: 'Something went wrong.',\n error: 'Internal Server Error',\n statusCode: HttpStatus.INTERNAL_SERVER_ERROR,\n });\n }\n}\n","import type { IncomingMessage, ServerResponse } from 'http';\nimport type { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport type { Params as NestJsPinoParams } from 'nestjs-pino';\nimport { OPTIONS_TYPE } from './module-definition';\nimport { RequestMethod } from '@nestjs/common';\nimport { HttpMessageBuilder, HttpStatuses } from '@iamnnort/config/http';\nimport { HttpMessageFormatter } from '@iamnnort/config/http';\n\nfunction toAxiosConfig(req: IncomingMessage): AxiosRequestConfig {\n const expressReq = req as IncomingMessage & { body?: unknown };\n\n return {\n url: req.url,\n method: req.method,\n data: expressReq.body,\n } as AxiosRequestConfig;\n}\n\nfunction toAxiosResponse(req: IncomingMessage, res: ServerResponse): AxiosResponse {\n return {\n status: res.statusCode,\n statusText: res.statusMessage,\n data: undefined,\n headers: {},\n config: toAxiosConfig(req),\n } as AxiosResponse;\n}\n\nfunction toAxiosError(req: IncomingMessage, res: ServerResponse, error: Error): AxiosError {\n return {\n ...error,\n name: error.name,\n message: error.message,\n response: toAxiosResponse(req, res),\n config: toAxiosConfig(req),\n } as AxiosError;\n}\n\nexport function makePinoParams(options: typeof OPTIONS_TYPE): NestJsPinoParams {\n const formatter = new HttpMessageFormatter();\n\n return {\n pinoHttp: [\n {\n name: 'Http',\n level: options.level,\n timestamp: false,\n customReceivedMessage: (req) => {\n const response = toAxiosResponse(req, {} as ServerResponse);\n\n const messageBuilder = new HttpMessageBuilder({\n response,\n });\n\n return messageBuilder.makeMethodText().makeUrlText().build();\n },\n customSuccessMessage: (req, res, duration) => {\n const response = toAxiosResponse(req, res);\n\n const messageBuilder = new HttpMessageBuilder({\n response,\n duration,\n });\n\n return messageBuilder.makeMethodText().makeUrlText().makeStatusText().makeDurationText().build();\n },\n customSuccessObject: (req, res) => {\n const response = toAxiosResponse(req, res);\n\n const messageBuilder = new HttpMessageBuilder({\n response,\n });\n\n const data = {};\n\n const requestData = messageBuilder.makeRequestDataObj();\n\n if (Object.keys(requestData).length > 0) {\n data['request'] = requestData;\n }\n\n return data;\n },\n customErrorMessage: (req, res, error) => {\n const axiosError = toAxiosError(req, res, error);\n\n const messageBuilder = new HttpMessageBuilder({\n error: axiosError,\n });\n\n return messageBuilder.makeMethodText().makeUrlText().makeStatusText().build();\n },\n customLogLevel: (_req, res, error) => {\n if (error || res.statusCode >= HttpStatuses.INTERNAL_SERVER_ERROR) {\n return 'error';\n }\n\n if (res.statusCode >= HttpStatuses.BAD_REQUEST) {\n return 'warn';\n }\n\n return 'info';\n },\n customAttributeKeys: {\n err: 'error',\n },\n },\n formatter.makeLogStream(),\n ],\n forRoutes: [\n {\n path: '*',\n method: RequestMethod.ALL,\n },\n ],\n };\n}\n","import { ConsoleLogger, Inject, Injectable, Scope } from '@nestjs/common';\nimport { PinoLogger } from 'nestjs-pino';\nimport { LoggerContexts } from './types';\n\n@Injectable({\n scope: Scope.TRANSIENT,\n})\nexport class LoggerService extends ConsoleLogger {\n @Inject(PinoLogger)\n private readonly pinoLogger: PinoLogger;\n\n private print(level: string, message: any, context?: string) {\n const ctx = context?.replace(/^_/, '') || this.context || '';\n\n const ctxBlacklist: string[] = [\n LoggerContexts.INSTANCE_LOADER,\n LoggerContexts.ROUTES_RESOLVER,\n LoggerContexts.ROUTER_EXPLORER,\n ];\n\n if (ctxBlacklist.includes(ctx)) {\n return;\n }\n\n const ctxMessageMap: Record<string, string> = {\n [LoggerContexts.NEST_FACTORY]: 'Application is starting...',\n [LoggerContexts.NEST_APPLICATION]: 'Application started.',\n };\n\n const msg = ctxMessageMap[ctx] || message || '';\n\n const logger = ctx ? this.pinoLogger.logger.child({ name: ctx }) : this.pinoLogger.logger;\n\n logger[level](msg);\n }\n\n log(message: any, context?: string) {\n this.print('info', message, context);\n }\n\n error(message: any, context?: string) {\n this.print('error', message, context);\n }\n\n warn(message: any, context?: string) {\n this.print('warn', message, context);\n }\n\n debug(message: any, context?: string) {\n this.print('debug', message, context);\n }\n\n verbose(message: any, context?: string) {\n this.print('trace', message, context);\n }\n\n fatal(message: any, context?: string) {\n this.print('fatal', message, context);\n }\n}\n","export type LoggerConfig = {\n level: LoggerLevels;\n};\n\nexport enum LoggerLevels {\n FATAL = 'fatal',\n ERROR = 'error',\n WARN = 'warn',\n INFO = 'info',\n DEBUG = 'debug',\n TRACE = 'trace',\n}\n\nexport enum LoggerContexts {\n SYSTEM = 'System',\n INSTANCE_LOADER = 'InstanceLoader',\n ROUTES_RESOLVER = 'RoutesResolver',\n ROUTER_EXPLORER = 'RouterExplorer',\n NEST_FACTORY = 'NestFactory',\n NEST_APPLICATION = 'NestApplication',\n}\n"],"mappings":"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","names":["Global","Module","APP_FILTER","APP_INTERCEPTOR","LoggerErrorInterceptor","LoggerModule","NestJsPinoLoggerModule","ConfigurableModuleBuilder","ConfigurableModuleClass","MODULE_OPTIONS_TOKEN","OPTIONS_TYPE","ASYNC_OPTIONS_TYPE","build","Catch","HttpException","HttpStatus","LoggerExceptionFilter","catch","exception","host","response","switchToHttp","getResponse","HttpException","statusCode","getStatus","errorResponse","status","json","HttpStatus","INTERNAL_SERVER_ERROR","message","error","RequestMethod","HttpMessageBuilder","HttpStatuses","HttpMessageFormatter","toAxiosConfig","req","expressReq","url","method","data","body","toAxiosResponse","res","status","statusCode","statusText","statusMessage","undefined","headers","config","toAxiosError","error","name","message","response","makePinoParams","options","formatter","HttpMessageFormatter","pinoHttp","level","timestamp","customReceivedMessage","__name","HttpMessageBuilder","makeMethodText","makeUrlText","build","customSuccessMessage","duration","makeStatusText","makeDurationText","customSuccessObject","messageBuilder","requestData","makeRequestDataObj","Object","keys","length","customErrorMessage","axiosError","customLogLevel","_req","HttpStatuses","INTERNAL_SERVER_ERROR","BAD_REQUEST","customAttributeKeys","err","makeLogStream","forRoutes","path","RequestMethod","ALL","ConsoleLogger","Inject","Injectable","Scope","PinoLogger","LoggerLevels","LoggerContexts","LoggerService","ConsoleLogger","pinoLogger","print","level","message","context","ctx","replace","LoggerContexts","INSTANCE_LOADER","ROUTES_RESOLVER","ROUTER_EXPLORER","includes","msg","NEST_FACTORY","NEST_APPLICATION","logger","child","name","log","error","warn","debug","verbose","fatal","scope","Scope","TRANSIENT","LoggerModule","ConfigurableModuleClass","register","options","base","imports","NestJsPinoLoggerModule","forRoot","makePinoParams","registerAsync","forRootAsync","inject","useFactory","__name","args","config","providers","LoggerService","provide","APP_INTERCEPTOR","useClass","LoggerErrorInterceptor","APP_FILTER","LoggerExceptionFilter","exports"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iamnnort/nestjs-logger",
3
- "version": "2.1.10",
3
+ "version": "2.2.1",
4
4
  "description": "Logger module for NestJS - Simple - Informative - Pretty",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -32,7 +32,7 @@
32
32
  "prepare": "husky"
33
33
  },
34
34
  "dependencies": {
35
- "@iamnnort/config": "^1.2.1",
35
+ "@iamnnort/config": "^1.2.3",
36
36
  "nestjs-pino": "^4.5.0",
37
37
  "pino-http": "^10.4.0"
38
38
  },