ts-generic-collections-linq
Version:
TypeScript library provides strongly-typed, queryable collections.
157 lines • 7.73 kB
JavaScript
/**
* @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 IStack() { }
if (false) {
/**
* @return {?}
*/
IStack.prototype.clear = function () { };
/**
* @param {?} item
* @return {?}
*/
IStack.prototype.contains = function (item) { };
/**
* @return {?}
*/
IStack.prototype.pop = function () { };
/**
* @param {?} item
* @return {?}
*/
IStack.prototype.push = function (item) { };
/**
* @return {?}
*/
IStack.prototype.peek = function () { };
/**
* @param {?} predicate
* @return {?}
*/
IStack.prototype.forEach = function (predicate) { };
/**
* @return {?}
*/
IStack.prototype.toArray = function () { };
}
/**
* @template T
*/
var /**
* @template T
*/
Stack = /** @class */ (function () {
function Stack(array) {
if (array === void 0) { array = null; }
this.list = new List();
if (array)
this.list = new List(array);
}
/**
* @return {?}
*/
Stack.prototype.clear = /**
* @return {?}
*/
function () {
this.list.clear();
};
/**
* @param {?} item
* @return {?}
*/
Stack.prototype.contains = /**
* @param {?} item
* @return {?}
*/
function (item) {
return this.list.any((/**
* @param {?} x
* @return {?}
*/
function (x) { return objCompare(x, item); }));
};
/**
* @return {?}
*/
Stack.prototype.pop = /**
* @return {?}
*/
function () {
if (this.list.length > 0) {
/** @type {?} */
var element = this.list.elementAt(this.list.length - 1);
this.list.removeAt(this.list.length - 1);
return element;
}
return null;
};
/**
* @param {?} item
* @return {?}
*/
Stack.prototype.push = /**
* @param {?} item
* @return {?}
*/
function (item) {
this.list.add(item);
};
/**
* @return {?}
*/
Stack.prototype.peek = /**
* @return {?}
*/
function () {
if (this.list.length > 0) {
/** @type {?} */
var element = this.list.elementAt(this.list.length - 1);
return element;
}
return null;
};
/**
* @param {?} predicate
* @return {?}
*/
Stack.prototype.forEach = /**
* @param {?} predicate
* @return {?}
*/
function (predicate) {
this.list.reverse().forEach(predicate);
};
/**
* @return {?}
*/
Stack.prototype.toArray = /**
* @return {?}
*/
function () {
/** @type {?} */
var tmp = new List(this.list.toArray());
return tmp.reverse().toArray();
};
return Stack;
}());
/**
* @template T
*/
export { Stack };
if (false) {
/**
* @type {?}
* @private
*/
Stack.prototype.list;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2suanMiLCJzb3VyY2VSb290Ijoibmc6Ly90cy1nZW5lcmljLWNvbGxlY3Rpb25zLWxpbnEvIiwic291cmNlcyI6WyJsaWIvc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQzs7Ozs7QUFFOUIsNEJBUUM7Ozs7O0lBUEcseUNBQWU7Ozs7O0lBQ2YsZ0RBQTRCOzs7O0lBQzVCLHVDQUFVOzs7OztJQUNWLDRDQUFxQjs7OztJQUNyQix3Q0FBVTs7Ozs7SUFDVixvREFBNEM7Ozs7SUFDNUMsMkNBQW9COzs7OztBQUd4Qjs7OztJQUdJLGVBQVksS0FBc0I7UUFBdEIsc0JBQUEsRUFBQSxZQUFzQjtRQUYxQixTQUFJLEdBQVksSUFBSSxJQUFJLEVBQUssQ0FBQztRQUdsQyxJQUFJLEtBQUs7WUFDTCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFJLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Ozs7SUFFRCxxQkFBSzs7O0lBQUw7UUFDSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3RCLENBQUM7Ozs7O0lBQ0Qsd0JBQVE7Ozs7SUFBUixVQUFTLElBQU87UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRzs7OztRQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsVUFBVSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBbkIsQ0FBbUIsRUFBQyxDQUFDO0lBQ25ELENBQUM7Ozs7SUFDRCxtQkFBRzs7O0lBQUg7UUFDSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTs7Z0JBRWxCLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFFdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFFekMsT0FBTyxPQUFPLENBQUM7U0FDbEI7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOzs7OztJQUNELG9CQUFJOzs7O0lBQUosVUFBSyxJQUFPO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQzs7OztJQUNELG9CQUFJOzs7SUFBSjtRQUNJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFOztnQkFDbEIsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUV2RCxPQUFPLE9BQU8sQ0FBQztTQUNsQjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7Ozs7O0lBQ0QsdUJBQU87Ozs7SUFBUCxVQUFRLFNBQTRCO1FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7Ozs7SUFDRCx1QkFBTzs7O0lBQVA7O1lBQ1EsR0FBRyxHQUFHLElBQUksSUFBSSxDQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUMsT0FBTyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVMLFlBQUM7QUFBRCxDQUFDLEFBOUNELElBOENDOzs7Ozs7Ozs7O0lBN0NHLHFCQUFzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG9iakNvbXBhcmUgfSBmcm9tICcuL2NvbW1vbic7XHJcbmltcG9ydCB7IExpc3QgfSBmcm9tICcuL2xpc3QnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJU3RhY2s8VD4ge1xyXG4gICAgY2xlYXIoKSA6IHZvaWQ7XHJcbiAgICBjb250YWlucyhpdGVtOiBUKSA6IGJvb2xlYW47XHJcbiAgICBwb3AoKSA6IFQ7XHJcbiAgICBwdXNoKGl0ZW06IFQpIDogdm9pZDsgICAgXHJcbiAgICBwZWVrKCk6IFQ7XHJcbiAgICBmb3JFYWNoKHByZWRpY2F0ZTogKGl0ZW06IFQpPT4gdm9pZCkgOiB2b2lkO1xyXG4gICAgdG9BcnJheSgpOiBBcnJheTxUPjsgICAgXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTdGFjazxUPiBpbXBsZW1lbnRzIElTdGFjazxUPiB7XHJcbiAgICBwcml2YXRlIGxpc3Q6IExpc3Q8VD4gPSBuZXcgTGlzdDxUPigpOyAgICBcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihhcnJheTogQXJyYXk8VD4gPSBudWxsKSB7XHJcbiAgICAgICAgaWYgKGFycmF5KVxyXG4gICAgICAgICAgICB0aGlzLmxpc3QgPSBuZXcgTGlzdDxUPihhcnJheSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGNsZWFyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubGlzdC5jbGVhcigpO1xyXG4gICAgfVxyXG4gICAgY29udGFpbnMoaXRlbTogVCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxpc3QuYW55KHggPT4gb2JqQ29tcGFyZSh4LCBpdGVtKSk7XHJcbiAgICB9XHJcbiAgICBwb3AoKTogVCB7XHJcbiAgICAgICAgaWYgKHRoaXMubGlzdC5sZW5ndGggPiAwKSB7XHJcblxyXG4gICAgICAgICAgICB2YXIgZWxlbWVudCA9IHRoaXMubGlzdC5lbGVtZW50QXQodGhpcy5saXN0Lmxlbmd0aCAtIDEpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5saXN0LnJlbW92ZUF0KHRoaXMubGlzdC5sZW5ndGggLSAxKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBwdXNoKGl0ZW06IFQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmxpc3QuYWRkKGl0ZW0pO1xyXG4gICAgfVxyXG4gICAgcGVlaygpOiBUIHtcclxuICAgICAgICBpZiAodGhpcy5saXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSB0aGlzLmxpc3QuZWxlbWVudEF0KHRoaXMubGlzdC5sZW5ndGggLSAxKTsgICAgICAgICAgICBcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBmb3JFYWNoKHByZWRpY2F0ZTogKGl0ZW06IFQpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmxpc3QucmV2ZXJzZSgpLmZvckVhY2gocHJlZGljYXRlKTtcclxuICAgIH1cclxuICAgIHRvQXJyYXkoKTogVFtdIHtcclxuICAgICAgICB2YXIgdG1wID0gbmV3IExpc3Q8VD4odGhpcy5saXN0LnRvQXJyYXkoKSk7XHJcbiAgICAgICAgcmV0dXJuIHRtcC5yZXZlcnNlKCkudG9BcnJheSgpO1xyXG4gICAgfVxyXG4gICAgXHJcbn0iXX0=