@valkyriestudios/utils 11.3.0 → 11.5.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/README.md +4 -1
- package/array/dedupe.js +3 -3
- package/array/is.d.ts +1 -1
- package/array/isNotEmpty.d.ts +1 -1
- package/array/join.d.ts +1 -1
- package/array/join.js +3 -3
- package/array/mapFn.js +4 -3
- package/array/mapKey.js +4 -3
- package/array/mapPrimitive.d.ts +1 -1
- package/array/mapPrimitive.js +5 -4
- package/array/shuffle.d.ts +1 -1
- package/array/sort.js +13 -4
- package/boolean/is.d.ts +1 -1
- package/date/is.d.ts +1 -1
- package/function/is.d.ts +1 -1
- package/function/isAsync.d.ts +8 -0
- package/function/isAsync.js +6 -0
- package/hash/fnv1A.d.ts +1 -1
- package/hash/fnv1A.js +4 -3
- package/index.d.ts +33 -28
- package/is.d.ts +2 -0
- package/is.js +2 -0
- package/number/is.d.ts +1 -1
- package/number/isAbove.d.ts +1 -1
- package/number/isAboveOrEqual.d.ts +1 -1
- package/number/isBelow.d.ts +1 -1
- package/number/isBelowOrEqual.d.ts +1 -1
- package/number/isBetween.d.ts +1 -1
- package/number/isInteger.d.ts +1 -1
- package/number/isIntegerAbove.d.ts +1 -1
- package/number/isIntegerAboveOrEqual.d.ts +1 -1
- package/number/isIntegerBelow.d.ts +1 -1
- package/number/isIntegerBelowOrEqual.d.ts +1 -1
- package/number/isIntegerBetween.d.ts +1 -1
- package/number/isNumericalNaN.d.ts +1 -1
- package/object/is.d.ts +1 -1
- package/object/isNotEmpty.d.ts +1 -1
- package/object/merge.js +14 -6
- package/package.json +1 -1
- package/regexp/is.d.ts +1 -1
- package/string/is.d.ts +1 -1
- package/string/isBetween.d.ts +1 -1
- package/string/isNotEmpty.d.ts +1 -1
package/README.md
CHANGED
|
@@ -478,9 +478,12 @@ equal(new RegExp(/ab+c/, 'i'), /ab+c/i); // TRUE
|
|
|
478
478
|
```
|
|
479
479
|
|
|
480
480
|
### function
|
|
481
|
-
- **isFunction(val:
|
|
481
|
+
- **isFunction(val:unknown)**
|
|
482
482
|
Check if a variable is a Function
|
|
483
483
|
|
|
484
|
+
- **isAsyncFunction(val:unknown):boolean**
|
|
485
|
+
Check if a variable is an async function
|
|
486
|
+
|
|
484
487
|
- **noop()**
|
|
485
488
|
An empty function that can be used in (for example) piping
|
|
486
489
|
|
package/array/dedupe.js
CHANGED
|
@@ -4,14 +4,14 @@ const fnv1A_1 = require("../hash/fnv1A");
|
|
|
4
4
|
function dedupe(val) {
|
|
5
5
|
if (!Array.isArray(val) || val.length === 0)
|
|
6
6
|
return [];
|
|
7
|
-
const
|
|
7
|
+
const set = new Set();
|
|
8
8
|
const acc = [];
|
|
9
9
|
let hash;
|
|
10
10
|
for (const item of val) {
|
|
11
11
|
hash = (0, fnv1A_1.default)(item);
|
|
12
|
-
if (
|
|
12
|
+
if (set.has(hash))
|
|
13
13
|
continue;
|
|
14
|
-
|
|
14
|
+
set.add(hash);
|
|
15
15
|
acc.push(item);
|
|
16
16
|
}
|
|
17
17
|
return acc;
|
package/array/is.d.ts
CHANGED
package/array/isNotEmpty.d.ts
CHANGED
package/array/join.d.ts
CHANGED
package/array/join.js
CHANGED
|
@@ -4,12 +4,12 @@ const round_1 = require("../number/round");
|
|
|
4
4
|
function join(val, opts = {}) {
|
|
5
5
|
if (!Array.isArray(val) || val.length === 0)
|
|
6
6
|
return '';
|
|
7
|
-
const OPTS =
|
|
7
|
+
const OPTS = {
|
|
8
8
|
delim: ' ',
|
|
9
9
|
trim: true,
|
|
10
10
|
valtrim: true,
|
|
11
|
-
|
|
12
|
-
}
|
|
11
|
+
...Object.prototype.toString.call(opts) === '[object Object]' ? opts : {},
|
|
12
|
+
};
|
|
13
13
|
const filtered = [];
|
|
14
14
|
for (const el of val) {
|
|
15
15
|
if (typeof el === 'string' && el.trim().length > 0) {
|
package/array/mapFn.js
CHANGED
|
@@ -4,9 +4,10 @@ function mapFn(arr, fn, opts = {}) {
|
|
|
4
4
|
if ((!Array.isArray(arr) || arr.length === 0) ||
|
|
5
5
|
typeof fn !== 'function')
|
|
6
6
|
return {};
|
|
7
|
-
const OPTS =
|
|
7
|
+
const OPTS = {
|
|
8
8
|
merge: false,
|
|
9
|
-
|
|
9
|
+
...Object.prototype.toString.call(opts) === '[object Object]' ? opts : {},
|
|
10
|
+
};
|
|
10
11
|
const map = {};
|
|
11
12
|
let hash = false;
|
|
12
13
|
for (const el of arr) {
|
|
@@ -17,7 +18,7 @@ function mapFn(arr, fn, opts = {}) {
|
|
|
17
18
|
continue;
|
|
18
19
|
hash = `${hash}`;
|
|
19
20
|
if (OPTS.merge === true && map.hasOwnProperty(hash)) {
|
|
20
|
-
map[hash] =
|
|
21
|
+
map[hash] = { ...map[hash], ...el };
|
|
21
22
|
}
|
|
22
23
|
else {
|
|
23
24
|
map[hash] = el;
|
package/array/mapKey.js
CHANGED
|
@@ -7,16 +7,17 @@ function mapKey(arr, key, opts = {}) {
|
|
|
7
7
|
const key_s = key.trim();
|
|
8
8
|
if (key_s.length === 0)
|
|
9
9
|
return {};
|
|
10
|
-
const OPTS =
|
|
10
|
+
const OPTS = {
|
|
11
11
|
merge: false,
|
|
12
|
-
|
|
12
|
+
...Object.prototype.toString.call(opts) === '[object Object]' ? opts : {},
|
|
13
|
+
};
|
|
13
14
|
const map = {};
|
|
14
15
|
for (const el of arr) {
|
|
15
16
|
if (Object.prototype.toString.call(el) !== '[object Object]' ||
|
|
16
17
|
!Object.prototype.hasOwnProperty.call(el, key_s))
|
|
17
18
|
continue;
|
|
18
19
|
if (OPTS.merge === true && map.hasOwnProperty(el[key_s])) {
|
|
19
|
-
map[el[key_s]] =
|
|
20
|
+
map[el[key_s]] = { ...map[el[key_s]], ...el };
|
|
20
21
|
}
|
|
21
22
|
else {
|
|
22
23
|
map[el[key_s]] = el;
|
package/array/mapPrimitive.d.ts
CHANGED
package/array/mapPrimitive.js
CHANGED
|
@@ -4,18 +4,19 @@ const round_1 = require("../number/round");
|
|
|
4
4
|
function mapPrimitive(arr, opts = {}) {
|
|
5
5
|
if (!Array.isArray(arr) || arr.length === 0)
|
|
6
6
|
return {};
|
|
7
|
-
const OPTS =
|
|
7
|
+
const OPTS = {
|
|
8
8
|
valtrim: false,
|
|
9
9
|
valround: false,
|
|
10
10
|
keyround: false,
|
|
11
|
-
|
|
11
|
+
...Object.prototype.toString.call(opts) === '[object Object]' ? opts : {},
|
|
12
|
+
};
|
|
12
13
|
const map = {};
|
|
13
14
|
for (const el of arr) {
|
|
14
15
|
if (typeof el === 'string' && el.trim().length > 0) {
|
|
15
16
|
map[el.trim()] = OPTS.valtrim ? el.trim() : el;
|
|
16
17
|
}
|
|
17
|
-
else if (Number.isFinite(el)) {
|
|
18
|
-
map[OPTS.keyround === true ? Math.round(el) : el] = OPTS.valround === false
|
|
18
|
+
else if (typeof el === 'number' && Number.isFinite(el)) {
|
|
19
|
+
map[`${OPTS.keyround === true ? Math.round(el) : el}`] = OPTS.valround === false
|
|
19
20
|
? el
|
|
20
21
|
: OPTS.valround === true
|
|
21
22
|
? Math.round(el)
|
package/array/shuffle.d.ts
CHANGED
package/array/sort.js
CHANGED
|
@@ -69,7 +69,7 @@ function sort(arr, by, dir = 'asc', opts = {}) {
|
|
|
69
69
|
nokey_arr.push(el);
|
|
70
70
|
}
|
|
71
71
|
else {
|
|
72
|
-
prepared_arr.push({ t:
|
|
72
|
+
prepared_arr.push({ t: key, el });
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
75
|
}
|
|
@@ -79,14 +79,23 @@ function sort(arr, by, dir = 'asc', opts = {}) {
|
|
|
79
79
|
quickSort(prepared_arr);
|
|
80
80
|
if (dir === 'desc')
|
|
81
81
|
prepared_arr.reverse();
|
|
82
|
+
const result = [];
|
|
82
83
|
if (OPTS.nokey_hide) {
|
|
83
|
-
|
|
84
|
+
for (const obj of prepared_arr)
|
|
85
|
+
result.push(obj.el);
|
|
84
86
|
}
|
|
85
87
|
else if (OPTS.nokey_atend) {
|
|
86
|
-
|
|
88
|
+
for (const obj of prepared_arr)
|
|
89
|
+
result.push(obj.el);
|
|
90
|
+
for (const el of nokey_arr)
|
|
91
|
+
result.push(el);
|
|
87
92
|
}
|
|
88
93
|
else {
|
|
89
|
-
|
|
94
|
+
for (const el of nokey_arr)
|
|
95
|
+
result.push(el);
|
|
96
|
+
for (const obj of prepared_arr)
|
|
97
|
+
result.push(obj.el);
|
|
90
98
|
}
|
|
99
|
+
return result;
|
|
91
100
|
}
|
|
92
101
|
exports.default = sort;
|
package/boolean/is.d.ts
CHANGED
package/date/is.d.ts
CHANGED
package/function/is.d.ts
CHANGED
package/hash/fnv1A.d.ts
CHANGED
package/hash/fnv1A.js
CHANGED
|
@@ -13,7 +13,7 @@ function fnv1A(data, offset = FNV_32) {
|
|
|
13
13
|
sanitized = data;
|
|
14
14
|
}
|
|
15
15
|
else if (Number.isFinite(data)) {
|
|
16
|
-
sanitized =
|
|
16
|
+
sanitized = String(data);
|
|
17
17
|
}
|
|
18
18
|
else if (Array.isArray(data) || Object.prototype.toString.call(data) === '[object Object]') {
|
|
19
19
|
sanitized = JSON.stringify(data);
|
|
@@ -22,7 +22,7 @@ function fnv1A(data, offset = FNV_32) {
|
|
|
22
22
|
sanitized = data.toString();
|
|
23
23
|
}
|
|
24
24
|
else if (data instanceof Date) {
|
|
25
|
-
sanitized =
|
|
25
|
+
sanitized = String(data.getTime());
|
|
26
26
|
}
|
|
27
27
|
else if (Number.isNaN(data) || data === Infinity) {
|
|
28
28
|
sanitized = REPL_NAN;
|
|
@@ -42,7 +42,8 @@ function fnv1A(data, offset = FNV_32) {
|
|
|
42
42
|
else {
|
|
43
43
|
throw new TypeError('An FNV1A Hash could not be calculated for this datatype');
|
|
44
44
|
}
|
|
45
|
-
|
|
45
|
+
const len = sanitized.length;
|
|
46
|
+
for (let i = 0; i < len; i++) {
|
|
46
47
|
hash ^= sanitized.charCodeAt(i);
|
|
47
48
|
hash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);
|
|
48
49
|
}
|
package/index.d.ts
CHANGED
|
@@ -1,78 +1,81 @@
|
|
|
1
1
|
declare module "number/isNumericalNaN" {
|
|
2
|
-
export default function isNumericalNaN(val:
|
|
2
|
+
export default function isNumericalNaN(val: unknown): boolean;
|
|
3
3
|
}
|
|
4
4
|
declare module "equal" {
|
|
5
5
|
function equal(a: any, b: any): boolean;
|
|
6
6
|
export default equal;
|
|
7
7
|
}
|
|
8
8
|
declare module "array/isNotEmpty" {
|
|
9
|
-
export default function isNotEmptyArray(val:
|
|
9
|
+
export default function isNotEmptyArray(val: unknown): boolean;
|
|
10
10
|
}
|
|
11
11
|
declare module "array/is" {
|
|
12
|
-
export default function isArray(val:
|
|
12
|
+
export default function isArray(val: unknown): boolean;
|
|
13
13
|
}
|
|
14
14
|
declare module "boolean/is" {
|
|
15
|
-
export default function isBoolean(val:
|
|
15
|
+
export default function isBoolean(val: unknown): boolean;
|
|
16
16
|
}
|
|
17
17
|
declare module "date/is" {
|
|
18
|
-
export default function isDate(val:
|
|
18
|
+
export default function isDate(val: unknown): boolean;
|
|
19
19
|
}
|
|
20
20
|
declare module "function/is" {
|
|
21
|
-
export default function isFunction(val:
|
|
21
|
+
export default function isFunction(val: unknown): boolean;
|
|
22
|
+
}
|
|
23
|
+
declare module "function/isAsync" {
|
|
24
|
+
export default function isAsyncFunction(val: unknown): boolean;
|
|
22
25
|
}
|
|
23
26
|
declare module "number/is" {
|
|
24
|
-
export default function isNumber(val:
|
|
27
|
+
export default function isNumber(val: unknown): boolean;
|
|
25
28
|
}
|
|
26
29
|
declare module "number/isBetween" {
|
|
27
|
-
export default function isNumberBetween(val:
|
|
30
|
+
export default function isNumberBetween(val: unknown, min: number, max: number): boolean;
|
|
28
31
|
}
|
|
29
32
|
declare module "number/isBelow" {
|
|
30
|
-
export default function isNumberBelow(val:
|
|
33
|
+
export default function isNumberBelow(val: unknown, ref: number): boolean;
|
|
31
34
|
}
|
|
32
35
|
declare module "number/isBelowOrEqual" {
|
|
33
|
-
export default function isNumberBelowOrEqual(val:
|
|
36
|
+
export default function isNumberBelowOrEqual(val: unknown, ref: number): boolean;
|
|
34
37
|
}
|
|
35
38
|
declare module "number/isAbove" {
|
|
36
|
-
export default function isNumberAbove(val:
|
|
39
|
+
export default function isNumberAbove(val: unknown, ref: number): boolean;
|
|
37
40
|
}
|
|
38
41
|
declare module "number/isAboveOrEqual" {
|
|
39
|
-
export default function isNumberAboveOrEqual(val:
|
|
42
|
+
export default function isNumberAboveOrEqual(val: unknown, ref: number): boolean;
|
|
40
43
|
}
|
|
41
44
|
declare module "number/isInteger" {
|
|
42
|
-
export default function isInteger(val:
|
|
45
|
+
export default function isInteger(val: unknown): boolean;
|
|
43
46
|
}
|
|
44
47
|
declare module "number/isIntegerBetween" {
|
|
45
|
-
export default function isIntegerBetween(val:
|
|
48
|
+
export default function isIntegerBetween(val: unknown, min: number, max: number): boolean;
|
|
46
49
|
}
|
|
47
50
|
declare module "number/isIntegerBelow" {
|
|
48
|
-
export default function isIntegerBelow(val:
|
|
51
|
+
export default function isIntegerBelow(val: unknown, ref: number): boolean;
|
|
49
52
|
}
|
|
50
53
|
declare module "number/isIntegerBelowOrEqual" {
|
|
51
|
-
export default function isIntegerBelowOrEqual(val:
|
|
54
|
+
export default function isIntegerBelowOrEqual(val: unknown, ref: number): boolean;
|
|
52
55
|
}
|
|
53
56
|
declare module "number/isIntegerAbove" {
|
|
54
|
-
export default function isIntegerAbove(val:
|
|
57
|
+
export default function isIntegerAbove(val: unknown, ref: number): boolean;
|
|
55
58
|
}
|
|
56
59
|
declare module "number/isIntegerAboveOrEqual" {
|
|
57
|
-
export default function isIntegerAboveOrEqual(val:
|
|
60
|
+
export default function isIntegerAboveOrEqual(val: unknown, ref: number): boolean;
|
|
58
61
|
}
|
|
59
62
|
declare module "regexp/is" {
|
|
60
|
-
export default function isRegExp(val:
|
|
63
|
+
export default function isRegExp(val: unknown): boolean;
|
|
61
64
|
}
|
|
62
65
|
declare module "object/is" {
|
|
63
|
-
export default function isObject(val:
|
|
66
|
+
export default function isObject(val: unknown): boolean;
|
|
64
67
|
}
|
|
65
68
|
declare module "object/isNotEmpty" {
|
|
66
|
-
export default function isNotEmptyObject(val:
|
|
69
|
+
export default function isNotEmptyObject(val: unknown): boolean;
|
|
67
70
|
}
|
|
68
71
|
declare module "string/is" {
|
|
69
|
-
export default function isString(val:
|
|
72
|
+
export default function isString(val: unknown): boolean;
|
|
70
73
|
}
|
|
71
74
|
declare module "string/isBetween" {
|
|
72
|
-
export default function isStringBetween(val:
|
|
75
|
+
export default function isStringBetween(val: unknown, min: number, max: number, trimmed?: boolean): boolean;
|
|
73
76
|
}
|
|
74
77
|
declare module "string/isNotEmpty" {
|
|
75
|
-
export default function isNotEmptyString(val:
|
|
78
|
+
export default function isNotEmptyString(val: unknown, trimmed?: boolean): boolean;
|
|
76
79
|
}
|
|
77
80
|
declare module "is" {
|
|
78
81
|
import equal from "equal";
|
|
@@ -81,6 +84,7 @@ declare module "is" {
|
|
|
81
84
|
import isBoolean from "boolean/is";
|
|
82
85
|
import isDate from "date/is";
|
|
83
86
|
import isFunction from "function/is";
|
|
87
|
+
import isAsyncFunction from "function/isAsync";
|
|
84
88
|
import isNumber from "number/is";
|
|
85
89
|
import isNumberBetween from "number/isBetween";
|
|
86
90
|
import isNumberBelow from "number/isBelow";
|
|
@@ -106,6 +110,7 @@ declare module "is" {
|
|
|
106
110
|
Boolean: typeof isBoolean;
|
|
107
111
|
Date: typeof isDate;
|
|
108
112
|
Function: typeof isFunction;
|
|
113
|
+
AsyncFunction: typeof isAsyncFunction;
|
|
109
114
|
Num: typeof isNumber;
|
|
110
115
|
NumBetween: typeof isNumberBetween;
|
|
111
116
|
NumAbove: typeof isNumberAbove;
|
|
@@ -152,7 +157,7 @@ declare module "is" {
|
|
|
152
157
|
export default Is;
|
|
153
158
|
}
|
|
154
159
|
declare module "hash/fnv1A" {
|
|
155
|
-
export default function fnv1A(data:
|
|
160
|
+
export default function fnv1A(data: unknown, offset?: number): number;
|
|
156
161
|
}
|
|
157
162
|
declare module "array/dedupe" {
|
|
158
163
|
export default function dedupe<T>(val: T[]): T[];
|
|
@@ -167,7 +172,7 @@ declare module "array/join" {
|
|
|
167
172
|
valtrim?: boolean;
|
|
168
173
|
valround?: number;
|
|
169
174
|
}
|
|
170
|
-
export default function join(val:
|
|
175
|
+
export default function join(val: unknown[], opts?: joinOptions): string;
|
|
171
176
|
}
|
|
172
177
|
declare module "array/mapFn" {
|
|
173
178
|
interface mapOptions {
|
|
@@ -206,10 +211,10 @@ declare module "array/mapPrimitive" {
|
|
|
206
211
|
interface mapReturn {
|
|
207
212
|
[key: string]: string | number;
|
|
208
213
|
}
|
|
209
|
-
export default function mapPrimitive(arr:
|
|
214
|
+
export default function mapPrimitive(arr: unknown[], opts?: mapOptions): mapReturn;
|
|
210
215
|
}
|
|
211
216
|
declare module "array/shuffle" {
|
|
212
|
-
export default function shuffle(arr:
|
|
217
|
+
export default function shuffle(arr: unknown[]): void;
|
|
213
218
|
}
|
|
214
219
|
declare module "array/sort" {
|
|
215
220
|
interface sortOptions {
|
package/is.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import isArray from './array/is';
|
|
|
4
4
|
import isBoolean from './boolean/is';
|
|
5
5
|
import isDate from './date/is';
|
|
6
6
|
import isFunction from './function/is';
|
|
7
|
+
import isAsyncFunction from './function/isAsync';
|
|
7
8
|
import isNumber from './number/is';
|
|
8
9
|
import isNumberBetween from './number/isBetween';
|
|
9
10
|
import isNumberBelow from './number/isBelow';
|
|
@@ -29,6 +30,7 @@ declare const Is: Readonly<{
|
|
|
29
30
|
Boolean: typeof isBoolean;
|
|
30
31
|
Date: typeof isDate;
|
|
31
32
|
Function: typeof isFunction;
|
|
33
|
+
AsyncFunction: typeof isAsyncFunction;
|
|
32
34
|
Num: typeof isNumber;
|
|
33
35
|
NumBetween: typeof isNumberBetween;
|
|
34
36
|
NumAbove: typeof isNumberAbove;
|
package/is.js
CHANGED
|
@@ -6,6 +6,7 @@ const is_1 = require("./array/is");
|
|
|
6
6
|
const is_2 = require("./boolean/is");
|
|
7
7
|
const is_3 = require("./date/is");
|
|
8
8
|
const is_4 = require("./function/is");
|
|
9
|
+
const isAsync_1 = require("./function/isAsync");
|
|
9
10
|
const is_5 = require("./number/is");
|
|
10
11
|
const isBetween_1 = require("./number/isBetween");
|
|
11
12
|
const isBelow_1 = require("./number/isBelow");
|
|
@@ -31,6 +32,7 @@ const Is = Object.freeze({
|
|
|
31
32
|
Boolean: is_2.default,
|
|
32
33
|
Date: is_3.default,
|
|
33
34
|
Function: is_4.default,
|
|
35
|
+
AsyncFunction: isAsync_1.default,
|
|
34
36
|
Num: is_5.default,
|
|
35
37
|
NumBetween: isBetween_1.default,
|
|
36
38
|
NumAbove: isAbove_1.default,
|
package/number/is.d.ts
CHANGED
package/number/isAbove.d.ts
CHANGED
package/number/isBelow.d.ts
CHANGED
package/number/isBetween.d.ts
CHANGED
|
@@ -9,4 +9,4 @@
|
|
|
9
9
|
*
|
|
10
10
|
* @returns Whether or not the value is a number between min and max inclusive
|
|
11
11
|
*/
|
|
12
|
-
export default function isNumberBetween(val:
|
|
12
|
+
export default function isNumberBetween(val: unknown, min: number, max: number): boolean;
|
package/number/isInteger.d.ts
CHANGED
|
@@ -9,4 +9,4 @@
|
|
|
9
9
|
*
|
|
10
10
|
* @returns Whether or not the value is an integer between min and max inclusive
|
|
11
11
|
*/
|
|
12
|
-
export default function isIntegerBetween(val:
|
|
12
|
+
export default function isIntegerBetween(val: unknown, min: number, max: number): boolean;
|
package/object/is.d.ts
CHANGED
package/object/isNotEmpty.d.ts
CHANGED
package/object/merge.js
CHANGED
|
@@ -4,17 +4,25 @@ function merge(target, source = {}) {
|
|
|
4
4
|
if (Object.prototype.toString.call(target) !== '[object Object]' ||
|
|
5
5
|
Object.prototype.toString.call(source) !== '[object Object]')
|
|
6
6
|
throw new TypeError('Please pass a target and object to merge');
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
const acc = {};
|
|
8
|
+
for (const key in target) {
|
|
9
|
+
if (!Object.prototype.hasOwnProperty.call(target, key))
|
|
10
|
+
continue;
|
|
11
|
+
if (typeof target[key] === 'object' &&
|
|
12
|
+
target[key] !== null &&
|
|
13
|
+
!Array.isArray(target[key]) &&
|
|
14
|
+
Object.prototype.hasOwnProperty.call(source, key) &&
|
|
15
|
+
typeof source[key] === 'object' &&
|
|
16
|
+
source[key] !== null &&
|
|
17
|
+
!Array.isArray(source[key])) {
|
|
18
|
+
acc[key] = merge(target[key], source[key]);
|
|
11
19
|
}
|
|
12
20
|
else {
|
|
13
21
|
acc[key] = Object.prototype.hasOwnProperty.call(source, key)
|
|
14
22
|
? source[key]
|
|
15
23
|
: target[key];
|
|
16
24
|
}
|
|
17
|
-
|
|
18
|
-
|
|
25
|
+
}
|
|
26
|
+
return acc;
|
|
19
27
|
}
|
|
20
28
|
exports.default = merge;
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "name": "@valkyriestudios/utils", "version": "11.
|
|
1
|
+
{ "name": "@valkyriestudios/utils", "version": "11.5.0", "description": "A collection of single-function utilities for common tasks", "author": { "name": "Peter Vermeulen", "email": "contact@valkyriestudios.be", "url": "www.valkyriestudios.be" }, "keywords": [ "utility", "library", "javascript", "js", "node", "bun" ], "license": "MIT", "repository": { "type": "git", "url": "git+https://github.com/ValkyrieStudios/utils.git" }, "bugs": { "url": "https://github.com/ValkyrieStudios/utils/issues" }, "homepage": "https://github.com/ValkyrieStudios/utils#readme", "types": "index.d.ts" }
|
package/regexp/is.d.ts
CHANGED
package/string/is.d.ts
CHANGED
package/string/isBetween.d.ts
CHANGED
|
@@ -10,4 +10,4 @@
|
|
|
10
10
|
*
|
|
11
11
|
* @returns Whether or not the value is a string of length between min and max inclusive
|
|
12
12
|
*/
|
|
13
|
-
export default function isStringBetween(val:
|
|
13
|
+
export default function isStringBetween(val: unknown, min: number, max: number, trimmed?: boolean): boolean;
|
package/string/isNotEmpty.d.ts
CHANGED