UNPKG

ts-generic-collections-linq

Version:

TypeScript library provides strongly-typed, queryable collections.

155 lines 7.24 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { objCompare } from './common'; import { List } from './list'; /** * @record * @template T */ export function IQueue() { } if (false) { /** * @return {?} */ IQueue.prototype.clear = function () { }; /** * @param {?} item * @return {?} */ IQueue.prototype.contains = function (item) { }; /** * @return {?} */ IQueue.prototype.dequeue = function () { }; /** * @param {?} item * @return {?} */ IQueue.prototype.enqueue = function (item) { }; /** * @return {?} */ IQueue.prototype.peek = function () { }; /** * @param {?} predicate * @return {?} */ IQueue.prototype.forEach = function (predicate) { }; /** * @return {?} */ IQueue.prototype.toArray = function () { }; } /** * @template T */ var /** * @template T */ Queue = /** @class */ (function () { function Queue(array) { if (array === void 0) { array = null; } this.list = new List(); if (array) this.list = new List(array); } /** * @return {?} */ Queue.prototype.clear = /** * @return {?} */ function () { this.list.clear(); }; /** * @param {?} item * @return {?} */ Queue.prototype.contains = /** * @param {?} item * @return {?} */ function (item) { return this.list.any((/** * @param {?} x * @return {?} */ function (x) { return objCompare(x, item); })); }; /** * @return {?} */ Queue.prototype.dequeue = /** * @return {?} */ function () { if (this.list.length > 0) { /** @type {?} */ var element = this.list.elementAt(0); this.list.removeAt(0); return element; } return null; }; /** * @param {?} item * @return {?} */ Queue.prototype.enqueue = /** * @param {?} item * @return {?} */ function (item) { this.list.add(item); }; /** * @return {?} */ Queue.prototype.peek = /** * @return {?} */ function () { if (this.list.length > 0) { /** @type {?} */ var element = this.list.elementAt(0); return element; } return null; }; /** * @param {?} predicate * @return {?} */ Queue.prototype.forEach = /** * @param {?} predicate * @return {?} */ function (predicate) { this.list.forEach(predicate); }; /** * @return {?} */ Queue.prototype.toArray = /** * @return {?} */ function () { return this.list.toArray(); }; return Queue; }()); /** * @template T */ export { Queue }; if (false) { /** * @type {?} * @private */ Queue.prototype.list; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly90cy1nZW5lcmljLWNvbGxlY3Rpb25zLWxpbnEvIiwic291cmNlcyI6WyJsaWIvcXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQzs7Ozs7QUFFOUIsNEJBUUM7Ozs7O0lBUEcseUNBQWU7Ozs7O0lBQ2YsZ0RBQTRCOzs7O0lBQzVCLDJDQUFjOzs7OztJQUNkLCtDQUF3Qjs7OztJQUN4Qix3Q0FBVTs7Ozs7SUFDVixvREFBNEM7Ozs7SUFDNUMsMkNBQW9COzs7OztBQUd4Qjs7OztJQUdJLGVBQVksS0FBc0I7UUFBdEIsc0JBQUEsRUFBQSxZQUFzQjtRQUYxQixTQUFJLEdBQVksSUFBSSxJQUFJLEVBQUssQ0FBQztRQUdsQyxJQUFJLEtBQUs7WUFDTCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFJLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Ozs7SUFFRCxxQkFBSzs7O0lBQUw7UUFDSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3RCLENBQUM7Ozs7O0lBQ0Qsd0JBQVE7Ozs7SUFBUixVQUFTLElBQU87UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRzs7OztRQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsVUFBVSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBbkIsQ0FBbUIsRUFBQyxDQUFDO0lBQ25ELENBQUM7Ozs7SUFDRCx1QkFBTzs7O0lBQVA7UUFDSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFDeEI7O2dCQUNRLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFFcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFdEIsT0FBTyxPQUFPLENBQUM7U0FDbEI7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOzs7OztJQUNELHVCQUFPOzs7O0lBQVAsVUFBUSxJQUFPO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQzs7OztJQUNELG9CQUFJOzs7SUFBSjtRQUNJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUN4Qjs7Z0JBQ1EsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUVwQyxPQUFPLE9BQU8sQ0FBQztTQUNsQjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7Ozs7O0lBQ0QsdUJBQU87Ozs7SUFBUCxVQUFRLFNBQTJCO1FBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7Ozs7SUFDRCx1QkFBTzs7O0lBQVA7UUFDSSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUNMLFlBQUM7QUFBRCxDQUFDLEFBN0NELElBNkNDOzs7Ozs7Ozs7O0lBNUNHLHFCQUFzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG9iakNvbXBhcmUgfSBmcm9tICcuL2NvbW1vbic7XHJcbmltcG9ydCB7IExpc3QgfSBmcm9tICcuL2xpc3QnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJUXVldWU8VD4geyAgICBcclxuICAgIGNsZWFyKCkgOiB2b2lkO1xyXG4gICAgY29udGFpbnMoaXRlbTogVCkgOiBib29sZWFuO1xyXG4gICAgZGVxdWV1ZSgpIDogVDtcclxuICAgIGVucXVldWUoaXRlbTogVCkgOiB2b2lkO1xyXG4gICAgcGVlaygpOiBUO1xyXG4gICAgZm9yRWFjaChwcmVkaWNhdGU6IChpdGVtOiBUKT0+IHZvaWQpIDogdm9pZDtcclxuICAgIHRvQXJyYXkoKTogQXJyYXk8VD47IFxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUXVldWU8VD4gaW1wbGVtZW50cyBJUXVldWU8VD4ge1xyXG4gICAgcHJpdmF0ZSBsaXN0OiBMaXN0PFQ+ID0gbmV3IExpc3Q8VD4oKTsgICAgXHJcblxyXG4gICAgY29uc3RydWN0b3IoYXJyYXk6IEFycmF5PFQ+ID0gbnVsbCkge1xyXG4gICAgICAgIGlmIChhcnJheSlcclxuICAgICAgICAgICAgdGhpcy5saXN0ID0gbmV3IExpc3Q8VD4oYXJyYXkpO1xyXG4gICAgfVxyXG5cclxuICAgIGNsZWFyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubGlzdC5jbGVhcigpO1xyXG4gICAgfVxyXG4gICAgY29udGFpbnMoaXRlbTogVCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxpc3QuYW55KHggPT4gb2JqQ29tcGFyZSh4LCBpdGVtKSk7XHJcbiAgICB9XHJcbiAgICBkZXF1ZXVlKCkgOiBUIHtcclxuICAgICAgICBpZiAodGhpcy5saXN0Lmxlbmd0aCA+IDApXHJcbiAgICAgICAgeyAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB2YXIgZWxlbWVudCA9IHRoaXMubGlzdC5lbGVtZW50QXQoMCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmxpc3QucmVtb3ZlQXQoMCk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgZW5xdWV1ZShpdGVtOiBUKSA6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubGlzdC5hZGQoaXRlbSk7XHJcbiAgICB9XHJcbiAgICBwZWVrKCkgOiBUIHtcclxuICAgICAgICBpZiAodGhpcy5saXN0Lmxlbmd0aCA+IDApXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgZWxlbWVudCA9IHRoaXMubGlzdC5lbGVtZW50QXQoMCk7ICAgICAgICBcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBmb3JFYWNoKHByZWRpY2F0ZTogKGl0ZW06IFQpPT4gdm9pZCkgOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmxpc3QuZm9yRWFjaChwcmVkaWNhdGUpO1xyXG4gICAgfVxyXG4gICAgdG9BcnJheSgpIDogQXJyYXk8VD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxpc3QudG9BcnJheSgpO1xyXG4gICAgfVxyXG59Il19