@datorama/akita
Version:
State Management Tailored-Made for JS Applications
42 lines • 3.18 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/** @enum {string} */
const Order = {
ASC: 'asc',
DESC: 'desc',
};
export { Order };
// @internal
/**
* @param {?} key
* @param {?=} order
* @return {?}
*/
export function compareValues(key, order = Order.ASC) {
return (/**
* @param {?} a
* @param {?} b
* @return {?}
*/
function (a, b) {
if (!a.hasOwnProperty(key) || !b.hasOwnProperty(key)) {
return 0;
}
/** @type {?} */
const varA = typeof a[key] === 'string' ? a[key].toUpperCase() : a[key];
/** @type {?} */
const varB = typeof b[key] === 'string' ? b[key].toUpperCase() : b[key];
/** @type {?} */
let comparison = 0;
if (varA > varB) {
comparison = 1;
}
else if (varA < varB) {
comparison = -1;
}
return order == Order.DESC ? comparison * -1 : comparison;
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BkYXRvcmFtYS9ha2l0YS8iLCJzb3VyY2VzIjpbInNyYy9zb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztJQUNFLEtBQU0sS0FBSztJQUNYLE1BQU8sTUFBTTs7Ozs7Ozs7O0FBSWYsTUFBTSxVQUFVLGFBQWEsQ0FBQyxHQUFHLEVBQUUsUUFBZSxLQUFLLENBQUMsR0FBRztJQUN6RDs7Ozs7SUFBTyxVQUFTLENBQUMsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNwRCxPQUFPLENBQUMsQ0FBQztTQUNWOztjQUVLLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQzs7Y0FDakUsSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDOztZQUVuRSxVQUFVLEdBQUcsQ0FBQztRQUNsQixJQUFJLElBQUksR0FBRyxJQUFJLEVBQUU7WUFDZixVQUFVLEdBQUcsQ0FBQyxDQUFDO1NBQ2hCO2FBQU0sSUFBSSxJQUFJLEdBQUcsSUFBSSxFQUFFO1lBQ3RCLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNqQjtRQUNELE9BQU8sS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO0lBQzVELENBQUMsRUFBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBPcmRlciB7XG4gIEFTQyA9ICdhc2MnLFxuICBERVNDID0gJ2Rlc2MnXG59XG5cbi8vIEBpbnRlcm5hbFxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBhcmVWYWx1ZXMoa2V5LCBvcmRlcjogT3JkZXIgPSBPcmRlci5BU0MpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKGEsIGIpIHtcbiAgICBpZiAoIWEuaGFzT3duUHJvcGVydHkoa2V5KSB8fCAhYi5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBjb25zdCB2YXJBID0gdHlwZW9mIGFba2V5XSA9PT0gJ3N0cmluZycgPyBhW2tleV0udG9VcHBlckNhc2UoKSA6IGFba2V5XTtcbiAgICBjb25zdCB2YXJCID0gdHlwZW9mIGJba2V5XSA9PT0gJ3N0cmluZycgPyBiW2tleV0udG9VcHBlckNhc2UoKSA6IGJba2V5XTtcblxuICAgIGxldCBjb21wYXJpc29uID0gMDtcbiAgICBpZiAodmFyQSA+IHZhckIpIHtcbiAgICAgIGNvbXBhcmlzb24gPSAxO1xuICAgIH0gZWxzZSBpZiAodmFyQSA8IHZhckIpIHtcbiAgICAgIGNvbXBhcmlzb24gPSAtMTtcbiAgICB9XG4gICAgcmV0dXJuIG9yZGVyID09IE9yZGVyLkRFU0MgPyBjb21wYXJpc29uICogLTEgOiBjb21wYXJpc29uO1xuICB9O1xufVxuIl19