mirror of
https://github.com/louislam/uptime-kuma.git
synced 2025-06-03 12:02:33 +02:00

Reformatted code across multiple modules, standardizing string quotes, indentation, and spacing. Improved readability by restructuring blocks and aligning object properties consistently. These changes ensure better code maintainability and follow standard conventions. Signed-off-by: Toby Liddicoat <toby@codesure.co.uk>
48 lines
1 KiB
JavaScript
48 lines
1 KiB
JavaScript
const { ArrayWithKey } = require("./array-with-key");
|
|
|
|
/**
|
|
* Limit Queue
|
|
* The first element will be removed when the length exceeds the limit
|
|
*/
|
|
class LimitQueue extends ArrayWithKey {
|
|
|
|
/**
|
|
* The limit of the queue after which the first element will be removed
|
|
* @private
|
|
* @type {number}
|
|
*/
|
|
__limit;
|
|
/**
|
|
* The callback function when the queue exceeds the limit
|
|
* @private
|
|
* @callback onExceedCallback
|
|
* @param {{key:K,value:V}|nul} item
|
|
*/
|
|
__onExceed = null;
|
|
|
|
/**
|
|
* @param {number} limit The limit of the queue after which the first element will be removed
|
|
*/
|
|
constructor(limit) {
|
|
super();
|
|
this.__limit = limit;
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
push(key, value) {
|
|
super.push(key, value);
|
|
if (this.length() > this.__limit) {
|
|
let item = this.shift();
|
|
if (this.__onExceed) {
|
|
this.__onExceed(item);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
module.exports = {
|
|
LimitQueue,
|
|
};
|