UNPKG

1.22 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const _ = require("lodash");
4function castArray(input) {
5 if (input === undefined)
6 return [];
7 return Array.isArray(input) ? input : [input];
8}
9exports.castArray = castArray;
10function uniqBy(arr, fn) {
11 return arr.filter((a, i) => {
12 const aVal = fn(a);
13 return !arr.find((b, j) => j > i && fn(b) === aVal);
14 });
15}
16exports.uniqBy = uniqBy;
17function compact(a) {
18 return a.filter((a) => Boolean(a));
19}
20exports.compact = compact;
21function sortBy(arr, fn) {
22 function compare(a, b) {
23 a = a === undefined ? 0 : a;
24 b = b === undefined ? 0 : b;
25 if (Array.isArray(a) && Array.isArray(b)) {
26 if (a.length === 0 && b.length === 0)
27 return 0;
28 const diff = compare(a[0], b[0]);
29 if (diff !== 0)
30 return diff;
31 return compare(a.slice(1), b.slice(1));
32 }
33 if (a < b)
34 return -1;
35 if (a > b)
36 return 1;
37 return 0;
38 }
39 return arr.sort((a, b) => compare(fn(a), fn(b)));
40}
41exports.sortBy = sortBy;
42exports.template = (context) => (t) => _.template(t || '')(context);