![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/ts.corals.io/frontend/node_modules/pusher-js/src/core/timeline/ |
import * as Collections from '../utils/collections'; import Util from '../util'; import { default as Level } from './level'; export interface TimelineOptions { level?: Level; limit?: number; version?: string; cluster?: string; features?: string[]; params?: any; } export default class Timeline { key: string; session: number; events: any[]; options: TimelineOptions; sent: number; uniqueID: number; constructor(key: string, session: number, options: TimelineOptions) { this.key = key; this.session = session; this.events = []; this.options = options || {}; this.sent = 0; this.uniqueID = 0; } log(level, event) { if (level <= this.options.level) { this.events.push( Collections.extend({}, event, { timestamp: Util.now() }) ); if (this.options.limit && this.events.length > this.options.limit) { this.events.shift(); } } } error(event) { this.log(Level.ERROR, event); } info(event) { this.log(Level.INFO, event); } debug(event) { this.log(Level.DEBUG, event); } isEmpty() { return this.events.length === 0; } send(sendfn, callback) { var data = Collections.extend( { session: this.session, bundle: this.sent + 1, key: this.key, lib: 'js', version: this.options.version, cluster: this.options.cluster, features: this.options.features, timeline: this.events }, this.options.params ); this.events = []; sendfn(data, (error, result) => { if (!error) { this.sent++; } if (callback) { callback(error, result); } }); return true; } generateUniqueID(): number { this.uniqueID++; return this.uniqueID; } }