UNPKG

@cute-dw/core

Version:

This TypeScript library is the main part of a more powerfull package designed for the fast WEB software development. The cornerstone of the library is the **DataStore** class, which might be useful when you need a full control of the data, but do not need

111 lines 9.51 kB
var _a; import { AbstractQueue } from "./AbstractQueue"; import { MinHeap } from "./heap/MinHeap"; /** * An unbounded priority `Queue` based on a priority heap. This queue orders elements according to an order specified * at construction time, which is specified either according to their _natural order_, or according to a * `Compare` function type, depending on which constructor is used. A priority queue does not permit _null_ and _undefined_ elements. */ export class PriorityQueue extends AbstractQueue { constructor(compare) { super(); this[_a] = "PriorityQueue"; this._minHeap = new MinHeap(compare); } /** * @override */ get length() { return this._minHeap.size(); } /** * @override */ get size() { return this._minHeap.size(); } /** * @override */ element() { return this._minHeap.peek(); } /** * Inserts the specified element into this priority queue * @param value * @returns */ offer(value) { return this._minHeap.add(value); } /** * @override */ peek() { return this._minHeap.peek(); } /** * @override */ poll() { return this._minHeap.poll(); } /** * @override */ removeFirst() { return this._minHeap.poll(); } /* //++ Iterator implemetation protected get iteratorFirstItem$(): number { return this._minHeap.size() >= 0 ? 0 : -1 } protected iteratorValue$(index: number): Element<T> { return index >= 0 && index < this.size ? this._minHeap.get(index) : null; } protected iteratorIterate$(fromIndex: number): number | null { if (fromIndex >= 0 && fromIndex < (this._minHeap.size() - 1)) { return fromIndex + 1; } return null; } //-- */ *[Symbol.iterator]() { const nSize = this.size; for (let index = 0; index < nSize; index++) { yield this._minHeap.get(index); } } /** * @override */ append(value) { return this._minHeap.add(value); } /** * @override */ clear() { this._minHeap.clear(); } /** * @override */ contains(value) { return this._minHeap.contains(value); } /** * @override */ toArray() { return this._minHeap.toArray(); } /** * @override */ remove(value) { return this._minHeap.remove(value); } /** * @override */ removeAt(index) { return this._minHeap.removeAt(index); } } _a = Symbol.toStringTag; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJpb3JpdHlRdWV1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2N1dGUtY29yZS9zcmMvbGliL2NvbGxlY3Rpb25zL1ByaW9yaXR5UXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekM7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxhQUFpQixTQUFRLGFBQWdCO0lBR3BELFlBQVksT0FBb0I7UUFDOUIsS0FBSyxFQUFFLENBQUM7UUFvR1YsUUFBb0IsR0FBRyxlQUFlLENBQUM7UUFuR3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxPQUFPLENBQUksT0FBTyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUNEOztPQUVHO0lBQ0gsSUFBSSxNQUFNLEtBQWMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFBLENBQUMsQ0FBQztJQUNyRDs7T0FFRztJQUNILElBQUksSUFBSSxLQUFnQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3REOztPQUVHO0lBQ0gsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxLQUFpQjtRQUNyQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDRDs7T0FFRztJQUNILElBQUk7UUFDRixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUNEOztPQUVHO0lBQ0gsSUFBSTtRQUNGLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBQ0Q7O09BRUc7SUFDSCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFDRDs7Ozs7Ozs7Ozs7TUFXRTtJQUVGLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ2hCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDeEIsS0FBSyxJQUFJLEtBQUssR0FBVyxDQUFDLEVBQUUsS0FBSyxHQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNsRCxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLEtBQWlCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNEOztPQUVHO0lBQ0gsS0FBSztRQUNILElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUNEOztPQUVHO0lBQ0gsUUFBUSxDQUFDLEtBQWlCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNEOztPQUVHO0lBQ0gsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBQ0Q7O09BRUc7SUFDSCxNQUFNLENBQUMsS0FBaUI7UUFDdEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQ0Q7O09BRUc7SUFDSCxRQUFRLENBQUMsS0FBYTtRQUNwQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Q0FJRjtLQUZFLE1BQU0sQ0FBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcGFyZSB9IGZyb20gXCIuLi91dGlsL2Z1bmN0aW9uL0NvbXBhcmVcIjtcclxuaW1wb3J0IHsgQWJzdHJhY3RRdWV1ZSB9IGZyb20gXCIuL0Fic3RyYWN0UXVldWVcIjtcclxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCIuL0NvbGxlY3Rpb25cIjtcclxuaW1wb3J0IHsgTWluSGVhcCB9IGZyb20gXCIuL2hlYXAvTWluSGVhcFwiO1xyXG5cclxuLyoqXHJcbiAqIEFuIHVuYm91bmRlZCBwcmlvcml0eSBgUXVldWVgIGJhc2VkIG9uIGEgcHJpb3JpdHkgaGVhcC4gIFRoaXMgcXVldWUgb3JkZXJzIGVsZW1lbnRzIGFjY29yZGluZyB0byBhbiBvcmRlciBzcGVjaWZpZWRcclxuICogYXQgY29uc3RydWN0aW9uIHRpbWUsIHdoaWNoIGlzIHNwZWNpZmllZCBlaXRoZXIgYWNjb3JkaW5nIHRvIHRoZWlyIF9uYXR1cmFsIG9yZGVyXywgb3IgYWNjb3JkaW5nIHRvIGFcclxuICogYENvbXBhcmVgIGZ1bmN0aW9uIHR5cGUsIGRlcGVuZGluZyBvbiB3aGljaCBjb25zdHJ1Y3RvciBpcyB1c2VkLiBBIHByaW9yaXR5IHF1ZXVlIGRvZXMgbm90IHBlcm1pdCBfbnVsbF8gYW5kIF91bmRlZmluZWRfIGVsZW1lbnRzLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFByaW9yaXR5UXVldWU8VD4gZXh0ZW5kcyBBYnN0cmFjdFF1ZXVlPFQ+IHtcclxuICBwcml2YXRlIF9taW5IZWFwOiBNaW5IZWFwPFQ+O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihjb21wYXJlPzogQ29tcGFyZTxUPikge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIHRoaXMuX21pbkhlYXAgPSBuZXcgTWluSGVhcDxUPihjb21wYXJlKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQG92ZXJyaWRlXHJcbiAgICovXHJcbiAgZ2V0IGxlbmd0aCgpOiBudW1iZXIgIHsgcmV0dXJuIHRoaXMuX21pbkhlYXAuc2l6ZSgpIH1cclxuICAvKipcclxuICAgKiBAb3ZlcnJpZGVcclxuICAgKi9cclxuICBnZXQgc2l6ZSgpOiBudW1iZXIgICAgeyByZXR1cm4gdGhpcy5fbWluSGVhcC5zaXplKCk7IH1cclxuICAvKipcclxuICAgKiBAb3ZlcnJpZGVcclxuICAgKi9cclxuICBlbGVtZW50KCk6IEVsZW1lbnQ8VD4gfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX21pbkhlYXAucGVlaygpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBJbnNlcnRzIHRoZSBzcGVjaWZpZWQgZWxlbWVudCBpbnRvIHRoaXMgcHJpb3JpdHkgcXVldWVcclxuICAgKiBAcGFyYW0gdmFsdWVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIG9mZmVyKHZhbHVlOiBFbGVtZW50PFQ+KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWluSGVhcC5hZGQodmFsdWUpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBAb3ZlcnJpZGVcclxuICAgKi9cclxuICBwZWVrKCk6IEVsZW1lbnQ8VD4gfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX21pbkhlYXAucGVlaygpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBAb3ZlcnJpZGVcclxuICAgKi9cclxuICBwb2xsKCk6IEVsZW1lbnQ8VD4gfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX21pbkhlYXAucG9sbCgpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBAb3ZlcnJpZGVcclxuICAgKi9cclxuICByZW1vdmVGaXJzdCgpOiBFbGVtZW50PFQ+IHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl9taW5IZWFwLnBvbGwoKTtcclxuICB9XHJcbiAgLypcclxuICAvLysrIEl0ZXJhdG9yIGltcGxlbWV0YXRpb25cclxuICBwcm90ZWN0ZWQgZ2V0IGl0ZXJhdG9yRmlyc3RJdGVtJCgpOiBudW1iZXIgeyByZXR1cm4gdGhpcy5fbWluSGVhcC5zaXplKCkgPj0gMCA/IDAgOiAtMSB9XHJcbiAgcHJvdGVjdGVkIGl0ZXJhdG9yVmFsdWUkKGluZGV4OiBudW1iZXIpOiBFbGVtZW50PFQ+IHsgcmV0dXJuIGluZGV4ID49IDAgJiYgaW5kZXggPCB0aGlzLnNpemUgPyB0aGlzLl9taW5IZWFwLmdldChpbmRleCkgOiBudWxsOyB9XHJcbiAgcHJvdGVjdGVkIGl0ZXJhdG9ySXRlcmF0ZSQoZnJvbUluZGV4OiBudW1iZXIpOiBudW1iZXIgfCBudWxsIHtcclxuICAgICAgaWYgKGZyb21JbmRleCA+PSAwICYmIGZyb21JbmRleCA8ICh0aGlzLl9taW5IZWFwLnNpemUoKSAtIDEpKSB7XHJcbiAgICAgICAgICByZXR1cm4gZnJvbUluZGV4ICsgMTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbiAgLy8tLVxyXG4gICovXHJcblxyXG4gICpbU3ltYm9sLml0ZXJhdG9yXSgpOiBJdGVyYWJsZUl0ZXJhdG9yPEVsZW1lbnQ8VD4+IHtcclxuICAgIGNvbnN0IG5TaXplID0gdGhpcy5zaXplO1xyXG4gICAgZm9yIChsZXQgaW5kZXg6IG51bWJlciA9IDA7IGluZGV4IDwgblNpemU7IGluZGV4KyspIHtcclxuICAgICAgeWllbGQgdGhpcy5fbWluSGVhcC5nZXQoaW5kZXgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQG92ZXJyaWRlXHJcbiAgICovXHJcbiAgYXBwZW5kKHZhbHVlOiBFbGVtZW50PFQ+KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWluSGVhcC5hZGQodmFsdWUpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBAb3ZlcnJpZGVcclxuICAgKi9cclxuICBjbGVhcigpOiB2b2lkIHtcclxuICAgIHRoaXMuX21pbkhlYXAuY2xlYXIoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQG92ZXJyaWRlXHJcbiAgICovXHJcbiAgY29udGFpbnModmFsdWU6IEVsZW1lbnQ8VD4pOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9taW5IZWFwLmNvbnRhaW5zKHZhbHVlKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQG92ZXJyaWRlXHJcbiAgICovXHJcbiAgdG9BcnJheSgpOiBFbGVtZW50PFQ+W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX21pbkhlYXAudG9BcnJheSgpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBAb3ZlcnJpZGVcclxuICAgKi9cclxuICByZW1vdmUodmFsdWU6IEVsZW1lbnQ8VD4pOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9taW5IZWFwLnJlbW92ZSh2YWx1ZSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEBvdmVycmlkZVxyXG4gICAqL1xyXG4gIHJlbW92ZUF0KGluZGV4OiBudW1iZXIpOiBFbGVtZW50PFQ+IHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl9taW5IZWFwLnJlbW92ZUF0KGluZGV4KTtcclxuICB9XHJcblxyXG4gIFtTeW1ib2wudG9TdHJpbmdUYWddID0gXCJQcmlvcml0eVF1ZXVlXCI7XHJcblxyXG59XHJcbiJdfQ==