UNPKG

@bitrix24/b24jssdk

Version:

Bitrix24 REST API JavaScript SDK

74 lines (71 loc) 1.96 kB
/** * @package @bitrix24/b24jssdk * @version 1.0.3 * @copyright (c) 2026 Bitrix24 * @license MIT * @see https://github.com/bitrix24/b24jssdk * @see https://bitrix24.github.io/b24jssdk/ */ import { LogLevel } from '../../types/logger.mjs'; import { AbstractHandler } from './abstract-handler.mjs'; import { LineFormatter } from '../formatter/line-formatter.mjs'; var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); class StreamHandler extends AbstractHandler { static { __name(this, "StreamHandler"); } /** * Stream for writing logs. * @private */ stream; /** * Creates a StreamHandler instance. * * @param {LogLevel} level - Minimum log level. * @param options * - `stream: Writable` - Stream to write to (e.g., `process.stdout`, `process.stderr`, `fs.WriteStream`) * - `bubble?: boolean` - Determines whether the handler should bubble the record to the next handler. */ constructor(level = LogLevel.DEBUG, options) { const opts = { bubble: true, ...options }; super(level, opts.bubble); this.stream = opts.stream; this.setFormatter(new LineFormatter()); } /** * @inheritDoc */ async handle(record) { try { const formatter = this.getFormatter(); const message = formatter.format(record) + "\n"; this.stream.write(message); } catch (error) { console.error(`StreamHandler write error: ${error}`); return false; } return true; } /** * Closes the stream (if supported). * * @returns {Promise<void>} */ async close() { if (typeof this.stream.end === "function") { return new Promise((resolve, reject) => { this.stream.end((error) => { if (error) reject(error); else resolve(); }); }); } } } export { StreamHandler }; //# sourceMappingURL=stream-handler.mjs.map