UNPKG

@rws-air/utils

Version:
41 lines 1.35 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.stableTableSort = void 0; const lodash_orderby_1 = __importDefault(require("lodash.orderby")); /** * Stabily sorts an array of objects using lodash.orderby * @param array Array of objects to order * @param orderBy Key to order by * @param order Order ascending or descending * @param headerMapping Mapping of table headers for sorting on nested properties * @example * ```typescript * interface ArrType { * key: string; * prop: string; * } * * const arr: ArrType[] = [ * { key: '1', prop: '2' }, * { key: '4', prop: '4' } * ]; * * const mappings: Map<keyof ArrType, string> = new Map( * [ * [ 'key', ((type: ArrType) => type.key.toString()) as unknown as string ], * [ 'prop', ((type: ArrType) => type.prop) as unknown as string ] * ] * ); * * stableTableSort(arr, 'key', 'asc', mappings); * ``` */ function stableTableSort(array, orderBy, order, headerMapping) { const orderValue = headerMapping.get(orderBy); return (0, lodash_orderby_1.default)(array, [orderValue], [order]); } exports.stableTableSort = stableTableSort; //# sourceMappingURL=StableTableSort.js.map