ts-generic-collections-linq
Version:
TypeScript library provides strongly-typed, queryable collections.
69 lines • 6.29 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { List } from './list';
/**
* @template T
*/
export class Group {
/**
* @param {?} groups
* @param {?} list
*/
constructor(groups, list) {
this.list = new List();
this.groups = groups;
this.list = new List(list);
}
}
if (false) {
/** @type {?} */
Group.prototype.groups;
/** @type {?} */
Group.prototype.list;
}
/** @type {?} */
export var objCompare = (/**
* @param {?} obj1
* @param {?} obj2
* @return {?}
*/
function (obj1, obj2) {
if ((typeof obj1 !== 'object' && typeof obj1 !== 'function') && (typeof obj2 !== 'object' && typeof obj2 !== 'function')) {
return obj1 === obj2;
}
//Loop through properties in object 1
for (var p in obj1) {
//Check property exists on both objects
if (obj1.hasOwnProperty(p) !== obj2.hasOwnProperty(p))
return false;
switch (typeof (obj1[p])) {
//Deep compare objects
case 'object':
if (!objCompare(obj1[p], obj2[p]))
return false;
break;
//Compare function code
case 'function':
if (typeof (obj2[p]) == 'undefined' || (p != 'compare' && obj1[p].toString() != obj2[p].toString()))
return false;
break;
//Compare values
default:
if (obj1[p] != obj2[p])
return false;
}
}
//Check object 2 for any extra properties
for (var p in obj2) {
if (typeof (obj1[p]) == 'undefined')
return false;
}
return true;
});
/** @type {?} */
export const ITEM_NOT_FOUND_MSG = "Item does not exist.";
/** @type {?} */
export const MULTIPLE_INSTANCES_FOUND_MSG = "Multiple instances of entity found.";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vdHMtZ2VuZXJpYy1jb2xsZWN0aW9ucy1saW5xLyIsInNvdXJjZXMiOlsibGliL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQzs7OztBQUU5QixNQUFNLE9BQU8sS0FBSzs7Ozs7SUFJZCxZQUFZLE1BQWEsRUFBRSxJQUFjO1FBRnpDLFNBQUksR0FBbUIsSUFBSSxJQUFJLEVBQUssQ0FBQztRQUdqQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFJLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7Q0FDSjs7O0lBUEcsdUJBQWM7O0lBQ2QscUJBQXFDOzs7QUFRekMsTUFBTSxLQUFLLFVBQVU7Ozs7O0FBQUcsVUFBVSxJQUFJLEVBQUUsSUFBSTtJQUUzQyxJQUFJLENBQUMsT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLE9BQU8sSUFBSSxLQUFLLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLE9BQU8sSUFBSSxLQUFLLFVBQVUsQ0FBQyxFQUFFO1FBQ3pILE9BQU8sSUFBSSxLQUFLLElBQUksQ0FBQztLQUNyQjtJQUVELHFDQUFxQztJQUNyQyxLQUFLLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRTtRQUNuQix1Q0FBdUM7UUFDdkMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFFcEUsUUFBUSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDekIsc0JBQXNCO1lBQ3RCLEtBQUssUUFBUTtnQkFDWixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUUsT0FBTyxLQUFLLENBQUM7Z0JBQ2hELE1BQU07WUFDUCx1QkFBdUI7WUFDdkIsS0FBSyxVQUFVO2dCQUNkLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsSUFBSSxDQUFDLENBQUMsSUFBSSxTQUFTLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFBRSxPQUFPLEtBQUssQ0FBQztnQkFDbEgsTUFBTTtZQUNQLGdCQUFnQjtZQUNoQjtnQkFDQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUFFLE9BQU8sS0FBSyxDQUFDO1NBQ3RDO0tBQ0Q7SUFFRCx5Q0FBeUM7SUFDekMsS0FBSyxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUU7UUFDbkIsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVztZQUFFLE9BQU8sS0FBSyxDQUFDO0tBQ2xEO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDYixDQUFDLENBQUE7O0FBRUQsTUFBTSxPQUFPLGtCQUFrQixHQUFXLHNCQUFzQjs7QUFDaEUsTUFBTSxPQUFPLDRCQUE0QixHQUFXLHFDQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElFbnVtZXJhYmxlLCBJR3JvdXAgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBMaXN0IH0gZnJvbSAnLi9saXN0JztcclxuXHJcbmV4cG9ydCBjbGFzcyBHcm91cDxUPiBpbXBsZW1lbnRzIElHcm91cDxUPiB7XHJcbiAgICBncm91cHM6IGFueVtdO1xyXG4gICAgbGlzdDogSUVudW1lcmFibGU8VD4gPSBuZXcgTGlzdDxUPigpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGdyb3VwczogYW55W10sIGxpc3Q6IEFycmF5PFQ+KSB7XHJcbiAgICAgICAgdGhpcy5ncm91cHMgPSBncm91cHM7XHJcbiAgICAgICAgdGhpcy5saXN0ID0gbmV3IExpc3Q8VD4obGlzdCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB2YXIgb2JqQ29tcGFyZSA9IGZ1bmN0aW9uIChvYmoxLCBvYmoyKSB7XHJcblxyXG5cdGlmICgodHlwZW9mIG9iajEgIT09ICdvYmplY3QnICYmIHR5cGVvZiBvYmoxICE9PSAnZnVuY3Rpb24nKSAmJiAodHlwZW9mIG9iajIgIT09ICdvYmplY3QnICYmIHR5cGVvZiBvYmoyICE9PSAnZnVuY3Rpb24nKSkge1xyXG5cdFx0cmV0dXJuIG9iajEgPT09IG9iajI7XHJcblx0fVxyXG5cclxuXHQvL0xvb3AgdGhyb3VnaCBwcm9wZXJ0aWVzIGluIG9iamVjdCAxXHJcblx0Zm9yICh2YXIgcCBpbiBvYmoxKSB7XHJcblx0XHQvL0NoZWNrIHByb3BlcnR5IGV4aXN0cyBvbiBib3RoIG9iamVjdHNcclxuXHRcdGlmIChvYmoxLmhhc093blByb3BlcnR5KHApICE9PSBvYmoyLmhhc093blByb3BlcnR5KHApKSByZXR1cm4gZmFsc2U7XHJcbiBcclxuXHRcdHN3aXRjaCAodHlwZW9mIChvYmoxW3BdKSkge1xyXG5cdFx0XHQvL0RlZXAgY29tcGFyZSBvYmplY3RzXHJcblx0XHRcdGNhc2UgJ29iamVjdCc6XHJcblx0XHRcdFx0aWYgKCFvYmpDb21wYXJlKG9iajFbcF0sIG9iajJbcF0pKSByZXR1cm4gZmFsc2U7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdC8vQ29tcGFyZSBmdW5jdGlvbiBjb2RlXHJcblx0XHRcdGNhc2UgJ2Z1bmN0aW9uJzpcclxuXHRcdFx0XHRpZiAodHlwZW9mIChvYmoyW3BdKSA9PSAndW5kZWZpbmVkJyB8fCAocCAhPSAnY29tcGFyZScgJiYgb2JqMVtwXS50b1N0cmluZygpICE9IG9iajJbcF0udG9TdHJpbmcoKSkpIHJldHVybiBmYWxzZTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Ly9Db21wYXJlIHZhbHVlc1xyXG5cdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdGlmIChvYmoxW3BdICE9IG9iajJbcF0pIHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHR9XHJcbiBcclxuXHQvL0NoZWNrIG9iamVjdCAyIGZvciBhbnkgZXh0cmEgcHJvcGVydGllc1xyXG5cdGZvciAodmFyIHAgaW4gb2JqMikge1xyXG5cdFx0aWYgKHR5cGVvZiAob2JqMVtwXSkgPT0gJ3VuZGVmaW5lZCcpIHJldHVybiBmYWxzZTtcclxuXHR9XHJcblx0cmV0dXJuIHRydWU7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgSVRFTV9OT1RfRk9VTkRfTVNHOiBzdHJpbmcgPSBcIkl0ZW0gZG9lcyBub3QgZXhpc3QuXCI7XHJcbmV4cG9ydCBjb25zdCBNVUxUSVBMRV9JTlNUQU5DRVNfRk9VTkRfTVNHOiBzdHJpbmcgPSBcIk11bHRpcGxlIGluc3RhbmNlcyBvZiBlbnRpdHkgZm91bmQuXCI7Il19