@jsopen/objects 1.0.0 → 1.2.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/CHANGELOG.md +6 -0
- package/cjs/index.js +1 -1
- package/cjs/merge.js +3 -3
- package/cjs/omit.js +28 -49
- package/cjs/tsconfig-build-cjs.tsbuildinfo +1 -1
- package/cjs/{is-built-in.js → type-guards.js} +16 -0
- package/esm/index.js +1 -1
- package/esm/merge.js +3 -3
- package/esm/omit.js +27 -49
- package/esm/tsconfig-build-esm.tsbuildinfo +1 -1
- package/esm/{is-built-in.js → type-guards.js} +13 -0
- package/package.json +1 -1
- package/types/index.d.cts +1 -1
- package/types/index.d.ts +1 -1
- package/types/merge.d.ts +1 -1
- package/types/omit.d.ts +4 -4
- package/types/type-guards.d.ts +5 -0
- package/types/is-built-in.d.ts +0 -1
package/CHANGELOG.md
CHANGED
package/cjs/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
tslib_1.__exportStar(require("./clone.js"), exports);
|
|
5
|
-
tslib_1.__exportStar(require("./is-built-in.js"), exports);
|
|
6
5
|
tslib_1.__exportStar(require("./is-object.js"), exports);
|
|
7
6
|
tslib_1.__exportStar(require("./merge.js"), exports);
|
|
8
7
|
tslib_1.__exportStar(require("./omit.js"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./type-guards.js"), exports);
|
package/cjs/merge.js
CHANGED
|
@@ -97,7 +97,7 @@ for (i = 0; i < len; i++) {
|
|
|
97
97
|
/** ************* filter *****************/
|
|
98
98
|
if (options?.filter) {
|
|
99
99
|
scriptL1For.push(`
|
|
100
|
-
if (!filterCallback(key,
|
|
100
|
+
if (!filterCallback(key, source, target, curPath)) {
|
|
101
101
|
delete target[key];
|
|
102
102
|
continue;
|
|
103
103
|
}`);
|
|
@@ -107,7 +107,7 @@ if (!filterCallback(key, curPath, target, source)) {
|
|
|
107
107
|
scriptL1For.push(`
|
|
108
108
|
if (
|
|
109
109
|
Object.prototype.hasOwnProperty.call(target, key) &&
|
|
110
|
-
ignoreCallback(key,
|
|
110
|
+
ignoreCallback(key, source, target, curPath)
|
|
111
111
|
) continue;
|
|
112
112
|
`);
|
|
113
113
|
}
|
|
@@ -118,7 +118,7 @@ if (
|
|
|
118
118
|
if (options?.copyDescriptors) {
|
|
119
119
|
let scriptL2Descriptors = scriptL1For;
|
|
120
120
|
if (typeof options?.copyDescriptors === 'function') {
|
|
121
|
-
scriptL1For.push('if (copyDescriptorsCallback(key,
|
|
121
|
+
scriptL1For.push('if (copyDescriptorsCallback(key, source, target, curPath)) {');
|
|
122
122
|
scriptL2Descriptors = [];
|
|
123
123
|
scriptL1For.push(scriptL2Descriptors);
|
|
124
124
|
scriptL1For.push(`} else`);
|
package/cjs/omit.js
CHANGED
|
@@ -1,60 +1,39 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.omit = omit;
|
|
3
4
|
exports.omitUndefined = omitUndefined;
|
|
4
5
|
exports.omitNull = omitNull;
|
|
5
6
|
exports.omitNullish = omitNullish;
|
|
6
|
-
const
|
|
7
|
+
const merge_js_1 = require("./merge.js");
|
|
8
|
+
function omit(obj, keys) {
|
|
9
|
+
const keysSet = new Set(keys);
|
|
10
|
+
return (0, merge_js_1.merge)({}, obj, {
|
|
11
|
+
deep: false,
|
|
12
|
+
filter(key) {
|
|
13
|
+
return !keysSet.has(key);
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
}
|
|
7
17
|
function omitUndefined(obj, deep) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
v = obj[k];
|
|
14
|
-
if (v === undefined)
|
|
15
|
-
delete obj[k];
|
|
16
|
-
else if (deep) {
|
|
17
|
-
if (Array.isArray(v))
|
|
18
|
-
v.forEach(x => omitUndefined(x, deep));
|
|
19
|
-
else if ((0, is_object_js_1.isPlainObject)(v))
|
|
20
|
-
omitUndefined(obj[k], deep);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
return obj;
|
|
18
|
+
return (0, merge_js_1.merge)({}, obj, {
|
|
19
|
+
deep,
|
|
20
|
+
ignoreUndefined: true,
|
|
21
|
+
copyDescriptors: true,
|
|
22
|
+
});
|
|
24
23
|
}
|
|
25
24
|
function omitNull(obj, deep) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
if (v === null)
|
|
33
|
-
delete obj[k];
|
|
34
|
-
else if (deep) {
|
|
35
|
-
if (Array.isArray(v))
|
|
36
|
-
v.forEach(x => omitNull(x, deep));
|
|
37
|
-
else if ((0, is_object_js_1.isPlainObject)(v))
|
|
38
|
-
omitNull(obj[k], deep);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
return obj;
|
|
25
|
+
return (0, merge_js_1.merge)({}, obj, {
|
|
26
|
+
deep,
|
|
27
|
+
ignoreNulls: true,
|
|
28
|
+
ignoreUndefined: false,
|
|
29
|
+
copyDescriptors: true,
|
|
30
|
+
});
|
|
42
31
|
}
|
|
43
32
|
function omitNullish(obj, deep) {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
if (v == null)
|
|
51
|
-
delete obj[k];
|
|
52
|
-
else if (deep) {
|
|
53
|
-
if (Array.isArray(v))
|
|
54
|
-
v.forEach(x => omitNullish(x, deep));
|
|
55
|
-
else if ((0, is_object_js_1.isPlainObject)(v))
|
|
56
|
-
omitNullish(obj[k], deep);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
return obj;
|
|
33
|
+
return (0, merge_js_1.merge)({}, obj, {
|
|
34
|
+
deep,
|
|
35
|
+
ignoreNulls: true,
|
|
36
|
+
ignoreUndefined: true,
|
|
37
|
+
copyDescriptors: true,
|
|
38
|
+
});
|
|
60
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../../src/clone.ts","../../src/index.ts","../../src/is-
|
|
1
|
+
{"root":["../../src/clone.ts","../../src/index.ts","../../src/is-object.ts","../../src/merge.ts","../../src/omit.ts","../../src/type-guards.ts"],"version":"5.6.3"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isBuiltIn = isBuiltIn;
|
|
4
|
+
exports.isConstructor = isConstructor;
|
|
5
|
+
exports.isIterable = isIterable;
|
|
6
|
+
exports.isAsyncIterable = isAsyncIterable;
|
|
4
7
|
function isBuiltIn(v) {
|
|
5
8
|
return ((typeof v === 'object' &&
|
|
6
9
|
(v instanceof Date ||
|
|
@@ -25,3 +28,16 @@ function isBuiltIn(v) {
|
|
|
25
28
|
Buffer.isBuffer(v))) ||
|
|
26
29
|
Array.isArray(v));
|
|
27
30
|
}
|
|
31
|
+
function isConstructor(fn) {
|
|
32
|
+
return (typeof fn === 'function' &&
|
|
33
|
+
fn.prototype &&
|
|
34
|
+
fn.prototype.constructor === fn &&
|
|
35
|
+
fn.prototype.constructor.name !== 'Function' &&
|
|
36
|
+
fn.prototype.constructor.name !== 'embedded');
|
|
37
|
+
}
|
|
38
|
+
function isIterable(x) {
|
|
39
|
+
return Symbol.iterator in x;
|
|
40
|
+
}
|
|
41
|
+
function isAsyncIterable(x) {
|
|
42
|
+
return Symbol.asyncIterator in x;
|
|
43
|
+
}
|
package/esm/index.js
CHANGED
package/esm/merge.js
CHANGED
|
@@ -93,7 +93,7 @@ for (i = 0; i < len; i++) {
|
|
|
93
93
|
/** ************* filter *****************/
|
|
94
94
|
if (options?.filter) {
|
|
95
95
|
scriptL1For.push(`
|
|
96
|
-
if (!filterCallback(key,
|
|
96
|
+
if (!filterCallback(key, source, target, curPath)) {
|
|
97
97
|
delete target[key];
|
|
98
98
|
continue;
|
|
99
99
|
}`);
|
|
@@ -103,7 +103,7 @@ if (!filterCallback(key, curPath, target, source)) {
|
|
|
103
103
|
scriptL1For.push(`
|
|
104
104
|
if (
|
|
105
105
|
Object.prototype.hasOwnProperty.call(target, key) &&
|
|
106
|
-
ignoreCallback(key,
|
|
106
|
+
ignoreCallback(key, source, target, curPath)
|
|
107
107
|
) continue;
|
|
108
108
|
`);
|
|
109
109
|
}
|
|
@@ -114,7 +114,7 @@ if (
|
|
|
114
114
|
if (options?.copyDescriptors) {
|
|
115
115
|
let scriptL2Descriptors = scriptL1For;
|
|
116
116
|
if (typeof options?.copyDescriptors === 'function') {
|
|
117
|
-
scriptL1For.push('if (copyDescriptorsCallback(key,
|
|
117
|
+
scriptL1For.push('if (copyDescriptorsCallback(key, source, target, curPath)) {');
|
|
118
118
|
scriptL2Descriptors = [];
|
|
119
119
|
scriptL1For.push(scriptL2Descriptors);
|
|
120
120
|
scriptL1For.push(`} else`);
|
package/esm/omit.js
CHANGED
|
@@ -1,55 +1,33 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { merge } from './merge.js';
|
|
2
|
+
export function omit(obj, keys) {
|
|
3
|
+
const keysSet = new Set(keys);
|
|
4
|
+
return merge({}, obj, {
|
|
5
|
+
deep: false,
|
|
6
|
+
filter(key) {
|
|
7
|
+
return !keysSet.has(key);
|
|
8
|
+
},
|
|
9
|
+
});
|
|
10
|
+
}
|
|
2
11
|
export function omitUndefined(obj, deep) {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
v = obj[k];
|
|
9
|
-
if (v === undefined)
|
|
10
|
-
delete obj[k];
|
|
11
|
-
else if (deep) {
|
|
12
|
-
if (Array.isArray(v))
|
|
13
|
-
v.forEach(x => omitUndefined(x, deep));
|
|
14
|
-
else if (isPlainObject(v))
|
|
15
|
-
omitUndefined(obj[k], deep);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
return obj;
|
|
12
|
+
return merge({}, obj, {
|
|
13
|
+
deep,
|
|
14
|
+
ignoreUndefined: true,
|
|
15
|
+
copyDescriptors: true,
|
|
16
|
+
});
|
|
19
17
|
}
|
|
20
18
|
export function omitNull(obj, deep) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
if (v === null)
|
|
28
|
-
delete obj[k];
|
|
29
|
-
else if (deep) {
|
|
30
|
-
if (Array.isArray(v))
|
|
31
|
-
v.forEach(x => omitNull(x, deep));
|
|
32
|
-
else if (isPlainObject(v))
|
|
33
|
-
omitNull(obj[k], deep);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
return obj;
|
|
19
|
+
return merge({}, obj, {
|
|
20
|
+
deep,
|
|
21
|
+
ignoreNulls: true,
|
|
22
|
+
ignoreUndefined: false,
|
|
23
|
+
copyDescriptors: true,
|
|
24
|
+
});
|
|
37
25
|
}
|
|
38
26
|
export function omitNullish(obj, deep) {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
if (v == null)
|
|
46
|
-
delete obj[k];
|
|
47
|
-
else if (deep) {
|
|
48
|
-
if (Array.isArray(v))
|
|
49
|
-
v.forEach(x => omitNullish(x, deep));
|
|
50
|
-
else if (isPlainObject(v))
|
|
51
|
-
omitNullish(obj[k], deep);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
return obj;
|
|
27
|
+
return merge({}, obj, {
|
|
28
|
+
deep,
|
|
29
|
+
ignoreNulls: true,
|
|
30
|
+
ignoreUndefined: true,
|
|
31
|
+
copyDescriptors: true,
|
|
32
|
+
});
|
|
55
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../../src/clone.ts","../../src/index.ts","../../src/is-
|
|
1
|
+
{"root":["../../src/clone.ts","../../src/index.ts","../../src/is-object.ts","../../src/merge.ts","../../src/omit.ts","../../src/type-guards.ts"],"version":"5.6.3"}
|
|
@@ -22,3 +22,16 @@ export function isBuiltIn(v) {
|
|
|
22
22
|
Buffer.isBuffer(v))) ||
|
|
23
23
|
Array.isArray(v));
|
|
24
24
|
}
|
|
25
|
+
export function isConstructor(fn) {
|
|
26
|
+
return (typeof fn === 'function' &&
|
|
27
|
+
fn.prototype &&
|
|
28
|
+
fn.prototype.constructor === fn &&
|
|
29
|
+
fn.prototype.constructor.name !== 'Function' &&
|
|
30
|
+
fn.prototype.constructor.name !== 'embedded');
|
|
31
|
+
}
|
|
32
|
+
export function isIterable(x) {
|
|
33
|
+
return Symbol.iterator in x;
|
|
34
|
+
}
|
|
35
|
+
export function isAsyncIterable(x) {
|
|
36
|
+
return Symbol.asyncIterator in x;
|
|
37
|
+
}
|
package/package.json
CHANGED
package/types/index.d.cts
CHANGED
package/types/index.d.ts
CHANGED
package/types/merge.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare namespace merge {
|
|
2
|
-
type NodeCallback = (key: string | symbol,
|
|
2
|
+
type NodeCallback = (key: string | symbol, source: any, target: any, path: string) => boolean;
|
|
3
3
|
interface Options {
|
|
4
4
|
deep?: boolean | NodeCallback;
|
|
5
5
|
/**
|
package/types/omit.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
export declare function omitUndefined<T>(obj: T, deep?: boolean):
|
|
3
|
-
export declare function omitNull<T>(obj: T, deep?: boolean):
|
|
4
|
-
export declare function omitNullish<T>(obj: T, deep?: boolean):
|
|
1
|
+
export declare function omit<T, K extends keyof T>(obj: T, keys: K[]): Omit<T, K>;
|
|
2
|
+
export declare function omitUndefined<T>(obj: T, deep?: boolean): T;
|
|
3
|
+
export declare function omitNull<T>(obj: T, deep?: boolean): T;
|
|
4
|
+
export declare function omitNullish<T>(obj: T, deep?: boolean): T;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Type } from 'ts-gems';
|
|
2
|
+
export declare function isBuiltIn(v: any): boolean;
|
|
3
|
+
export declare function isConstructor(fn: any): fn is Type;
|
|
4
|
+
export declare function isIterable<T = unknown>(x: any): x is Iterable<T>;
|
|
5
|
+
export declare function isAsyncIterable<T = unknown>(x: any): x is AsyncIterableIterator<T>;
|
package/types/is-built-in.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function isBuiltIn(v: any): boolean;
|