1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var tslib_1 = require("tslib");
|
4 | var is_array_1 = (0, tslib_1.__importDefault)(require("./is-array"));
|
5 | var is_string_1 = (0, tslib_1.__importDefault)(require("./is-string"));
|
6 | var is_function_1 = (0, tslib_1.__importDefault)(require("./is-function"));
|
7 | function sortBy(arr, key) {
|
8 | var comparer;
|
9 | if ((0, is_function_1.default)(key)) {
|
10 | comparer = function (a, b) { return key(a) - key(b); };
|
11 | }
|
12 | else {
|
13 | var keys_1 = [];
|
14 | if ((0, is_string_1.default)(key)) {
|
15 | keys_1.push(key);
|
16 | }
|
17 | else if ((0, is_array_1.default)(key)) {
|
18 | keys_1 = key;
|
19 | }
|
20 | comparer = function (a, b) {
|
21 | for (var i = 0; i < keys_1.length; i += 1) {
|
22 | var prop = keys_1[i];
|
23 | if (a[prop] > b[prop]) {
|
24 | return 1;
|
25 | }
|
26 | if (a[prop] < b[prop]) {
|
27 | return -1;
|
28 | }
|
29 | }
|
30 | return 0;
|
31 | };
|
32 | }
|
33 | arr.sort(comparer);
|
34 | return arr;
|
35 | }
|
36 | exports.default = sortBy;
|
37 |
|
\ | No newline at end of file |