@loadmill/universal 0.3.40 → 0.3.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/array-utils.d.ts +13 -1
- package/dist/array-utils.js +25 -1
- package/dist/array-utils.js.map +1 -1
- package/package.json +1 -1
- package/src/array-utils.ts +25 -1
package/dist/array-utils.d.ts
CHANGED
|
@@ -1,7 +1,19 @@
|
|
|
1
1
|
export declare function deleteOne(arr: any[], index: number): void;
|
|
2
2
|
export declare function swap(arr: any[], oldIndex: number, newIndex: number): void;
|
|
3
|
-
export declare const isNonEmptyArray: (arr:
|
|
3
|
+
export declare const isNonEmptyArray: (arr: unknown) => boolean;
|
|
4
4
|
export declare const filterFalsyElements: (arr?: any[]) => any[];
|
|
5
5
|
export declare const filterFalsyElementsByProp: (arr: object[], prop: string) => any[];
|
|
6
6
|
export declare const arrayify: (something: any) => any[];
|
|
7
7
|
export declare function uniqByKeepLast(arr: any[], cmp: any): any[];
|
|
8
|
+
/**
|
|
9
|
+
* Returns the closest element to target in arr
|
|
10
|
+
* ex.
|
|
11
|
+
* arr = ['2', '8', '16', '32', '64', '128'], target = '60', toNumber = (x) => Number(x)
|
|
12
|
+
* will return '64'
|
|
13
|
+
* @param {*} arr array of numberifyable elemets
|
|
14
|
+
* @param {*} target numberifyable argument
|
|
15
|
+
* @param {*} toNumber a predicate function that converts each n in arr to a number
|
|
16
|
+
* If not provided, will use JavaScript's Number constructor
|
|
17
|
+
* @returns undefined if arr is not an array, or is an empty array, or target . Otherwise, returns the closest element to target in arr.
|
|
18
|
+
*/
|
|
19
|
+
export declare const getClosestNumberifyableElement: (arr: any[], target: any, toNumber?: (n: any) => number) => any;
|
package/dist/array-utils.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.uniqByKeepLast = exports.arrayify = exports.filterFalsyElementsByProp = exports.filterFalsyElements = exports.isNonEmptyArray = exports.swap = exports.deleteOne = void 0;
|
|
6
|
+
exports.getClosestNumberifyableElement = exports.uniqByKeepLast = exports.arrayify = exports.filterFalsyElementsByProp = exports.filterFalsyElements = exports.isNonEmptyArray = exports.swap = exports.deleteOne = void 0;
|
|
7
7
|
var reverse_1 = __importDefault(require("lodash/reverse"));
|
|
8
8
|
var uniqBy_1 = __importDefault(require("lodash/uniqBy"));
|
|
9
9
|
function deleteOne(arr, index) {
|
|
@@ -42,4 +42,28 @@ function uniqByKeepLast(arr, cmp) {
|
|
|
42
42
|
return reverse_1.default(uniqBy_1.default(reverse_1.default(arr), cmp));
|
|
43
43
|
}
|
|
44
44
|
exports.uniqByKeepLast = uniqByKeepLast;
|
|
45
|
+
/**
|
|
46
|
+
* Returns the closest element to target in arr
|
|
47
|
+
* ex.
|
|
48
|
+
* arr = ['2', '8', '16', '32', '64', '128'], target = '60', toNumber = (x) => Number(x)
|
|
49
|
+
* will return '64'
|
|
50
|
+
* @param {*} arr array of numberifyable elemets
|
|
51
|
+
* @param {*} target numberifyable argument
|
|
52
|
+
* @param {*} toNumber a predicate function that converts each n in arr to a number
|
|
53
|
+
* If not provided, will use JavaScript's Number constructor
|
|
54
|
+
* @returns undefined if arr is not an array, or is an empty array, or target . Otherwise, returns the closest element to target in arr.
|
|
55
|
+
*/
|
|
56
|
+
var getClosestNumberifyableElement = function (arr, target, toNumber) {
|
|
57
|
+
if (toNumber === void 0) { toNumber = Number; }
|
|
58
|
+
if (!Array.isArray(arr) || arr.length === 0 || !target) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
return arr.reduce(function (prev, curr) {
|
|
62
|
+
return Math.abs(toNumber(curr) - toNumber(target)) <
|
|
63
|
+
Math.abs(toNumber(prev) - toNumber(target)) ?
|
|
64
|
+
curr :
|
|
65
|
+
prev;
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
exports.getClosestNumberifyableElement = getClosestNumberifyableElement;
|
|
45
69
|
//# sourceMappingURL=array-utils.js.map
|
package/dist/array-utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-utils.js","sourceRoot":"","sources":["../src/array-utils.ts"],"names":[],"mappings":";;;;;;AAAA,2DAAqC;AACrC,yDAAmC;AAEnC,SAAgB,SAAS,CAAC,GAAU,EAAE,KAAa;IACjD,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;QACd,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KACtB;AACH,CAAC;AAJD,8BAIC;AAED,SAAgB,IAAI,CAAC,GAAU,EAAE,QAAgB,EAAE,QAAgB;IACjE,IAAI,QAAQ,GAAG,QAAQ,EAAE;QACvB,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvC,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;KAC7B;SAAM;QACL,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3C,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;KACzB;AACH,CAAC;AARD,oBAQC;AAEM,IAAM,eAAe,GAAG,UAAC,
|
|
1
|
+
{"version":3,"file":"array-utils.js","sourceRoot":"","sources":["../src/array-utils.ts"],"names":[],"mappings":";;;;;;AAAA,2DAAqC;AACrC,yDAAmC;AAEnC,SAAgB,SAAS,CAAC,GAAU,EAAE,KAAa;IACjD,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;QACd,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KACtB;AACH,CAAC;AAJD,8BAIC;AAED,SAAgB,IAAI,CAAC,GAAU,EAAE,QAAgB,EAAE,QAAgB;IACjE,IAAI,QAAQ,GAAG,QAAQ,EAAE;QACvB,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvC,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;KAC7B;SAAM;QACL,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3C,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;KACzB;AACH,CAAC;AARD,oBAQC;AAEM,IAAM,eAAe,GAAG,UAAC,GAAY;IAC1C,OAAA,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;AAApC,CAAoC,CAAC;AAD1B,QAAA,eAAe,mBACW;AAEhC,IAAM,mBAAmB,GAAG,UAAC,GAAe;IAAf,oBAAA,EAAA,QAAe;IACjD,OAAA,GAAG,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC;AAAtB,CAAsB,CAAC;AADZ,QAAA,mBAAmB,uBACP;AAElB,IAAM,yBAAyB,GAAG,UAAC,GAAa,EAAE,IAAY;IACnE,OAAA,GAAG,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAT,CAAS,CAAC;AAA5B,CAA4B,CAAC;AADlB,QAAA,yBAAyB,6BACP;AAExB,IAAM,QAAQ,GAAG,UAAC,SAAc,IAAK,OAAA,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAlD,CAAkD,CAAC;AAAlF,QAAA,QAAQ,YAA0E;AAE/F,SAAgB,cAAc,CAAC,GAAU,EAAE,GAAG;IAC5C,OAAO,iBAAO,CAAC,gBAAM,CAAC,iBAAO,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAC5C,CAAC;AAFD,wCAEC;AAED;;;;;;;;;;GAUG;AACI,IAAM,8BAA8B,GAAG,UAAC,GAAU,EAAE,MAAW,EAAE,QAAqC;IAArC,yBAAA,EAAA,iBAAqC;IAC3G,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE;QACtD,OAAO;KACR;IACD,OAAO,GAAG,CAAC,MAAM,CACf,UAAC,IAAI,EAAE,IAAI;QACT,OAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC7C,IAAI,CAAC,CAAC;YACN,IAAI;IAHN,CAGM,CACT,CAAC;AACJ,CAAC,CAAC;AAXW,QAAA,8BAA8B,kCAWzC"}
|
package/package.json
CHANGED
package/src/array-utils.ts
CHANGED
|
@@ -17,7 +17,7 @@ export function swap(arr: any[], oldIndex: number, newIndex: number) {
|
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
export const isNonEmptyArray = (arr): boolean =>
|
|
20
|
+
export const isNonEmptyArray = (arr: unknown): boolean =>
|
|
21
21
|
Array.isArray(arr) && arr.length > 0;
|
|
22
22
|
|
|
23
23
|
export const filterFalsyElements = (arr: any[] = []): any[] =>
|
|
@@ -31,3 +31,27 @@ export const arrayify = (something: any) => Array.isArray(something) ? something
|
|
|
31
31
|
export function uniqByKeepLast(arr: any[], cmp) {
|
|
32
32
|
return reverse(uniqBy(reverse(arr), cmp));
|
|
33
33
|
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Returns the closest element to target in arr
|
|
37
|
+
* ex.
|
|
38
|
+
* arr = ['2', '8', '16', '32', '64', '128'], target = '60', toNumber = (x) => Number(x)
|
|
39
|
+
* will return '64'
|
|
40
|
+
* @param {*} arr array of numberifyable elemets
|
|
41
|
+
* @param {*} target numberifyable argument
|
|
42
|
+
* @param {*} toNumber a predicate function that converts each n in arr to a number
|
|
43
|
+
* If not provided, will use JavaScript's Number constructor
|
|
44
|
+
* @returns undefined if arr is not an array, or is an empty array, or target . Otherwise, returns the closest element to target in arr.
|
|
45
|
+
*/
|
|
46
|
+
export const getClosestNumberifyableElement = (arr: any[], target: any, toNumber: (n: any) => number = Number) => {
|
|
47
|
+
if (!Array.isArray(arr) || arr.length === 0 || !target) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
return arr.reduce(
|
|
51
|
+
(prev, curr) =>
|
|
52
|
+
Math.abs(toNumber(curr) - toNumber(target)) <
|
|
53
|
+
Math.abs(toNumber(prev) - toNumber(target)) ?
|
|
54
|
+
curr :
|
|
55
|
+
prev
|
|
56
|
+
);
|
|
57
|
+
};
|