topkat-utils 1.2.66 → 1.2.67
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.
|
@@ -17,26 +17,26 @@ type AsArrReturnVal<T, X> = T extends undefined ? (X extends undefined ? void :
|
|
|
17
17
|
*/
|
|
18
18
|
export declare function asArray<T extends any[] | any, X>(item: T, returnValueIfUndefined?: X): AsArrReturnVal<T, X>;
|
|
19
19
|
/** @return {object} { inCommon, notInB, notInA } */
|
|
20
|
-
export declare function compareArrays<T1, T2>(arrayA?: T1[], arrayB?: T2[], compare?: (a: T1 | T2, b: T1 | T2) => boolean): {
|
|
20
|
+
export declare function compareArrays<T1, T2>(arrayA?: T1[] | readonly T1[], arrayB?: T2[] | readonly T2[], compare?: (a: T1 | T2, b: T1 | T2) => boolean): {
|
|
21
21
|
inCommon: ReturnType<typeof getArrayInCommon<T1, T2>>;
|
|
22
22
|
notInB: ReturnType<typeof getArrayInCommon<T1, T2>>;
|
|
23
23
|
notInA: ReturnType<typeof getArrayInCommon<T2, T1>>;
|
|
24
24
|
};
|
|
25
25
|
/** @return [] only elements that are both in arrayA and arrayB */
|
|
26
|
-
export declare function getArrayInCommon<T1, T2>(arrayA?: T1[], arrayB?: T2[], compare?: (a: T1 | T2, b: T1 | T2) => boolean): T1[];
|
|
26
|
+
export declare function getArrayInCommon<T1, T2>(arrayA?: T1[] | readonly T1[], arrayB?: T2[] | readonly T2[], compare?: (a: T1 | T2, b: T1 | T2) => boolean): T1[];
|
|
27
27
|
/** @return [] only elements that are in arrayB and not in arrayA */
|
|
28
|
-
export declare function getNotInArrayA<T1, T2>(arrayA?: T1[], arrayB?: T2[], compare?: (a: T1 | T2, b: T1 | T2) => boolean): T2[];
|
|
28
|
+
export declare function getNotInArrayA<T1, T2>(arrayA?: T1[] | readonly T1[], arrayB?: T2[] | readonly T2[], compare?: (a: T1 | T2, b: T1 | T2) => boolean): T2[];
|
|
29
29
|
/**
|
|
30
30
|
* @return [] only elements that are in neither arrayA and arrayB
|
|
31
31
|
*/
|
|
32
|
-
export declare function getArrayDiff<T1, T2>(arrayA?: T1[], arrayB?: T2[], compare?: (a: T1 | T2, b: T1 | T2) => boolean): (T1 | T2)[];
|
|
32
|
+
export declare function getArrayDiff<T1, T2>(arrayA?: T1[] | readonly T1[], arrayB?: T2[] | readonly T2[], compare?: (a: T1 | T2, b: T1 | T2) => boolean): (T1 | T2)[];
|
|
33
33
|
/** filter duplicate values in an array
|
|
34
34
|
* @param {function} comparisonFn default:(a, b) => a === b. A function that shall return true if two values are considered equal
|
|
35
35
|
* @return {array|function}
|
|
36
36
|
*/
|
|
37
|
-
export declare function noDuplicateFilter<T extends any[]>(arr: T, comparisonFn?: (a: T, b: T) => boolean): T;
|
|
37
|
+
export declare function noDuplicateFilter<T extends any[] | readonly any[]>(arr: T, comparisonFn?: (a: T, b: T) => boolean): T;
|
|
38
38
|
/** Count number of occurence of item in array */
|
|
39
|
-
export declare function arrayCount(item: any, arr: any[]): number;
|
|
39
|
+
export declare function arrayCount(item: any, arr: any[] | readonly any[]): number;
|
|
40
40
|
/**
|
|
41
41
|
* @param {Function} comparisonFunction default: (itemToPush, itemAlreadyInArray) => itemToPush === itemAlreadyInArray; comparison function to consider the added item duplicate
|
|
42
42
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-utils.js","sourceRoot":"","sources":["../../src/array-utils.ts"],"names":[],"mappings":";;;AAAA,0CAA0C;AAC1C,cAAc;AACd,0CAA0C;AAC1C,iDAAiD;AACjD,mCAA+B;AAE/B,sEAAsE;AACtE,SAAgB,YAAY,CAA2B,KAAiB;IACpE,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QACvC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;KAC9C;IACD,OAAO,KAAK,CAAA;AAChB,CAAC;AAND,oCAMC;AAGD;;;;;;;GAOG;AACH,SAAgB,oBAAoB,CAAC,GAAW,EAAE,IAAY,EAAE,SAAS,EAAE,gBAA2B;IAClG,OAAO,IAAA,+BAAgB,EAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE;QAC9C,IAAI,IAAA,aAAK,EAAC,gBAAgB,CAAC,EAAE;YACzB,IAAI,cAAc,GAAG,KAAK,CAAA;YAC1B,IAAI,OAAO,gBAAgB,KAAK,UAAU;gBAAE,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAA;;gBAC1G,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;YAClD,IAAI,CAAC,cAAc;gBAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;SAChD;;YAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;AACN,CAAC;AATD,oDASC;AAED,wEAAwE;AACxE,SAAgB,UAAU,CAAI,QAAW;IACrC,OAAO,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAe,CAAA;AACtE,CAAC;AAFD,gCAEC;AAGD;;GAEG;AACH,SAAgB,OAAO,CAA2B,IAAO,EAAE,sBAA0B;IACjF,IAAI,OAAO,IAAI,KAAK,WAAW;QAAE,OAAO,sBAA6B,CAAA;;QAChE,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAQ,CAAA;AAC1D,CAAC;AAHD,0BAGC;AAED,oDAAoD;AACpD,SAAgB,aAAa,CAAS,
|
|
1
|
+
{"version":3,"file":"array-utils.js","sourceRoot":"","sources":["../../src/array-utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/array-utils.ts
CHANGED
|
@@ -48,7 +48,7 @@ export function asArray<T extends any[] | any, X>(item: T, returnValueIfUndefine
|
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
/** @return {object} { inCommon, notInB, notInA } */
|
|
51
|
-
export function compareArrays<T1, T2>(arrayA: T1[] = [], arrayB: T2[] = [], compare = (a: T1 | T2, b: T1 | T2) => a === b): {
|
|
51
|
+
export function compareArrays<T1, T2>(arrayA: T1[] | readonly T1[] = [], arrayB: T2[] | readonly T2[] = [], compare = (a: T1 | T2, b: T1 | T2) => a === b): {
|
|
52
52
|
inCommon: ReturnType<typeof getArrayInCommon<T1, T2>>
|
|
53
53
|
notInB: ReturnType<typeof getArrayInCommon<T1, T2>>
|
|
54
54
|
notInA: ReturnType<typeof getArrayInCommon<T2, T1>>
|
|
@@ -61,13 +61,13 @@ export function compareArrays<T1, T2>(arrayA: T1[] = [], arrayB: T2[] = [], comp
|
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
/** @return [] only elements that are both in arrayA and arrayB */
|
|
64
|
-
export function getArrayInCommon<T1, T2>(arrayA: T1[] = [], arrayB: T2[] = [], compare = (a: T1 | T2, b: T1 | T2) => a === b): T1[] {
|
|
64
|
+
export function getArrayInCommon<T1, T2>(arrayA: T1[] | readonly T1[] = [], arrayB: T2[] | readonly T2[] = [], compare = (a: T1 | T2, b: T1 | T2) => a === b): T1[] {
|
|
65
65
|
if (!Array.isArray(arrayA) || !Array.isArray(arrayB)) return []
|
|
66
66
|
else return arrayA.filter(a => arrayB.some(b => compare(a, b)))
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
/** @return [] only elements that are in arrayB and not in arrayA */
|
|
70
|
-
export function getNotInArrayA<T1, T2>(arrayA: T1[] = [], arrayB: T2[] = [], compare = (a: T1 | T2, b: T1 | T2) => a === b): T2[] {
|
|
70
|
+
export function getNotInArrayA<T1, T2>(arrayA: T1[] | readonly T1[] = [], arrayB: T2[] | readonly T2[] = [], compare = (a: T1 | T2, b: T1 | T2) => a === b): T2[] {
|
|
71
71
|
if (!Array.isArray(arrayA) && Array.isArray(arrayB)) return arrayB
|
|
72
72
|
else if (!Array.isArray(arrayB)) return []
|
|
73
73
|
else return arrayB.filter(b => !arrayA.some(a => compare(a, b)))
|
|
@@ -76,7 +76,7 @@ export function getNotInArrayA<T1, T2>(arrayA: T1[] = [], arrayB: T2[] = [], com
|
|
|
76
76
|
/**
|
|
77
77
|
* @return [] only elements that are in neither arrayA and arrayB
|
|
78
78
|
*/
|
|
79
|
-
export function getArrayDiff<T1, T2>(arrayA: T1[] = [], arrayB: T2[] = [], compare = (a: T1 | T2, b: T1 | T2) => a === b): (T1 | T2)[] {
|
|
79
|
+
export function getArrayDiff<T1, T2>(arrayA: T1[] | readonly T1[] = [], arrayB: T2[] | readonly T2[] = [], compare = (a: T1 | T2, b: T1 | T2) => a === b): (T1 | T2)[] {
|
|
80
80
|
return [...getNotInArrayA(arrayA, arrayB, compare), ...getNotInArrayA(arrayB, arrayA, compare)]
|
|
81
81
|
}
|
|
82
82
|
|
|
@@ -84,12 +84,12 @@ export function getArrayDiff<T1, T2>(arrayA: T1[] = [], arrayB: T2[] = [], compa
|
|
|
84
84
|
* @param {function} comparisonFn default:(a, b) => a === b. A function that shall return true if two values are considered equal
|
|
85
85
|
* @return {array|function}
|
|
86
86
|
*/
|
|
87
|
-
export function noDuplicateFilter<T extends any[]>(arr: T, comparisonFn = (a: T, b: T) => a === b): T {
|
|
87
|
+
export function noDuplicateFilter<T extends any[] | readonly any[]>(arr: T, comparisonFn = (a: T, b: T) => a === b): T {
|
|
88
88
|
return arr.filter((a, i, arr) => arr.findIndex(b => comparisonFn(a, b)) === i) as T
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
/** Count number of occurence of item in array */
|
|
92
|
-
export function arrayCount(item: any, arr: any[]): number {
|
|
92
|
+
export function arrayCount(item: any, arr: any[] | readonly any[]): number {
|
|
93
93
|
return arr.reduce((total, item2) => item === item2 ? total + 1 : total, 0)
|
|
94
94
|
}
|
|
95
95
|
|