topkat-utils 1.3.19 → 1.3.21
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 +15 -1
- package/dist/src/loop-utils.d.ts +1 -1
- package/dist/src/loop-utils.js +1 -1
- package/dist/src/loop-utils.js.map +1 -1
- package/package.json +1 -1
- package/src/loop-utils.ts +2 -2
package/README.md
CHANGED
|
@@ -183,6 +183,16 @@ recursiveGenericFunctionSync(
|
|
|
183
183
|
}
|
|
184
184
|
)
|
|
185
185
|
```
|
|
186
|
+
- `safeWhile`: A safer version of while loop that prevents infinite loops by limiting the maximum number of iterations
|
|
187
|
+
```typescript
|
|
188
|
+
// Count up to 10
|
|
189
|
+
let i = 0;
|
|
190
|
+
safeWhile(
|
|
191
|
+
() => i < 10,
|
|
192
|
+
() => i++,
|
|
193
|
+
{ nbRecursionMax: 100 } // Optional: maximum iterations before exiting
|
|
194
|
+
);
|
|
195
|
+
```
|
|
186
196
|
|
|
187
197
|
### Date Operations
|
|
188
198
|
- `getDateAsInt(date)`: Convert date to integer format (20290101)
|
|
@@ -233,7 +243,7 @@ urlPathJoin('https://api.example.com//v1', '/users/', 'userId') // => 'https://a
|
|
|
233
243
|
- `upperCase(str)`: `upperCase('HelloWorld' as const) // type: 'HELLOWORLD'` (Equivalent of type `UpperCase<MyString>`)
|
|
234
244
|
- `objEntries(obj)`: In JS object entries are not correctly typed (`Object.entries({ a: 1, b: true }) // type: [string, number | boolean]`). With this function we are typed like `objEntries({ a: 1, b: true }) // ["a", number] | ["b", boolean]`
|
|
235
245
|
- `objKeys`: In JS object keys are not correctly typed (`Object.keys({ a: 1, b: 2 }) // type: string`). With this function we are typed like `objKeys({ a: 1, b: 2 }) // type: 'a' | 'b'`
|
|
236
|
-
- `includes(
|
|
246
|
+
- `includes(array, item)`: Fix this always happening ts error when using includes and your search string is not typed as an array element (which is very dumb IMO)
|
|
237
247
|
|
|
238
248
|
## Configuration
|
|
239
249
|
|
|
@@ -263,6 +273,10 @@ This library is fully typed and provides TypeScript definitions out of the box.
|
|
|
263
273
|
|
|
264
274
|
Contributions are welcome! Please feel free to submit a Pull Request
|
|
265
275
|
|
|
276
|
+
## Used by
|
|
277
|
+
|
|
278
|
+
This lib is used as util library in [green_dot backend framework](https://github.com/topkat/green_dot)
|
|
279
|
+
|
|
266
280
|
## License
|
|
267
281
|
|
|
268
282
|
MIT
|
package/dist/src/loop-utils.d.ts
CHANGED
|
@@ -104,6 +104,6 @@ export declare function recursiveGenericFunctionSync(item: ObjectGeneric | any[]
|
|
|
104
104
|
* () => i++
|
|
105
105
|
* );
|
|
106
106
|
*/
|
|
107
|
-
export declare function safeWhile(conditionFn: () => boolean, callback: () => any, { nbRecursionMax }?: {
|
|
107
|
+
export declare function safeWhile(conditionFn: () => boolean, callback: (i: number) => any, { nbRecursionMax }?: {
|
|
108
108
|
nbRecursionMax?: number | undefined;
|
|
109
109
|
}): void;
|
package/dist/src/loop-utils.js
CHANGED
|
@@ -157,7 +157,7 @@ exports.recursiveGenericFunctionSync = recursiveGenericFunctionSync;
|
|
|
157
157
|
function safeWhile(conditionFn, callback, { nbRecursionMax = 100 } = {}) {
|
|
158
158
|
let nbRecursion = 0;
|
|
159
159
|
while (conditionFn() && nbRecursion++ < nbRecursionMax) {
|
|
160
|
-
callback();
|
|
160
|
+
callback(nbRecursion);
|
|
161
161
|
// eslint-disable-next-line no-console
|
|
162
162
|
if (nbRecursion === nbRecursionMax - 1)
|
|
163
163
|
console.warn(`Too much recursion for while loop, exiting...`);
|
|
@@ -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
package/src/loop-utils.ts
CHANGED
|
@@ -175,10 +175,10 @@ export function recursiveGenericFunctionSync(item: ObjectGeneric | any[], callba
|
|
|
175
175
|
* () => i++
|
|
176
176
|
* );
|
|
177
177
|
*/
|
|
178
|
-
export function safeWhile(conditionFn: () => boolean, callback: () => any, { nbRecursionMax = 100 } = {}) {
|
|
178
|
+
export function safeWhile(conditionFn: () => boolean, callback: (i: number) => any, { nbRecursionMax = 100 } = {}) {
|
|
179
179
|
let nbRecursion = 0
|
|
180
180
|
while (conditionFn() && nbRecursion++ < nbRecursionMax) {
|
|
181
|
-
callback()
|
|
181
|
+
callback(nbRecursion)
|
|
182
182
|
// eslint-disable-next-line no-console
|
|
183
183
|
if (nbRecursion === nbRecursionMax - 1) console.warn(`Too much recursion for while loop, exiting...`)
|
|
184
184
|
}
|