UNPKG

@aimee-blue/ab-service-kit

Version:
38 lines (30 loc) 1.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.logSocketStats = logSocketStats; var _rxjs = require("rxjs"); var _operators = require("rxjs/operators"); var _os = require("os"); var _time = require("../time"); var _helpers = require("./helpers"); var _logging = require("../logging"); function logSocketStats(logger, data) { const numberOfMessages = data.pipe((0, _operators.filter)(_helpers.isString), (0, _operators.map)((_, i) => i + 1), (0, _operators.startWith)(0)); const bytesReceived = data.pipe((0, _operators.filter)(_helpers.isBuffer), (0, _operators.scan)((sum, item) => item.byteLength + sum, 0), (0, _operators.startWith)(0)); const stats = (0, _rxjs.combineLatest)(numberOfMessages, bytesReceived).pipe((0, _operators.map)(([msgs, bytes]) => ({ bytesReceived: bytes, numberOfMessages: msgs, timestamp: (0, _time.localNow)() })), (0, _logging.logEvents)({ prefix: `${_os.EOL}🔃 Connection stats`, suffix: [_os.EOL], on: ['audit', 'unsubscribe'], logger, unsubscribe: { prefix: `${_os.EOL}🔃 Connection stats upon closure` } }), (0, _operators.ignoreElements)()); return stats; } //# sourceMappingURL=logSocketStats.js.map