@etsoo/shared 1.1.97 → 1.1.98
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/README.md +2 -0
- package/__tests__/ArrayUtils.ts +16 -0
- package/lib/cjs/ArrayUtils.d.ts +10 -0
- package/lib/cjs/ArrayUtils.js +12 -0
- package/lib/mjs/ArrayUtils.d.ts +10 -0
- package/lib/mjs/ArrayUtils.js +12 -0
- package/package.json +1 -1
- package/src/ArrayUtils.ts +46 -0
package/README.md
CHANGED
|
@@ -102,6 +102,8 @@ Array related utilities
|
|
|
102
102
|
|Name|Description|
|
|
103
103
|
|---:|---|
|
|
104
104
|
|differences|Array 1 items do not exist in Array 2 or reverse match|
|
|
105
|
+
|max|Get max number item or number item property|
|
|
106
|
+
|min|Get min number item or number item property|
|
|
105
107
|
|sum|Sum number items or number item properties|
|
|
106
108
|
|toUnique|Make all items are unique|
|
|
107
109
|
|
package/__tests__/ArrayUtils.ts
CHANGED
|
@@ -33,3 +33,19 @@ test('Tests for sum fields', () => {
|
|
|
33
33
|
];
|
|
34
34
|
expect(items.sum('amount')).toBe(7.68);
|
|
35
35
|
});
|
|
36
|
+
|
|
37
|
+
test('Tests for max / min numbers', () => {
|
|
38
|
+
const items = [12, 8, 22];
|
|
39
|
+
expect(items.max()).toBe(22);
|
|
40
|
+
expect(items.min()).toBe(8);
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
test('Tests for max / min fields', () => {
|
|
44
|
+
const items = [
|
|
45
|
+
{ id: 1, label: 'a', amount: 3.14 },
|
|
46
|
+
{ id: 2, label: 'b', amount: 4.54 },
|
|
47
|
+
{ id: 2, label: 'b', amount: 1.52 }
|
|
48
|
+
];
|
|
49
|
+
expect(items.max('amount')).toBe(4.54);
|
|
50
|
+
expect(items.min('amount')).toBe(1.52);
|
|
51
|
+
});
|
package/lib/cjs/ArrayUtils.d.ts
CHANGED
|
@@ -7,6 +7,16 @@ declare global {
|
|
|
7
7
|
* @param round A round for both matches
|
|
8
8
|
*/
|
|
9
9
|
different(target: Array<T>, round?: boolean): Array<T>;
|
|
10
|
+
/**
|
|
11
|
+
* Get max number item or number item property
|
|
12
|
+
* @param field Object field to calculate
|
|
13
|
+
*/
|
|
14
|
+
max(...field: T extends number ? [undefined?] : T extends object ? [DataTypes.Keys<T, number>] : [never]): number;
|
|
15
|
+
/**
|
|
16
|
+
* Get min number item or number item property
|
|
17
|
+
* @param field Object field to calculate
|
|
18
|
+
*/
|
|
19
|
+
min(...field: T extends number ? [undefined?] : T extends object ? [DataTypes.Keys<T, number>] : [never]): number;
|
|
10
20
|
/**
|
|
11
21
|
* Sum number items or number item properties
|
|
12
22
|
* @param field Object field to calculate
|
package/lib/cjs/ArrayUtils.js
CHANGED
|
@@ -19,6 +19,18 @@ Array.prototype.toUnique = function () {
|
|
|
19
19
|
});
|
|
20
20
|
return newArray;
|
|
21
21
|
};
|
|
22
|
+
Array.prototype.max = function (field) {
|
|
23
|
+
if (field == null) {
|
|
24
|
+
return Math.max(...this);
|
|
25
|
+
}
|
|
26
|
+
return Math.max(...this.map((item) => item[field]));
|
|
27
|
+
};
|
|
28
|
+
Array.prototype.min = function (field) {
|
|
29
|
+
if (field == null) {
|
|
30
|
+
return Math.min(...this);
|
|
31
|
+
}
|
|
32
|
+
return Math.min(...this.map((item) => item[field]));
|
|
33
|
+
};
|
|
22
34
|
Array.prototype.sum = function (field) {
|
|
23
35
|
if (field == null) {
|
|
24
36
|
return this.reduce((total, num) => total + num, 0);
|
package/lib/mjs/ArrayUtils.d.ts
CHANGED
|
@@ -7,6 +7,16 @@ declare global {
|
|
|
7
7
|
* @param round A round for both matches
|
|
8
8
|
*/
|
|
9
9
|
different(target: Array<T>, round?: boolean): Array<T>;
|
|
10
|
+
/**
|
|
11
|
+
* Get max number item or number item property
|
|
12
|
+
* @param field Object field to calculate
|
|
13
|
+
*/
|
|
14
|
+
max(...field: T extends number ? [undefined?] : T extends object ? [DataTypes.Keys<T, number>] : [never]): number;
|
|
15
|
+
/**
|
|
16
|
+
* Get min number item or number item property
|
|
17
|
+
* @param field Object field to calculate
|
|
18
|
+
*/
|
|
19
|
+
min(...field: T extends number ? [undefined?] : T extends object ? [DataTypes.Keys<T, number>] : [never]): number;
|
|
10
20
|
/**
|
|
11
21
|
* Sum number items or number item properties
|
|
12
22
|
* @param field Object field to calculate
|
package/lib/mjs/ArrayUtils.js
CHANGED
|
@@ -13,6 +13,18 @@ Array.prototype.toUnique = function () {
|
|
|
13
13
|
});
|
|
14
14
|
return newArray;
|
|
15
15
|
};
|
|
16
|
+
Array.prototype.max = function (field) {
|
|
17
|
+
if (field == null) {
|
|
18
|
+
return Math.max(...this);
|
|
19
|
+
}
|
|
20
|
+
return Math.max(...this.map((item) => item[field]));
|
|
21
|
+
};
|
|
22
|
+
Array.prototype.min = function (field) {
|
|
23
|
+
if (field == null) {
|
|
24
|
+
return Math.min(...this);
|
|
25
|
+
}
|
|
26
|
+
return Math.min(...this.map((item) => item[field]));
|
|
27
|
+
};
|
|
16
28
|
Array.prototype.sum = function (field) {
|
|
17
29
|
if (field == null) {
|
|
18
30
|
return this.reduce((total, num) => total + num, 0);
|
package/package.json
CHANGED
package/src/ArrayUtils.ts
CHANGED
|
@@ -10,6 +10,30 @@ declare global {
|
|
|
10
10
|
*/
|
|
11
11
|
different(target: Array<T>, round?: boolean): Array<T>;
|
|
12
12
|
|
|
13
|
+
/**
|
|
14
|
+
* Get max number item or number item property
|
|
15
|
+
* @param field Object field to calculate
|
|
16
|
+
*/
|
|
17
|
+
max(
|
|
18
|
+
...field: T extends number
|
|
19
|
+
? [undefined?]
|
|
20
|
+
: T extends object
|
|
21
|
+
? [DataTypes.Keys<T, number>]
|
|
22
|
+
: [never]
|
|
23
|
+
): number;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Get min number item or number item property
|
|
27
|
+
* @param field Object field to calculate
|
|
28
|
+
*/
|
|
29
|
+
min(
|
|
30
|
+
...field: T extends number
|
|
31
|
+
? [undefined?]
|
|
32
|
+
: T extends object
|
|
33
|
+
? [DataTypes.Keys<T, number>]
|
|
34
|
+
: [never]
|
|
35
|
+
): number;
|
|
36
|
+
|
|
13
37
|
/**
|
|
14
38
|
* Sum number items or number item properties
|
|
15
39
|
* @param field Object field to calculate
|
|
@@ -50,6 +74,28 @@ Array.prototype.toUnique = function <T>(this: Array<T>) {
|
|
|
50
74
|
return newArray;
|
|
51
75
|
};
|
|
52
76
|
|
|
77
|
+
Array.prototype.max = function <T>(
|
|
78
|
+
this: Array<T>,
|
|
79
|
+
field: T extends object ? DataTypes.Keys<T, number> : undefined
|
|
80
|
+
) {
|
|
81
|
+
if (field == null) {
|
|
82
|
+
return Math.max(...(this as Array<number>));
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
return Math.max(...this.map((item) => item[field] as number));
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
Array.prototype.min = function <T>(
|
|
89
|
+
this: Array<T>,
|
|
90
|
+
field: T extends object ? DataTypes.Keys<T, number> : undefined
|
|
91
|
+
) {
|
|
92
|
+
if (field == null) {
|
|
93
|
+
return Math.min(...(this as Array<number>));
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
return Math.min(...this.map((item) => item[field] as number));
|
|
97
|
+
};
|
|
98
|
+
|
|
53
99
|
Array.prototype.sum = function <T>(
|
|
54
100
|
this: Array<T>,
|
|
55
101
|
field: T extends object ? DataTypes.Keys<T, number> : undefined
|