UNPKG

@bitrix24/b24jssdk

Version:

Bitrix24 REST API JavaScript SDK

1 lines 1.98 kB
{"version":3,"file":"memory-handler.mjs","sources":["../../../../src/logger/handler/memory-handler.ts"],"sourcesContent":["import type { Handler, HandlerOptions, LogRecord } from '../../types/logger'\nimport { LogLevel } from '../../types/logger'\nimport { AbstractHandler } from './abstract-handler'\n\nexport interface MemoryHandlerOptions extends HandlerOptions {\n limit?: number\n}\n\n/**\n * Memory Handler\n */\nexport class MemoryHandler extends AbstractHandler implements Handler {\n private records: LogRecord[] = []\n private readonly limit: number\n\n constructor(\n level: LogLevel = LogLevel.DEBUG,\n options?: MemoryHandlerOptions\n ) {\n const opts = {\n bubble: true,\n limit: 1_000,\n ...options\n }\n super(level, opts.bubble)\n this.limit = opts.limit\n }\n\n /**\n * @inheritDoc\n */\n public override async handle(record: LogRecord): Promise<boolean> {\n this.records.push(record)\n if (this.records.length > this.limit) {\n this.records.shift()\n }\n\n return true\n }\n\n getRecords(): LogRecord[] {\n return [...this.records]\n }\n\n clear(): void {\n this.records = []\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;AAWO,MAAM,sBAAsB,eAAA,CAAmC;AAAA,EAXtE;AAWsE,IAAA,MAAA,CAAA,IAAA,EAAA,eAAA,CAAA;AAAA;AAAA,EAC5D,UAAuB,EAAC;AAAA,EACf,KAAA;AAAA,EAEjB,WAAA,CACE,KAAA,GAAkB,QAAA,CAAS,KAAA,EAC3B,OAAA,EACA;AACA,IAAA,MAAM,IAAA,GAAO;AAAA,MACX,MAAA,EAAQ,IAAA;AAAA,MACR,KAAA,EAAO,GAAA;AAAA,MACP,GAAG;AAAA,KACL;AACA,IAAA,KAAA,CAAM,KAAA,EAAO,KAAK,MAAM,CAAA;AACxB,IAAA,IAAA,CAAK,QAAQ,IAAA,CAAK,KAAA;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAsB,OAAO,MAAA,EAAqC;AAChE,IAAA,IAAA,CAAK,OAAA,CAAQ,KAAK,MAAM,CAAA;AACxB,IAAA,IAAI,IAAA,CAAK,OAAA,CAAQ,MAAA,GAAS,IAAA,CAAK,KAAA,EAAO;AACpC,MAAA,IAAA,CAAK,QAAQ,KAAA,EAAM;AAAA,IACrB;AAEA,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,UAAA,GAA0B;AACxB,IAAA,OAAO,CAAC,GAAG,IAAA,CAAK,OAAO,CAAA;AAAA,EACzB;AAAA,EAEA,KAAA,GAAc;AACZ,IAAA,IAAA,CAAK,UAAU,EAAC;AAAA,EAClB;AACF;;;;"}