topkat-utils 1.2.103 → 1.2.105

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.
@@ -934,8 +934,8 @@ TN:
934
934
  SF:src/loop-utils.ts
935
935
  FN:8,forI
936
936
  FN:17,forIasync
937
- FN:43,recursiveGenericFunction
938
- FN:82,recursiveGenericFunctionSync
937
+ FN:46,recursiveGenericFunction
938
+ FN:87,recursiveGenericFunctionSync
939
939
  FNF:4
940
940
  FNH:0
941
941
  FNDA:0,forI
@@ -985,9 +985,9 @@ DA:40,2
985
985
  DA:41,2
986
986
  DA:42,2
987
987
  DA:43,2
988
- DA:44,0
989
- DA:45,0
990
- DA:46,0
988
+ DA:44,2
989
+ DA:45,2
990
+ DA:46,2
991
991
  DA:47,0
992
992
  DA:48,0
993
993
  DA:49,0
@@ -1006,11 +1006,11 @@ DA:61,0
1006
1006
  DA:62,0
1007
1007
  DA:63,0
1008
1008
  DA:64,0
1009
- DA:65,2
1010
- DA:66,2
1011
- DA:67,2
1012
- DA:68,2
1013
- DA:69,2
1009
+ DA:65,0
1010
+ DA:66,0
1011
+ DA:67,0
1012
+ DA:68,0
1013
+ DA:69,0
1014
1014
  DA:70,2
1015
1015
  DA:71,2
1016
1016
  DA:72,2
@@ -1023,11 +1023,11 @@ DA:78,2
1023
1023
  DA:79,2
1024
1024
  DA:80,2
1025
1025
  DA:81,2
1026
- DA:82,0
1027
- DA:83,0
1028
- DA:84,0
1029
- DA:85,0
1030
- DA:86,0
1026
+ DA:82,2
1027
+ DA:83,2
1028
+ DA:84,2
1029
+ DA:85,2
1030
+ DA:86,2
1031
1031
  DA:87,0
1032
1032
  DA:88,0
1033
1033
  DA:89,0
@@ -1041,8 +1041,15 @@ DA:96,0
1041
1041
  DA:97,0
1042
1042
  DA:98,0
1043
1043
  DA:99,0
1044
- LF:99
1045
- LH:46
1044
+ DA:100,0
1045
+ DA:101,0
1046
+ DA:102,0
1047
+ DA:103,0
1048
+ DA:104,0
1049
+ DA:105,0
1050
+ DA:106,0
1051
+ LF:106
1052
+ LH:49
1046
1053
  BRF:0
1047
1054
  BRH:0
1048
1055
  end_of_record
@@ -2062,18 +2069,12 @@ end_of_record
2062
2069
  TN:
2063
2070
  SF:src/transaction-utils.ts
2064
2071
  FN:19,transaction
2065
- FN:47,removeItemFromQueue
2066
- FN:56,waitForTransaction
2067
- FN:19,transaction
2068
2072
  FN:48,removeItemFromQueue
2069
2073
  FN:57,waitForTransaction
2070
- FNF:6
2071
- FNH:4
2074
+ FNF:3
2075
+ FNH:2
2072
2076
  FNDA:16,transaction
2073
- FNDA:8,removeItemFromQueue
2074
- FNDA:0,waitForTransaction
2075
- FNDA:8,transaction
2076
- FNDA:8,removeItemFromQueue
2077
+ FNDA:16,removeItemFromQueue
2077
2078
  FNDA:0,waitForTransaction
2078
2079
  DA:1,2
2079
2080
  DA:2,2
@@ -2106,41 +2107,41 @@ DA:28,16
2106
2107
  DA:29,16
2107
2108
  DA:30,16
2108
2109
  DA:31,16
2109
- DA:32,9
2110
+ DA:32,16
2110
2111
  DA:33,2
2111
- DA:34,9
2112
+ DA:34,2
2112
2113
  DA:35,16
2113
2114
  DA:36,16
2114
2115
  DA:37,16
2115
2116
  DA:38,16
2116
- DA:39,8
2117
+ DA:39,16
2117
2118
  DA:40,0
2118
- DA:41,8
2119
- DA:42,8
2119
+ DA:41,0
2120
+ DA:42,0
2120
2121
  DA:43,16
2121
2122
  DA:44,16
2122
- DA:45,9
2123
- DA:46,9
2124
- DA:47,9
2125
- DA:48,4
2123
+ DA:45,16
2124
+ DA:46,16
2125
+ DA:47,2
2126
+ DA:48,2
2126
2127
  DA:49,16
2127
2128
  DA:50,6
2128
- DA:51,9
2129
- DA:52,4
2129
+ DA:51,16
2130
+ DA:52,6
2130
2131
  DA:53,2
2131
2132
  DA:54,2
2132
2133
  DA:55,2
2133
- DA:56,1
2134
- DA:57,1
2134
+ DA:56,2
2135
+ DA:57,2
2135
2136
  DA:58,0
2136
2137
  DA:59,0
2137
2138
  DA:60,0
2138
2139
  DA:61,0
2139
2140
  DA:62,0
2140
- DA:63,1
2141
- DA:64,1
2141
+ DA:63,0
2142
+ DA:64,0
2142
2143
  LF:64
2143
- LH:55
2144
+ LH:51
2144
2145
  BRDA:19,0,0,16
2145
2146
  BRDA:20,1,0,0
2146
2147
  BRDA:24,2,0,2
@@ -2148,20 +2149,12 @@ BRDA:25,3,0,2
2148
2149
  BRDA:27,4,0,16
2149
2150
  BRDA:28,5,0,0
2150
2151
  BRDA:29,6,0,16
2151
- BRDA:38,7,0,8
2152
- BRDA:32,8,0,9
2153
- BRDA:47,9,0,8
2154
- BRDA:48,10,0,3
2152
+ BRDA:39,7,0,0
2153
+ BRDA:32,8,0,2
2154
+ BRDA:48,9,0,16
2155
+ BRDA:49,10,0,10
2155
2156
  BRDA:49,11,0,6
2156
- BRDA:19,12,0,8
2157
- BRDA:27,13,0,8
2158
- BRDA:29,14,0,16
2159
- BRDA:39,15,0,8
2160
- BRDA:32,16,0,9
2161
- BRDA:48,17,0,8
2162
- BRDA:49,18,0,13
2163
- BRDA:49,19,0,3
2164
- BRDA:51,20,0,3
2165
- BRF:21
2166
- BRH:19
2157
+ BRDA:51,12,0,6
2158
+ BRF:13
2159
+ BRH:10
2167
2160
  end_of_record
@@ -4,6 +4,7 @@ export declare function forIasync<T extends any[] | any>(nbIterations: number, c
4
4
  export type RecursiveCallback = (item: any, addr: string, lastElementKey: string | number, parent: ObjectGeneric | any[]) => false | any;
5
5
  export type RecursiveConfig = {
6
6
  disableCircularDependencyRemoval?: boolean;
7
+ isObjectTestFunction?: (item: any) => boolean;
7
8
  };
8
9
  /**
9
10
  * @param {any} item the first array or object or whatever you want to recursively browse
@@ -37,6 +37,8 @@ exports.forIasync = forIasync;
37
37
  */
38
38
  async function recursiveGenericFunction(item, callback, config = {}, addr$ = '', lastElementKey = '', parent, techFieldToAvoidCircularDependency = []) {
39
39
  (0, error_utils_1.err500IfNotSet)({ callback });
40
+ if (!config.isObjectTestFunction)
41
+ config.isObjectTestFunction = is_object_1.isObject;
40
42
  if (!techFieldToAvoidCircularDependency.includes(item)) {
41
43
  const result = addr$ === '' ? true : await callback(item, addr$, lastElementKey, parent);
42
44
  if (result !== false) {
@@ -45,7 +47,7 @@ async function recursiveGenericFunction(item, callback, config = {}, addr$ = '',
45
47
  techFieldToAvoidCircularDependency.push(item);
46
48
  await Promise.all(item.map((e, i) => recursiveGenericFunction(e, callback, config, addr$ + '[' + i + ']', i, item, techFieldToAvoidCircularDependency)));
47
49
  }
48
- else if ((0, is_object_1.isObject)(item)) {
50
+ else if (config.isObjectTestFunction(item)) {
49
51
  if (config?.disableCircularDependencyRemoval !== true)
50
52
  techFieldToAvoidCircularDependency.push(item);
51
53
  await Promise.all(Object.entries(item).map(([key, val]) => recursiveGenericFunction(val, callback, config, (addr$ ? addr$ + '.' : '') + key.replace(/\./g, '%'), key, item, techFieldToAvoidCircularDependency)));
@@ -73,6 +75,8 @@ exports.recursiveGenericFunction = recursiveGenericFunction;
73
75
  */
74
76
  function recursiveGenericFunctionSync(item, callback, config = {}, addr$ = '', lastElementKey = '', parent, techFieldToAvoidCircularDependency = []) {
75
77
  (0, error_utils_1.err500IfNotSet)({ callback });
78
+ if (!config.isObjectTestFunction)
79
+ config.isObjectTestFunction = is_object_1.isObject;
76
80
  if (!techFieldToAvoidCircularDependency.includes(item)) {
77
81
  const result = addr$ === '' ? true : callback(item, addr$, lastElementKey, parent);
78
82
  if (result !== false) {
@@ -81,7 +85,7 @@ function recursiveGenericFunctionSync(item, callback, config = {}, addr$ = '', l
81
85
  techFieldToAvoidCircularDependency.push(item); // do not up one level
82
86
  item.forEach((e, i) => recursiveGenericFunctionSync(e, callback, config, addr$ + '[' + i + ']', i, item, techFieldToAvoidCircularDependency));
83
87
  }
84
- else if ((0, is_object_1.isObject)(item)) {
88
+ else if (config.isObjectTestFunction(item)) {
85
89
  if (config?.disableCircularDependencyRemoval !== true)
86
90
  techFieldToAvoidCircularDependency.push(item);
87
91
  Object.entries(item).forEach(([key, val]) => recursiveGenericFunctionSync(val, callback, config, (addr$ ? addr$ + '.' : '') + key.replace(/\./g, '%'), key, item, techFieldToAvoidCircularDependency));
@@ -1 +1 @@
1
- {"version":3,"file":"loop-utils.js","sourceRoot":"","sources":["../../src/loop-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loop-utils.js","sourceRoot":"","sources":["../../src/loop-utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "topkat-utils",
3
- "version": "1.2.103",
3
+ "version": "1.2.105",
4
4
  "type": "commonjs",
5
5
  "types": "index.ts",
6
6
  "main": "dist",
package/src/loop-utils.ts CHANGED
@@ -24,7 +24,10 @@ export async function forIasync<T extends any[] | any>(nbIterations: number, cal
24
24
 
25
25
 
26
26
  export type RecursiveCallback = (item: any, addr: string, lastElementKey: string | number, parent: ObjectGeneric | any[]) => false | any
27
- export type RecursiveConfig = { disableCircularDependencyRemoval?: boolean }
27
+ export type RecursiveConfig = {
28
+ disableCircularDependencyRemoval?: boolean
29
+ isObjectTestFunction?: (item: any) => boolean
30
+ }
28
31
  /**
29
32
  * @param {any} item the first array or object or whatever you want to recursively browse
30
33
  * @param {function} callback the callback you want to apply on items including the main one
@@ -43,6 +46,8 @@ export type RecursiveConfig = { disableCircularDependencyRemoval?: boolean }
43
46
  export async function recursiveGenericFunction(item: ObjectGeneric | any[], callback: RecursiveCallback, config: RecursiveConfig = {}, addr$ = '', lastElementKey: string | number = '', parent?, techFieldToAvoidCircularDependency: any[] = []) {
44
47
  err500IfNotSet({ callback })
45
48
 
49
+ if (!config.isObjectTestFunction) config.isObjectTestFunction = isObject
50
+
46
51
  if (!techFieldToAvoidCircularDependency.includes(item)) {
47
52
  const result = addr$ === '' ? true : await callback(item, addr$, lastElementKey, parent)
48
53
 
@@ -52,7 +57,7 @@ export async function recursiveGenericFunction(item: ObjectGeneric | any[], call
52
57
  await Promise.all(item.map(
53
58
  (e, i) => recursiveGenericFunction(e, callback, config, addr$ + '[' + i + ']', i, item, techFieldToAvoidCircularDependency)
54
59
  ))
55
- } else if (isObject(item)) {
60
+ } else if (config.isObjectTestFunction(item)) {
56
61
  if (config?.disableCircularDependencyRemoval !== true) techFieldToAvoidCircularDependency.push(item)
57
62
  await Promise.all(Object.entries(item).map(
58
63
  ([key, val]) => recursiveGenericFunction(val, callback, config, (addr$ ? addr$ + '.' : '') + key.replace(/\./g, '%'), key, item, techFieldToAvoidCircularDependency)
@@ -82,6 +87,8 @@ export async function recursiveGenericFunction(item: ObjectGeneric | any[], call
82
87
  export function recursiveGenericFunctionSync(item: ObjectGeneric | any[], callback: RecursiveCallback, config: RecursiveConfig = {}, addr$ = '', lastElementKey: string | number = '', parent?, techFieldToAvoidCircularDependency: any[] = []) {
83
88
  err500IfNotSet({ callback })
84
89
 
90
+ if (!config.isObjectTestFunction) config.isObjectTestFunction = isObject
91
+
85
92
  if (!techFieldToAvoidCircularDependency.includes(item)) {
86
93
  const result = addr$ === '' ? true : callback(item, addr$, lastElementKey, parent)
87
94
 
@@ -89,7 +96,7 @@ export function recursiveGenericFunctionSync(item: ObjectGeneric | any[], callba
89
96
  if (Array.isArray(item)) {
90
97
  if (config?.disableCircularDependencyRemoval !== true) techFieldToAvoidCircularDependency.push(item) // do not up one level
91
98
  item.forEach((e, i) => recursiveGenericFunctionSync(e, callback, config, addr$ + '[' + i + ']', i, item, techFieldToAvoidCircularDependency))
92
- } else if (isObject(item)) {
99
+ } else if (config.isObjectTestFunction(item)) {
93
100
  if (config?.disableCircularDependencyRemoval !== true) techFieldToAvoidCircularDependency.push(item)
94
101
  Object.entries(item).forEach(([key, val]) => recursiveGenericFunctionSync(val, callback, config, (addr$ ? addr$ + '.' : '') + key.replace(/\./g, '%'), key, item, techFieldToAvoidCircularDependency))
95
102
  }