import util from 'util' import { Decimal } from 'decimal.js-light' export abstract class AbstractLoggingView { // eslint-disable-next-line no-undef protected bufferStringFormat: BufferEncoding = 'hex' // This function gets called automatically when JSON.stringify() is called on this class instance // eslint-disable-next-line @typescript-eslint/no-explicit-any public abstract toJSON(): any public toString(compact = false): string { if (compact) { return JSON.stringify(this.toJSON()) } else { return JSON.stringify(this.toJSON(), null, 2) } } // called form console.log or log4js logging functions [util.inspect.custom](): string { return this.toString() } public dateToString(date: Date | undefined | null): string | undefined { if (date) { return date.toISOString() } return undefined } public decimalToString(number: Decimal | undefined | null): string | undefined { if (number) { return number.toString() } return undefined } }