UNPKG

sdg

Version:

pomelo ts

35 lines 2.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const DEFAULT_TIMEOUT = 3000; const DEFAULT_SIZE = 500; class TimeoutFilter { constructor() { this.timeout = DEFAULT_TIMEOUT; this.maxSize = DEFAULT_SIZE; this.timeouts = {}; this.curId = 0; this.timeOutCount = 0; } async before(routeRecord, msg, session) { if (this.timeOutCount > this.maxSize) { console.warn('timeout filter is out of range, current size is %s, max size is %s', this.timeOutCount, this.maxSize); return; } this.curId++; this.timeOutCount++; this.timeouts[this.curId] = setTimeout(function () { console.error('request %j timeout.', routeRecord ? routeRecord.route : routeRecord); }, this.timeout); session.__timeout__ = this.curId; } async after(routeRecord, msg, session) { let timeout = this.timeouts[session.__timeout__]; if (timeout) { clearTimeout(timeout); this.timeOutCount--; delete this.timeouts[session.__timeout__]; } } } exports.default = TimeoutFilter; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZW91dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9maWx0ZXJzL2hhbmRsZXIvdGltZW91dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQztBQUM3QixNQUFNLFlBQVksR0FBRyxHQUFHLENBQUM7QUFFekIsTUFBcUIsYUFBYTtJQUFsQztRQUNVLFlBQU8sR0FBRyxlQUFlLENBQUM7UUFDMUIsWUFBTyxHQUFHLFlBQVksQ0FBQztRQUN2QixhQUFRLEdBQW1DLEVBQUUsQ0FBQztRQUM5QyxVQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsaUJBQVksR0FBRyxDQUFDLENBQUM7SUF3QjNCLENBQUM7SUF0QlEsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUF5QixFQUFFLEdBQWdCLEVBQUUsT0FBa0M7UUFDakcsSUFBSSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDcEMsT0FBTyxDQUFDLElBQUksQ0FBQyxvRUFBb0UsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwSCxPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsVUFBVSxDQUFDO1lBQ3JDLE9BQU8sQ0FBQyxLQUFLLENBQUMscUJBQXFCLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN0RixDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hCLE9BQWUsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUM1QyxDQUFDO0lBRU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxXQUF5QixFQUFFLEdBQWdCLEVBQUUsT0FBa0M7UUFDaEcsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBRSxPQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDMUQsSUFBSSxPQUFPLEVBQUU7WUFDWCxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBRSxPQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDcEQ7SUFDSCxDQUFDO0NBQ0Y7QUE3QkQsZ0NBNkJDIn0=