UNPKG

ornamentum

Version:
59 lines 4.43 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** @type {?} */ var splitPathExpression = /[,[\].]+?/; /** * @param {?} obj * @param {?} path * @return {?} */ export function get(obj, path) { if (obj === null || obj === undefined) { return obj; } return String.prototype.split.call(path, splitPathExpression) .filter(Boolean) .reduce((/** * @param {?} res * @param {?} key * @return {?} */ function (res, key) { if (res !== null && typeof res === 'object') { return res[key]; } return undefined; }), obj); } /** * @param {?} collection * @param {?} fields * @param {?} orders * @return {?} */ export function orderBy(collection, fields, orders) { console.log(fields); return collection.concat().sort((/** * @param {?} a * @param {?} b * @return {?} */ function (a, b) { for (var i = 0; i < fields.length; i++) { /** @type {?} */ var field = fields[i]; /** @type {?} */ var order = orders[i]; if (a[field] > b[field]) { return order === 'asc' ? 1 : -1; } if (a[field] < b[field]) { return order === 'asc' ? -1 : 1; } } return 0; })); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXV0aWxpdHkuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9vcm5hbWVudHVtLyIsInNvdXJjZXMiOlsidXRpbGl0eS9zZXJ2aWNlcy9vYmplY3QtdXRpbGl0eS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztJQUFNLG1CQUFtQixHQUFHLFdBQVc7Ozs7OztBQUV2QyxNQUFNLFVBQVUsR0FBRyxDQUFDLEdBQVEsRUFBRSxJQUFZO0lBQ3hDLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFO1FBQ3JDLE9BQU8sR0FBRyxDQUFDO0tBQ1o7SUFFRCxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLENBQUM7U0FDMUQsTUFBTSxDQUFDLE9BQU8sQ0FBQztTQUNmLE1BQU07Ozs7O0lBQUMsVUFBQyxHQUFHLEVBQUUsR0FBRztRQUNmLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7WUFDM0MsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDakI7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDLEdBQUUsR0FBRyxDQUFDLENBQUM7QUFDWixDQUFDOzs7Ozs7O0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBQyxVQUFpQixFQUFFLE1BQWdCLEVBQUUsTUFBMkI7SUFDdEYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQixPQUFPLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJOzs7OztJQUFDLFVBQUMsQ0FBTSxFQUFFLENBQU07UUFDN0MsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7O2dCQUNoQyxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQzs7Z0JBQ2pCLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDdkIsT0FBTyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2pDO1lBRUQsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN2QixPQUFPLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDakM7U0FDRjtRQUVELE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQyxFQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgc3BsaXRQYXRoRXhwcmVzc2lvbiA9IC9bLFtcXF0uXSs/LztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldChvYmo6IGFueSwgcGF0aDogc3RyaW5nKTogYW55IHtcbiAgaWYgKG9iaiA9PT0gbnVsbCB8fCBvYmogPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBvYmo7XG4gIH1cblxuICByZXR1cm4gU3RyaW5nLnByb3RvdHlwZS5zcGxpdC5jYWxsKHBhdGgsIHNwbGl0UGF0aEV4cHJlc3Npb24pXG4gICAgLmZpbHRlcihCb29sZWFuKVxuICAgIC5yZWR1Y2UoKHJlcywga2V5KSA9PiB7XG4gICAgICBpZiAocmVzICE9PSBudWxsICYmIHR5cGVvZiByZXMgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiByZXNba2V5XTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9LCBvYmopO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb3JkZXJCeShjb2xsZWN0aW9uOiBhbnlbXSwgZmllbGRzOiBzdHJpbmdbXSwgb3JkZXJzOiBBcnJheTwnYXNjJ3wnZGVzYyc+KTogYW55IHtcbiAgY29uc29sZS5sb2coZmllbGRzKTtcbiAgcmV0dXJuIGNvbGxlY3Rpb24uY29uY2F0KCkuc29ydCgoYTogYW55LCBiOiBhbnkpID0+IHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpZWxkcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgZmllbGQgPSBmaWVsZHNbaV07XG4gICAgICBjb25zdCBvcmRlciA9IG9yZGVyc1tpXTtcbiAgICAgIGlmIChhW2ZpZWxkXSA+IGJbZmllbGRdKSB7XG4gICAgICAgIHJldHVybiBvcmRlciA9PT0gJ2FzYycgPyAxIDogLTE7XG4gICAgICB9XG5cbiAgICAgIGlmIChhW2ZpZWxkXSA8IGJbZmllbGRdKSB7XG4gICAgICAgIHJldHVybiBvcmRlciA9PT0gJ2FzYycgPyAtMSA6IDE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH0pO1xufVxuIl19