@naturalcycles/js-lib 14.251.0 → 14.252.0
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/datetime/localDate.js +1 -0
- package/dist/decorators/debounce.decorator.js +2 -2
- package/dist/decorators/retry.decorator.js +1 -1
- package/dist/define.js +1 -1
- package/dist/error/tryCatch.js +1 -1
- package/dist/object/object.util.js +1 -2
- package/dist/promise/pFilter.js +1 -1
- package/dist/promise/pTimeout.js +1 -1
- package/dist/string/safeJsonStringify.js +1 -1
- package/dist-esm/datetime/localDate.js +1 -0
- package/dist-esm/decorators/debounce.decorator.js +2 -2
- package/dist-esm/decorators/retry.decorator.js +1 -1
- package/dist-esm/define.js +1 -1
- package/dist-esm/error/tryCatch.js +1 -1
- package/dist-esm/object/object.util.js +1 -2
- package/dist-esm/promise/pFilter.js +1 -1
- package/dist-esm/promise/pTimeout.js +1 -1
- package/dist-esm/string/safeJsonStringify.js +1 -1
- package/package.json +2 -2
- package/src/array/range.ts +1 -1
- package/src/datetime/localDate.ts +1 -0
- package/src/decorators/debounce.decorator.ts +2 -2
- package/src/decorators/retry.decorator.ts +1 -1
- package/src/define.ts +1 -1
- package/src/error/tryCatch.ts +1 -1
- package/src/object/object.util.ts +2 -2
- package/src/promise/pFilter.ts +1 -1
- package/src/promise/pTimeout.ts +1 -1
- package/src/string/safeJsonStringify.ts +1 -1
|
@@ -246,6 +246,7 @@ class LocalDate {
|
|
|
246
246
|
return this.plus(-num, 'year');
|
|
247
247
|
}
|
|
248
248
|
plus(num, unit, mutate = false) {
|
|
249
|
+
num = Math.floor(num); // if a fractional number like 0.5 is passed - it will be floored, as LocalDate only deals with "whole days" as minimal unit
|
|
249
250
|
let { day, month, year } = this;
|
|
250
251
|
if (unit === 'week') {
|
|
251
252
|
num *= 7;
|
|
@@ -5,7 +5,7 @@ exports._Throttle = _Throttle;
|
|
|
5
5
|
const debounce_1 = require("./debounce");
|
|
6
6
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
7
7
|
function _Debounce(wait, opt = {}) {
|
|
8
|
-
return (
|
|
8
|
+
return (_target, _key, descriptor) => {
|
|
9
9
|
const originalFn = descriptor.value;
|
|
10
10
|
descriptor.value = (0, debounce_1._debounce)(originalFn, wait, opt);
|
|
11
11
|
return descriptor;
|
|
@@ -13,7 +13,7 @@ function _Debounce(wait, opt = {}) {
|
|
|
13
13
|
}
|
|
14
14
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
15
15
|
function _Throttle(wait, opt = {}) {
|
|
16
|
-
return (
|
|
16
|
+
return (_target, _key, descriptor) => {
|
|
17
17
|
const originalFn = descriptor.value;
|
|
18
18
|
descriptor.value = (0, debounce_1._throttle)(originalFn, wait, opt);
|
|
19
19
|
return descriptor;
|
|
@@ -4,7 +4,7 @@ exports._Retry = _Retry;
|
|
|
4
4
|
const __1 = require("..");
|
|
5
5
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
6
6
|
function _Retry(opt = {}) {
|
|
7
|
-
return (
|
|
7
|
+
return (_target, _key, descriptor) => {
|
|
8
8
|
const originalFn = descriptor.value;
|
|
9
9
|
descriptor.value = (0, __1.pRetryFn)(originalFn, opt);
|
|
10
10
|
return descriptor;
|
package/dist/define.js
CHANGED
|
@@ -97,7 +97,7 @@ function _defineProperty(obj, prop, pd) {
|
|
|
97
97
|
* See _defineProperty for exact defaults definition.
|
|
98
98
|
*/
|
|
99
99
|
function _defineProps(obj, props) {
|
|
100
|
-
return Object.defineProperties(obj, (0, object_util_1._mapValues)(props, (
|
|
100
|
+
return Object.defineProperties(obj, (0, object_util_1._mapValues)(props, (_k, pd) => ({
|
|
101
101
|
writable: true,
|
|
102
102
|
configurable: true,
|
|
103
103
|
enumerable: true,
|
package/dist/error/tryCatch.js
CHANGED
|
@@ -38,7 +38,7 @@ function _tryCatch(fn, opt = {}) {
|
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
40
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
41
|
-
const _TryCatch = (opt = {}) => (
|
|
41
|
+
const _TryCatch = (opt = {}) => (_target, _key, descriptor) => {
|
|
42
42
|
const originalFn = descriptor.value;
|
|
43
43
|
descriptor.value = _tryCatch(originalFn, opt);
|
|
44
44
|
return descriptor;
|
|
@@ -308,7 +308,6 @@ function _unset(obj, prop) {
|
|
|
308
308
|
if (!(0, is_util_1._isObject)(obj)) {
|
|
309
309
|
return;
|
|
310
310
|
}
|
|
311
|
-
// eslint-disable-next-line no-prototype-builtins
|
|
312
311
|
if (obj.hasOwnProperty(prop)) {
|
|
313
312
|
delete obj[prop];
|
|
314
313
|
return;
|
|
@@ -426,7 +425,7 @@ function _has(obj, path) {
|
|
|
426
425
|
function _deepFreeze(o) {
|
|
427
426
|
Object.freeze(o);
|
|
428
427
|
Object.getOwnPropertyNames(o).forEach(prop => {
|
|
429
|
-
if (o.hasOwnProperty(prop) &&
|
|
428
|
+
if (o.hasOwnProperty(prop) &&
|
|
430
429
|
o[prop] !== null &&
|
|
431
430
|
(typeof o[prop] === 'object' || typeof o[prop] === 'function') &&
|
|
432
431
|
!Object.isFrozen(o[prop])) {
|
package/dist/promise/pFilter.js
CHANGED
|
@@ -4,5 +4,5 @@ exports.pFilter = pFilter;
|
|
|
4
4
|
async function pFilter(iterable, filterFn) {
|
|
5
5
|
const items = [...iterable];
|
|
6
6
|
const predicates = await Promise.all(items.map((item, i) => filterFn(item, i)));
|
|
7
|
-
return items.filter((
|
|
7
|
+
return items.filter((_item, i) => predicates[i]);
|
|
8
8
|
}
|
package/dist/promise/pTimeout.js
CHANGED
|
@@ -33,7 +33,7 @@ async function pTimeout(fn, opt) {
|
|
|
33
33
|
}
|
|
34
34
|
const { timeout, name = fn.name || 'pTimeout function', onTimeout } = opt;
|
|
35
35
|
const fakeError = opt.fakeError || new Error('TimeoutError');
|
|
36
|
-
//
|
|
36
|
+
// biome-ignore lint/suspicious/noAsyncPromiseExecutor: ok
|
|
37
37
|
return await new Promise(async (resolve, reject) => {
|
|
38
38
|
// Prepare the timeout timer
|
|
39
39
|
const timer = setTimeout(() => {
|
|
@@ -20,7 +20,7 @@ function _safeJsonStringify(obj, replacer, spaces, cycleReplacer) {
|
|
|
20
20
|
function serializer(replacer, cycleReplacer) {
|
|
21
21
|
const stack = [];
|
|
22
22
|
const keys = [];
|
|
23
|
-
cycleReplacer ??= (
|
|
23
|
+
cycleReplacer ??= (_key, value) => {
|
|
24
24
|
if (stack[0] === value)
|
|
25
25
|
return '[Circular ~]';
|
|
26
26
|
return '[Circular ~.' + keys.slice(0, stack.indexOf(value)).join('.') + ']';
|
|
@@ -243,6 +243,7 @@ export class LocalDate {
|
|
|
243
243
|
return this.plus(-num, 'year');
|
|
244
244
|
}
|
|
245
245
|
plus(num, unit, mutate = false) {
|
|
246
|
+
num = Math.floor(num); // if a fractional number like 0.5 is passed - it will be floored, as LocalDate only deals with "whole days" as minimal unit
|
|
246
247
|
let { day, month, year } = this;
|
|
247
248
|
if (unit === 'week') {
|
|
248
249
|
num *= 7;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { _debounce, _throttle } from './debounce';
|
|
2
2
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
3
3
|
export function _Debounce(wait, opt = {}) {
|
|
4
|
-
return (
|
|
4
|
+
return (_target, _key, descriptor) => {
|
|
5
5
|
const originalFn = descriptor.value;
|
|
6
6
|
descriptor.value = _debounce(originalFn, wait, opt);
|
|
7
7
|
return descriptor;
|
|
@@ -9,7 +9,7 @@ export function _Debounce(wait, opt = {}) {
|
|
|
9
9
|
}
|
|
10
10
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
11
11
|
export function _Throttle(wait, opt = {}) {
|
|
12
|
-
return (
|
|
12
|
+
return (_target, _key, descriptor) => {
|
|
13
13
|
const originalFn = descriptor.value;
|
|
14
14
|
descriptor.value = _throttle(originalFn, wait, opt);
|
|
15
15
|
return descriptor;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { pRetryFn } from '..';
|
|
2
2
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
3
3
|
export function _Retry(opt = {}) {
|
|
4
|
-
return (
|
|
4
|
+
return (_target, _key, descriptor) => {
|
|
5
5
|
const originalFn = descriptor.value;
|
|
6
6
|
descriptor.value = pRetryFn(originalFn, opt);
|
|
7
7
|
return descriptor;
|
package/dist-esm/define.js
CHANGED
|
@@ -89,7 +89,7 @@ export function _defineProperty(obj, prop, pd) {
|
|
|
89
89
|
* See _defineProperty for exact defaults definition.
|
|
90
90
|
*/
|
|
91
91
|
export function _defineProps(obj, props) {
|
|
92
|
-
return Object.defineProperties(obj, _mapValues(props, (
|
|
92
|
+
return Object.defineProperties(obj, _mapValues(props, (_k, pd) => ({
|
|
93
93
|
writable: true,
|
|
94
94
|
configurable: true,
|
|
95
95
|
enumerable: true,
|
|
@@ -34,7 +34,7 @@ export function _tryCatch(fn, opt = {}) {
|
|
|
34
34
|
};
|
|
35
35
|
}
|
|
36
36
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
37
|
-
export const _TryCatch = (opt = {}) => (
|
|
37
|
+
export const _TryCatch = (opt = {}) => (_target, _key, descriptor) => {
|
|
38
38
|
const originalFn = descriptor.value;
|
|
39
39
|
descriptor.value = _tryCatch(originalFn, opt);
|
|
40
40
|
return descriptor;
|
|
@@ -279,7 +279,6 @@ export function _unset(obj, prop) {
|
|
|
279
279
|
if (!_isObject(obj)) {
|
|
280
280
|
return;
|
|
281
281
|
}
|
|
282
|
-
// eslint-disable-next-line no-prototype-builtins
|
|
283
282
|
if (obj.hasOwnProperty(prop)) {
|
|
284
283
|
delete obj[prop];
|
|
285
284
|
return;
|
|
@@ -397,7 +396,7 @@ export function _has(obj, path) {
|
|
|
397
396
|
export function _deepFreeze(o) {
|
|
398
397
|
Object.freeze(o);
|
|
399
398
|
Object.getOwnPropertyNames(o).forEach(prop => {
|
|
400
|
-
if (o.hasOwnProperty(prop) &&
|
|
399
|
+
if (o.hasOwnProperty(prop) &&
|
|
401
400
|
o[prop] !== null &&
|
|
402
401
|
(typeof o[prop] === 'object' || typeof o[prop] === 'function') &&
|
|
403
402
|
!Object.isFrozen(o[prop])) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export async function pFilter(iterable, filterFn) {
|
|
2
2
|
const items = [...iterable];
|
|
3
3
|
const predicates = await Promise.all(items.map((item, i) => filterFn(item, i)));
|
|
4
|
-
return items.filter((
|
|
4
|
+
return items.filter((_item, i) => predicates[i]);
|
|
5
5
|
}
|
|
@@ -29,7 +29,7 @@ export async function pTimeout(fn, opt) {
|
|
|
29
29
|
}
|
|
30
30
|
const { timeout, name = fn.name || 'pTimeout function', onTimeout } = opt;
|
|
31
31
|
const fakeError = opt.fakeError || new Error('TimeoutError');
|
|
32
|
-
//
|
|
32
|
+
// biome-ignore lint/suspicious/noAsyncPromiseExecutor: ok
|
|
33
33
|
return await new Promise(async (resolve, reject) => {
|
|
34
34
|
// Prepare the timeout timer
|
|
35
35
|
const timer = setTimeout(() => {
|
|
@@ -17,7 +17,7 @@ export function _safeJsonStringify(obj, replacer, spaces, cycleReplacer) {
|
|
|
17
17
|
function serializer(replacer, cycleReplacer) {
|
|
18
18
|
const stack = [];
|
|
19
19
|
const keys = [];
|
|
20
|
-
cycleReplacer ?? (cycleReplacer = (
|
|
20
|
+
cycleReplacer ?? (cycleReplacer = (_key, value) => {
|
|
21
21
|
if (stack[0] === value)
|
|
22
22
|
return '[Circular ~]';
|
|
23
23
|
return '[Circular ~.' + keys.slice(0, stack.indexOf(value)).join('.') + ']';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@naturalcycles/js-lib",
|
|
3
|
-
"version": "14.
|
|
3
|
+
"version": "14.252.0",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"prepare": "husky",
|
|
6
6
|
"build": "dev-lib build-esm-cjs",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"types": "dist/index.d.ts",
|
|
47
47
|
"sideEffects": false,
|
|
48
48
|
"engines": {
|
|
49
|
-
"node": ">=
|
|
49
|
+
"node": ">=20.13.0"
|
|
50
50
|
},
|
|
51
51
|
"publishConfig": {
|
|
52
52
|
"provenance": true,
|
package/src/array/range.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AsyncIterable2 } from '../iter/asyncIterable2'
|
|
2
2
|
import { Iterable2 } from '../iter/iterable2'
|
|
3
3
|
|
|
4
|
-
/* eslint-disable
|
|
4
|
+
/* eslint-disable unicorn/no-new-array */
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Returns an array with ranges from `from` up to (but not including) `to`.
|
|
@@ -287,6 +287,7 @@ export class LocalDate {
|
|
|
287
287
|
}
|
|
288
288
|
|
|
289
289
|
plus(num: number, unit: LocalDateUnit, mutate = false): LocalDate {
|
|
290
|
+
num = Math.floor(num) // if a fractional number like 0.5 is passed - it will be floored, as LocalDate only deals with "whole days" as minimal unit
|
|
290
291
|
let { day, month, year } = this
|
|
291
292
|
|
|
292
293
|
if (unit === 'week') {
|
|
@@ -3,7 +3,7 @@ import { _debounce, _throttle } from './debounce'
|
|
|
3
3
|
|
|
4
4
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
5
5
|
export function _Debounce(wait: number, opt: DebounceOptions = {}): MethodDecorator {
|
|
6
|
-
return (
|
|
6
|
+
return (_target, _key, descriptor) => {
|
|
7
7
|
const originalFn = descriptor.value
|
|
8
8
|
descriptor.value = _debounce(originalFn as any, wait, opt)
|
|
9
9
|
return descriptor
|
|
@@ -12,7 +12,7 @@ export function _Debounce(wait: number, opt: DebounceOptions = {}): MethodDecora
|
|
|
12
12
|
|
|
13
13
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
14
14
|
export function _Throttle(wait: number, opt: ThrottleOptions = {}): MethodDecorator {
|
|
15
|
-
return (
|
|
15
|
+
return (_target, _key, descriptor) => {
|
|
16
16
|
const originalFn = descriptor.value
|
|
17
17
|
descriptor.value = _throttle(originalFn as any, wait, opt)
|
|
18
18
|
return descriptor
|
|
@@ -3,7 +3,7 @@ import { pRetryFn } from '..'
|
|
|
3
3
|
|
|
4
4
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
5
5
|
export function _Retry(opt: PRetryOptions = {}): MethodDecorator {
|
|
6
|
-
return (
|
|
6
|
+
return (_target, _key, descriptor) => {
|
|
7
7
|
const originalFn = descriptor.value
|
|
8
8
|
descriptor.value = pRetryFn(originalFn as any, opt)
|
|
9
9
|
return descriptor
|
package/src/define.ts
CHANGED
package/src/error/tryCatch.ts
CHANGED
|
@@ -67,7 +67,7 @@ export function _tryCatch<T extends AnyFunction>(fn: T, opt: TryCatchOptions = {
|
|
|
67
67
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
68
68
|
export const _TryCatch =
|
|
69
69
|
(opt: TryCatchOptions = {}): MethodDecorator =>
|
|
70
|
-
(
|
|
70
|
+
(_target, _key, descriptor) => {
|
|
71
71
|
const originalFn = descriptor.value
|
|
72
72
|
descriptor.value = _tryCatch(originalFn as any, opt)
|
|
73
73
|
return descriptor
|
|
@@ -332,7 +332,7 @@ export function _unset<T extends AnyObject>(obj: T, prop: string): void {
|
|
|
332
332
|
if (!_isObject(obj)) {
|
|
333
333
|
return
|
|
334
334
|
}
|
|
335
|
-
|
|
335
|
+
|
|
336
336
|
if (obj.hasOwnProperty(prop)) {
|
|
337
337
|
delete obj[prop]
|
|
338
338
|
return
|
|
@@ -470,7 +470,7 @@ export function _deepFreeze(o: any): void {
|
|
|
470
470
|
|
|
471
471
|
Object.getOwnPropertyNames(o).forEach(prop => {
|
|
472
472
|
if (
|
|
473
|
-
o.hasOwnProperty(prop) &&
|
|
473
|
+
o.hasOwnProperty(prop) &&
|
|
474
474
|
o[prop] !== null &&
|
|
475
475
|
(typeof o[prop] === 'object' || typeof o[prop] === 'function') &&
|
|
476
476
|
!Object.isFrozen(o[prop])
|
package/src/promise/pFilter.ts
CHANGED
|
@@ -3,5 +3,5 @@ import type { AsyncPredicate } from '../types'
|
|
|
3
3
|
export async function pFilter<T>(iterable: Iterable<T>, filterFn: AsyncPredicate<T>): Promise<T[]> {
|
|
4
4
|
const items = [...iterable]
|
|
5
5
|
const predicates = await Promise.all(items.map((item, i) => filterFn(item, i)))
|
|
6
|
-
return items.filter((
|
|
6
|
+
return items.filter((_item, i) => predicates[i])
|
|
7
7
|
}
|
package/src/promise/pTimeout.ts
CHANGED
|
@@ -72,7 +72,7 @@ export async function pTimeout<T>(fn: AnyAsyncFunction<T>, opt: PTimeoutOptions)
|
|
|
72
72
|
const { timeout, name = fn.name || 'pTimeout function', onTimeout } = opt
|
|
73
73
|
const fakeError = opt.fakeError || new Error('TimeoutError')
|
|
74
74
|
|
|
75
|
-
//
|
|
75
|
+
// biome-ignore lint/suspicious/noAsyncPromiseExecutor: ok
|
|
76
76
|
return await new Promise(async (resolve, reject) => {
|
|
77
77
|
// Prepare the timeout timer
|
|
78
78
|
const timer = setTimeout(() => {
|
|
@@ -26,7 +26,7 @@ function serializer(replacer?: Reviver, cycleReplacer?: Reviver): Reviver {
|
|
|
26
26
|
const stack: any[] = []
|
|
27
27
|
const keys: string[] = []
|
|
28
28
|
|
|
29
|
-
cycleReplacer ??= (
|
|
29
|
+
cycleReplacer ??= (_key, value) => {
|
|
30
30
|
if (stack[0] === value) return '[Circular ~]'
|
|
31
31
|
return '[Circular ~.' + keys.slice(0, stack.indexOf(value)).join('.') + ']'
|
|
32
32
|
}
|