type-plus 4.14.0 → 4.15.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 +3 -2
- package/cjs/object/omit.d.ts +1 -0
- package/cjs/object/omit.d.ts.map +1 -1
- package/cjs/object/omit.js +2 -1
- package/cjs/object/omit.js.map +1 -1
- package/cjs/object/omit.spec.js +22 -4
- package/cjs/object/omit.spec.js.map +1 -1
- package/cjs/object/pick.d.ts +1 -0
- package/cjs/object/pick.d.ts.map +1 -1
- package/cjs/object/pick.js +2 -1
- package/cjs/object/pick.js.map +1 -1
- package/cjs/object/pick.spec.js +37 -24
- package/cjs/object/pick.spec.js.map +1 -1
- package/cjs/object/record.d.ts +6 -2
- package/cjs/object/record.d.ts.map +1 -1
- package/cjs/object/record.spec.js +65 -46
- package/cjs/object/record.spec.js.map +1 -1
- package/esm/object/omit.d.ts +1 -0
- package/esm/object/omit.d.ts.map +1 -1
- package/esm/object/omit.js +2 -1
- package/esm/object/omit.js.map +1 -1
- package/esm/object/omit.spec.js +23 -5
- package/esm/object/omit.spec.js.map +1 -1
- package/esm/object/pick.d.ts +1 -0
- package/esm/object/pick.d.ts.map +1 -1
- package/esm/object/pick.js +2 -1
- package/esm/object/pick.js.map +1 -1
- package/esm/object/pick.spec.js +38 -25
- package/esm/object/pick.spec.js.map +1 -1
- package/esm/object/record.d.ts +6 -2
- package/esm/object/record.d.ts.map +1 -1
- package/esm/object/record.spec.js +65 -46
- package/esm/object/record.spec.js.map +1 -1
- package/package.json +1 -1
- package/ts/object/omit.ts +3 -1
- package/ts/object/pick.ts +3 -1
- package/ts/object/record.ts +7 -2
package/README.md
CHANGED
|
@@ -352,7 +352,7 @@ const someJson: JSONTypes = { a: { b: ['z', { c: 'miku' }]}}
|
|
|
352
352
|
JSONTypes.get<string>(someJson, 'a', 'b', 1, 'c') // miku
|
|
353
353
|
```
|
|
354
354
|
|
|
355
|
-
### Object
|
|
355
|
+
### Object utilities
|
|
356
356
|
|
|
357
357
|
- `filterKey()`: type adjusted filter by key.
|
|
358
358
|
- `findKey()`: type adjusted find by key.
|
|
@@ -362,6 +362,7 @@ JSONTypes.get<string>(someJson, 'a', 'b', 1, 'c') // miku
|
|
|
362
362
|
- `IsRecord<T>`: `logical` predicate for `Record`.
|
|
363
363
|
- `KeysWithDiffTypes<A, B>`: gets the keys common in `A` and `B` but with different value type.
|
|
364
364
|
- `mapKey()`: type adjusted map by key.
|
|
365
|
+
- `RecordValue<R>`: gets the value type `T`from `Record<any, T>` [video](https://www.youtube.com/watch?v=1J7xK6FUqPw).
|
|
365
366
|
- `reduceByKey()`: type adjusted reduce by key.
|
|
366
367
|
- `someKey()`: type adjusted some by key.
|
|
367
368
|
- `SpreadRecord<A, B>`: type for `{...a, ...b}` when both `a` and `b` are `Record`\
|
|
@@ -381,7 +382,7 @@ JSONTypes.get<string>(someJson, 'a', 'b', 1, 'c') // miku
|
|
|
381
382
|
- `as<T>(subject)`: assert `subject` as `T`. Avoid ASI issues such as `;(x as T).abc`
|
|
382
383
|
- `asAny(subject)`: assert `subject` as `any`. Avoid ASI issue such as `;(x as any).abc`
|
|
383
384
|
- `EitherAnd<A, B, [C, D]>`: combines 2 to 4 types as `A | B | (A & B)`. This is useful for combining options. **Deprecated**. Renamed to `EitherOrBoth`.
|
|
384
|
-
- `EitherOrBoth<A, B, [C, D]>`: combines 2 to 4 types as `A | B | (A & B)`. This is useful for combining options
|
|
385
|
+
- `EitherOrBoth<A, B, [C, D]>`: combines 2 to 4 types as `A | B | (A & B)`. This is useful for combining options [video](https://youtu.be/jBxx03NT4Ik).
|
|
385
386
|
- `Except<T, K>`: Deprecated. Same as `Omit<T, K>`.
|
|
386
387
|
- `ExcludePropType<T, U>`: excludes type `U` from properties in `T`.
|
|
387
388
|
- `KeyofOptional<T>`: `keyof` that works with `Record<any, any> | undefined`.
|
package/cjs/object/omit.d.ts
CHANGED
|
@@ -18,4 +18,5 @@ export declare function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 ex
|
|
|
18
18
|
export declare function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10): Omit<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10>;
|
|
19
19
|
export declare function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>, P11 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10, prop11: P11): Omit<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11>;
|
|
20
20
|
export declare function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>, P11 extends UnionKeys<T>, P12 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10, prop11: P11, prop12: P12): Omit<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | P12>;
|
|
21
|
+
export declare function omit<T extends AnyRecord, Props extends UnionKeys<T>>(subject: T, ...props: Props[]): Omit<T, Props>;
|
|
21
22
|
//# sourceMappingURL=omit.d.ts.map
|
package/cjs/object/omit.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"omit.d.ts","sourceRoot":"","sources":["../../ts/object/omit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"omit.d.ts","sourceRoot":"","sources":["../../ts/object/omit.ts"],"names":[],"mappings":"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"}
|
package/cjs/object/omit.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.omit = void 0;
|
|
4
4
|
var index_js_1 = require("../object/index.js");
|
|
5
|
+
var record_js_1 = require("./record.js");
|
|
5
6
|
function omit(subject) {
|
|
6
7
|
var props = [];
|
|
7
8
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
@@ -11,7 +12,7 @@ function omit(subject) {
|
|
|
11
12
|
if (props.indexOf(k) === -1)
|
|
12
13
|
p[k] = subject[k];
|
|
13
14
|
return p;
|
|
14
|
-
}, {});
|
|
15
|
+
}, Object.getPrototypeOf(subject) === null ? (0, record_js_1.record)() : {});
|
|
15
16
|
}
|
|
16
17
|
exports.omit = omit;
|
|
17
18
|
//# sourceMappingURL=omit.js.map
|
package/cjs/object/omit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"omit.js","sourceRoot":"","sources":["../../ts/object/omit.ts"],"names":[],"mappings":";;;AAAA,+CAA2D;
|
|
1
|
+
{"version":3,"file":"omit.js","sourceRoot":"","sources":["../../ts/object/omit.ts"],"names":[],"mappings":";;;AAAA,+CAA2D;AAG3D,yCAAoC;AA6BpC,SAAgB,IAAI,CAAsB,OAAU;IAAE,eAA6B;SAA7B,UAA6B,EAA7B,qBAA6B,EAA7B,IAA6B;QAA7B,8BAA6B;;IACjF,OAAO,IAAA,sBAAW,EAAC,OAAO,EAAE,UAAC,CAAC,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAAE,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QAC9C,OAAO,CAAC,CAAA;IACV,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAA,kBAAM,GAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AAC7D,CAAC;AALD,oBAKC"}
|
package/cjs/object/omit.spec.js
CHANGED
|
@@ -12,7 +12,7 @@ var __assign = (this && this.__assign) || function () {
|
|
|
12
12
|
};
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
var index_js_1 = require("../index.js");
|
|
15
|
-
describe('Omit', function () {
|
|
15
|
+
describe('Omit<T, K>', function () {
|
|
16
16
|
test('work with primitive types', function () {
|
|
17
17
|
index_js_1.assertType.isFunction((function () { return ({}); }));
|
|
18
18
|
});
|
|
@@ -39,15 +39,33 @@ describe('Omit', function () {
|
|
|
39
39
|
}
|
|
40
40
|
foo({ b: '1' });
|
|
41
41
|
});
|
|
42
|
-
|
|
42
|
+
});
|
|
43
|
+
describe("".concat(index_js_1.omit.name, "()"), function () {
|
|
44
|
+
it('omits properties from object', function () {
|
|
43
45
|
var actual = (0, index_js_1.omit)({ a: 1, b: 2 }, 'a');
|
|
44
46
|
expect(actual).toEqual({ b: 2 });
|
|
47
|
+
index_js_1.isType.equal();
|
|
45
48
|
});
|
|
46
|
-
|
|
47
|
-
var actual = (0, index_js_1.omit)({ a: 1 }, 'a');
|
|
49
|
+
it('returns a empty object type when all props are omitted', function () {
|
|
50
|
+
var actual = (0, index_js_1.omit)({ a: 1, b: 1 }, 'a', 'b');
|
|
48
51
|
expect(actual).toEqual({});
|
|
52
|
+
index_js_1.isType.equal();
|
|
53
|
+
});
|
|
54
|
+
it('can object from generic record', function () {
|
|
55
|
+
var i = { a: 1, b: 2 };
|
|
56
|
+
var r = (0, index_js_1.omit)(i, 'a');
|
|
57
|
+
expect(r).toEqual({ b: 2 });
|
|
58
|
+
index_js_1.isType.equal();
|
|
59
|
+
});
|
|
60
|
+
it('supports more than 12 arguments', function () {
|
|
61
|
+
var actual = (0, index_js_1.omit)({ a: 1, b: 1, c: 1 }, 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'b');
|
|
62
|
+
expect(actual).toEqual({ c: 1 });
|
|
49
63
|
index_js_1.assertType.isTrue(true);
|
|
50
64
|
});
|
|
65
|
+
it('maintains the prototype null-ness', function () {
|
|
66
|
+
expect(Object.getPrototypeOf((0, index_js_1.omit)({ a: 1 }, 'a'))).not.toEqual(null);
|
|
67
|
+
expect(Object.getPrototypeOf((0, index_js_1.omit)((0, index_js_1.record)({ a: 1 }), 'a'))).toEqual(null);
|
|
68
|
+
});
|
|
51
69
|
});
|
|
52
70
|
describe('Except()', function () {
|
|
53
71
|
test('Remove properties', function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"omit.spec.js","sourceRoot":"","sources":["../../ts/object/omit.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"omit.spec.js","sourceRoot":"","sources":["../../ts/object/omit.spec.ts"],"names":[],"mappings":"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"}
|
package/cjs/object/pick.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export declare function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 ex
|
|
|
12
12
|
export declare function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10>;
|
|
13
13
|
export declare function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>, P11 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10, prop11: P11): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11>;
|
|
14
14
|
export declare function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>, P11 extends UnionKeys<T>, P12 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10, prop11: P11, prop12: P12): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | P12>;
|
|
15
|
+
export declare function pick<T extends AnyRecord, Props extends UnionKeys<T>>(subject: T, ...props: Props[]): Pick<T, Props>;
|
|
15
16
|
/**
|
|
16
17
|
* Pick properties `K` from `T`.
|
|
17
18
|
* Works with union.
|
package/cjs/object/pick.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pick.d.ts","sourceRoot":"","sources":["../../ts/object/pick.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"pick.d.ts","sourceRoot":"","sources":["../../ts/object/pick.ts"],"names":[],"mappings":"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"}
|
package/cjs/object/pick.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.pick = void 0;
|
|
4
|
+
var record_js_1 = require("./record.js");
|
|
4
5
|
var reduceKey_js_1 = require("./reduceKey.js");
|
|
5
6
|
function pick(subject) {
|
|
6
7
|
var props = [];
|
|
@@ -11,7 +12,7 @@ function pick(subject) {
|
|
|
11
12
|
if (props.indexOf(k) >= 0)
|
|
12
13
|
p[k] = subject[k];
|
|
13
14
|
return p;
|
|
14
|
-
}, {});
|
|
15
|
+
}, Object.getPrototypeOf(subject) === null ? (0, record_js_1.record)() : {});
|
|
15
16
|
}
|
|
16
17
|
exports.pick = pick;
|
|
17
18
|
//# sourceMappingURL=pick.js.map
|
package/cjs/object/pick.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pick.js","sourceRoot":"","sources":["../../ts/object/pick.ts"],"names":[],"mappings":";;;AAEA,+CAA4C;
|
|
1
|
+
{"version":3,"file":"pick.js","sourceRoot":"","sources":["../../ts/object/pick.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,+CAA4C;AAe5C,SAAgB,IAAI,CAAsB,OAAU;IAAE,eAA6B;SAA7B,UAA6B,EAA7B,qBAA6B,EAA7B,IAA6B;QAA7B,8BAA6B;;IACjF,OAAO,IAAA,0BAAW,EAAC,OAAO,EAAE,UAAC,CAAC,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QAC5C,OAAO,CAAC,CAAA;IACV,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAA,kBAAM,GAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AAC7D,CAAC;AALD,oBAKC"}
|
package/cjs/object/pick.spec.js
CHANGED
|
@@ -12,30 +12,43 @@ var __assign = (this && this.__assign) || function () {
|
|
|
12
12
|
};
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
var index_js_1 = require("../index.js");
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
});
|
|
35
|
-
test('
|
|
36
|
-
|
|
15
|
+
describe("Pick<T, K>", function () {
|
|
16
|
+
test('distributive pick', function () {
|
|
17
|
+
var x = { type: 'invoke', payload: [] };
|
|
18
|
+
var actions = [];
|
|
19
|
+
actions.push(__assign(__assign({}, x), { id: '1' }));
|
|
20
|
+
});
|
|
21
|
+
test('distributive pick with disjoined keys', function () {
|
|
22
|
+
var x = { type: 'A' };
|
|
23
|
+
x = { type: 'B', bar: 'bar' };
|
|
24
|
+
expect(x.bar).toBe('bar');
|
|
25
|
+
});
|
|
26
|
+
test('intersection types with generic', function () {
|
|
27
|
+
function foo(input) {
|
|
28
|
+
index_js_1.assertType.isString(input.a);
|
|
29
|
+
}
|
|
30
|
+
foo({ a: '1' });
|
|
31
|
+
});
|
|
32
|
+
test('optional property remains optional', function () {
|
|
33
|
+
index_js_1.assertType.isTrue((0, index_js_1.canAssign)()({}));
|
|
34
|
+
});
|
|
35
|
+
test('pick never gets empty object', function () {
|
|
36
|
+
index_js_1.assertType.isTrue(true);
|
|
37
|
+
});
|
|
37
38
|
});
|
|
38
|
-
|
|
39
|
-
|
|
39
|
+
describe("".concat(index_js_1.pick.name, "()"), function () {
|
|
40
|
+
it('picks properties from object', function () {
|
|
41
|
+
var actual = (0, index_js_1.pick)({ a: 1, b: 2 }, 'a');
|
|
42
|
+
expect(actual).toEqual({ a: 1 });
|
|
43
|
+
});
|
|
44
|
+
it('supports more than 12 arguments', function () {
|
|
45
|
+
var actual = (0, index_js_1.pick)({ a: 1, b: 1, c: 1 }, 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'b');
|
|
46
|
+
expect(actual).toEqual({ a: 1, b: 1 });
|
|
47
|
+
index_js_1.isType.equal();
|
|
48
|
+
});
|
|
49
|
+
it('maintains the prototype null-ness', function () {
|
|
50
|
+
expect(Object.getPrototypeOf((0, index_js_1.pick)({ a: 1 }, 'a'))).not.toEqual(null);
|
|
51
|
+
expect(Object.getPrototypeOf((0, index_js_1.pick)((0, index_js_1.record)({ a: 1 }), 'a'))).toEqual(null);
|
|
52
|
+
});
|
|
40
53
|
});
|
|
41
54
|
//# sourceMappingURL=pick.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pick.spec.js","sourceRoot":"","sources":["../../ts/object/pick.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"pick.spec.js","sourceRoot":"","sources":["../../ts/object/pick.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,wCAAsF;AAEtF,QAAQ,CAAC,YAAY,EAAE;IACrB,IAAI,CAAC,mBAAmB,EAAE;QAexB,IAAM,CAAC,GAAqC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;QAE3E,IAAM,OAAO,GAAa,EAAE,CAAA;QAE5B,OAAO,CAAC,IAAI,uBAAM,CAAC,KAAE,EAAE,EAAE,GAAG,IAAG,CAAA;IACjC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,uCAAuC,EAAE;QAU5C,IAAI,CAAC,GAAoC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA;QACtD,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAA;QAE7B,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,iCAAiC,EAAE;QAEtC,SAAS,GAAG,CAAI,KAAyB;YACvC,qBAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC9B,CAAC;QACD,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,oCAAoC,EAAE;QAGzC,qBAAU,CAAC,MAAM,CAAC,IAAA,oBAAS,GAAK,CAAC,EAAE,CAAC,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,8BAA8B,EAAE;QAInC,qBAAU,CAAC,MAAM,CAAC,IAAuB,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,UAAG,eAAI,CAAC,IAAI,OAAI,EAAE;IACzB,EAAE,CAAC,8BAA8B,EAAE;QACjC,IAAM,MAAM,GAAG,IAAA,eAAI,EAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QAExC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iCAAiC,EAAE;QACpC,IAAM,MAAM,GAAG,IAAA,eAAI,EAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;QAE1G,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QACtC,iBAAM,CAAC,KAAK,EAAwC,CAAA;IACtD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mCAAmC,EAAE;QACtC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,IAAA,eAAI,EAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACpE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,IAAA,eAAI,EAAC,IAAA,iBAAM,EAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1E,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/cjs/object/record.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Widen } from '../utils/index.js';
|
|
2
|
-
import { KeyTypes } from './KeyTypes.js';
|
|
1
|
+
import type { Widen } from '../utils/index.js';
|
|
2
|
+
import type { KeyTypes } from './KeyTypes.js';
|
|
3
3
|
/**
|
|
4
4
|
* Creates a `Record<Key, Value>` or your custom record.
|
|
5
5
|
* By default,
|
|
@@ -10,4 +10,8 @@ import { KeyTypes } from './KeyTypes.js';
|
|
|
10
10
|
*/
|
|
11
11
|
export declare function record<K extends KeyTypes, V>(value?: Record<K, V>): Record<Widen<K>, V>;
|
|
12
12
|
export declare function record<R extends Record<any, any>>(value?: R): R;
|
|
13
|
+
/**
|
|
14
|
+
* Gets the value type `T` from `Record<any, T>`.
|
|
15
|
+
*/
|
|
16
|
+
export declare type RecordValue<R extends Record<any, any>> = R extends Record<any, infer T> ? T : never;
|
|
13
17
|
//# sourceMappingURL=record.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../ts/object/record.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../ts/object/record.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAE9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACxF,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;AAMhE;;GAEG;AACH,oBAAY,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA"}
|
|
@@ -1,52 +1,71 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
var index_js_1 = require("../index.js");
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
describe("".concat(index_js_1.record.name, "()"), function () {
|
|
5
|
+
it('creates an empty record with value default to unknown', function () {
|
|
6
|
+
var a = (0, index_js_1.record)();
|
|
7
|
+
a[1] = 2;
|
|
8
|
+
a['a'] = 'b';
|
|
9
|
+
a[Symbol()] = true;
|
|
10
|
+
index_js_1.isType.equal();
|
|
11
|
+
});
|
|
12
|
+
it('can specify key and value types', function () {
|
|
13
|
+
var a = (0, index_js_1.record)();
|
|
14
|
+
// even though the key type is string,
|
|
15
|
+
// by default JavaScript will cast number index to string
|
|
16
|
+
// so TypeScript also allows it.
|
|
17
|
+
a[1] = 2;
|
|
18
|
+
a['a'] = 3;
|
|
19
|
+
index_js_1.isType.equal();
|
|
20
|
+
});
|
|
21
|
+
it('has no prototype', function () {
|
|
22
|
+
var a = (0, index_js_1.record)();
|
|
23
|
+
expect(Object.getPrototypeOf(a)).toBeNull();
|
|
24
|
+
});
|
|
25
|
+
it('has no prototype with initial value', function () {
|
|
26
|
+
var a = (0, index_js_1.record)({ a: 1 });
|
|
27
|
+
expect(Object.getPrototypeOf(a)).toBeNull();
|
|
28
|
+
});
|
|
29
|
+
it('infers type from initial value, the key type is widen', function () {
|
|
30
|
+
var stringRecord = (0, index_js_1.record)({ a: 1 });
|
|
31
|
+
index_js_1.isType.equal();
|
|
32
|
+
var numberRecord = (0, index_js_1.record)({ 1: 3 });
|
|
33
|
+
index_js_1.isType.equal();
|
|
34
|
+
var stringConstRecord = (0, index_js_1.record)({ a: 1 });
|
|
35
|
+
index_js_1.isType.equal();
|
|
36
|
+
var stringConstRecord2 = (0, index_js_1.record)({ a: 1 });
|
|
37
|
+
index_js_1.isType.equal();
|
|
38
|
+
var stringConstRecord3 = (0, index_js_1.record)({ a: 1, b: 'b' });
|
|
39
|
+
index_js_1.isType.equal();
|
|
40
|
+
var stringConstRecord4 = (0, index_js_1.record)({ a: 1, b: 'b' });
|
|
41
|
+
index_js_1.isType.equal();
|
|
42
|
+
});
|
|
43
|
+
it('has the keys of the initial value', function () {
|
|
44
|
+
var a = (0, index_js_1.record)({ a: 1, b: 2 });
|
|
45
|
+
expect(Object.keys(a)).toEqual(['a', 'b']);
|
|
46
|
+
});
|
|
47
|
+
it('can specify a custom record', function () {
|
|
48
|
+
var a = (0, index_js_1.record)();
|
|
49
|
+
index_js_1.isType.equal();
|
|
50
|
+
var b = (0, index_js_1.record)({ b: 'b' });
|
|
51
|
+
index_js_1.isType.equal();
|
|
52
|
+
});
|
|
10
53
|
});
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
var numberRecord = (0, index_js_1.record)({ 1: 3 });
|
|
28
|
-
index_js_1.isType.equal();
|
|
29
|
-
var stringConstRecord = (0, index_js_1.record)({ a: 1 });
|
|
30
|
-
index_js_1.isType.equal();
|
|
31
|
-
var stringConstRecord2 = (0, index_js_1.record)({ a: 1 });
|
|
32
|
-
index_js_1.isType.equal();
|
|
33
|
-
var stringConstRecord3 = (0, index_js_1.record)({ a: 1, b: 'b' });
|
|
34
|
-
index_js_1.isType.equal();
|
|
35
|
-
var stringConstRecord4 = (0, index_js_1.record)({ a: 1, b: 'b' });
|
|
36
|
-
index_js_1.isType.equal();
|
|
37
|
-
});
|
|
38
|
-
test('no prototype with initial value', function () {
|
|
39
|
-
var a = (0, index_js_1.record)({ a: 1 });
|
|
40
|
-
expect(Object.getPrototypeOf(a)).toBeNull();
|
|
41
|
-
});
|
|
42
|
-
test('Object.keys() gets the keys of the initial value', function () {
|
|
43
|
-
var a = (0, index_js_1.record)({ a: 1, b: 2 });
|
|
44
|
-
expect(Object.keys(a)).toEqual(['a', 'b']);
|
|
45
|
-
});
|
|
46
|
-
it('can specify a custom record', function () {
|
|
47
|
-
var a = (0, index_js_1.record)();
|
|
48
|
-
index_js_1.isType.equal();
|
|
49
|
-
var b = (0, index_js_1.record)({ b: 'b' });
|
|
50
|
-
index_js_1.isType.equal();
|
|
54
|
+
describe("RecordValue<R>", function () {
|
|
55
|
+
it('gets the value type from Record<any, T>', function () {
|
|
56
|
+
index_js_1.isType.equal();
|
|
57
|
+
});
|
|
58
|
+
it("gets the value type form Record<number, T>", function () {
|
|
59
|
+
index_js_1.isType.equal();
|
|
60
|
+
});
|
|
61
|
+
it("gets the value type form Record<number, T>", function () {
|
|
62
|
+
index_js_1.isType.equal();
|
|
63
|
+
});
|
|
64
|
+
it('works with union type', function () {
|
|
65
|
+
index_js_1.isType.equal();
|
|
66
|
+
});
|
|
67
|
+
it('works with intersect type', function () {
|
|
68
|
+
index_js_1.isType.equal();
|
|
69
|
+
});
|
|
51
70
|
});
|
|
52
71
|
//# sourceMappingURL=record.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.spec.js","sourceRoot":"","sources":["../../ts/object/record.spec.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"record.spec.js","sourceRoot":"","sources":["../../ts/object/record.spec.ts"],"names":[],"mappings":"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"}
|
package/esm/object/omit.d.ts
CHANGED
|
@@ -18,4 +18,5 @@ export declare function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 ex
|
|
|
18
18
|
export declare function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10): Omit<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10>;
|
|
19
19
|
export declare function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>, P11 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10, prop11: P11): Omit<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11>;
|
|
20
20
|
export declare function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>, P11 extends UnionKeys<T>, P12 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10, prop11: P11, prop12: P12): Omit<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | P12>;
|
|
21
|
+
export declare function omit<T extends AnyRecord, Props extends UnionKeys<T>>(subject: T, ...props: Props[]): Omit<T, Props>;
|
|
21
22
|
//# sourceMappingURL=omit.d.ts.map
|
package/esm/object/omit.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"omit.d.ts","sourceRoot":"","sources":["../../ts/object/omit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"omit.d.ts","sourceRoot":"","sources":["../../ts/object/omit.ts"],"names":[],"mappings":"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"}
|
package/esm/object/omit.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { reduceByKey } from '../object/index.js';
|
|
2
|
+
import { record } from './record.js';
|
|
2
3
|
export function omit(subject, ...props) {
|
|
3
4
|
return reduceByKey(subject, (p, k) => {
|
|
4
5
|
if (props.indexOf(k) === -1)
|
|
5
6
|
p[k] = subject[k];
|
|
6
7
|
return p;
|
|
7
|
-
}, {});
|
|
8
|
+
}, Object.getPrototypeOf(subject) === null ? record() : {});
|
|
8
9
|
}
|
|
9
10
|
//# sourceMappingURL=omit.js.map
|
package/esm/object/omit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"omit.js","sourceRoot":"","sources":["../../ts/object/omit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"omit.js","sourceRoot":"","sources":["../../ts/object/omit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAG3D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AA6BpC,MAAM,UAAU,IAAI,CAAsB,OAAU,EAAE,GAAG,KAA0B;IACjF,OAAO,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACnC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAAE,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QAC9C,OAAO,CAAC,CAAA;IACV,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AAC7D,CAAC"}
|
package/esm/object/omit.spec.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { assertType, omit } from '../index.js';
|
|
2
|
-
describe('Omit', () => {
|
|
1
|
+
import { assertType, isType, omit, record } from '../index.js';
|
|
2
|
+
describe('Omit<T, K>', () => {
|
|
3
3
|
test('work with primitive types', () => {
|
|
4
4
|
assertType.isFunction((() => ({})));
|
|
5
5
|
});
|
|
@@ -26,15 +26,33 @@ describe('Omit', () => {
|
|
|
26
26
|
}
|
|
27
27
|
foo({ b: '1' });
|
|
28
28
|
});
|
|
29
|
-
|
|
29
|
+
});
|
|
30
|
+
describe(`${omit.name}()`, () => {
|
|
31
|
+
it('omits properties from object', () => {
|
|
30
32
|
const actual = omit({ a: 1, b: 2 }, 'a');
|
|
31
33
|
expect(actual).toEqual({ b: 2 });
|
|
34
|
+
isType.equal();
|
|
32
35
|
});
|
|
33
|
-
|
|
34
|
-
const actual = omit({ a: 1 }, 'a');
|
|
36
|
+
it('returns a empty object type when all props are omitted', () => {
|
|
37
|
+
const actual = omit({ a: 1, b: 1 }, 'a', 'b');
|
|
35
38
|
expect(actual).toEqual({});
|
|
39
|
+
isType.equal();
|
|
40
|
+
});
|
|
41
|
+
it('can object from generic record', () => {
|
|
42
|
+
const i = { a: 1, b: 2 };
|
|
43
|
+
const r = omit(i, 'a');
|
|
44
|
+
expect(r).toEqual({ b: 2 });
|
|
45
|
+
isType.equal();
|
|
46
|
+
});
|
|
47
|
+
it('supports more than 12 arguments', () => {
|
|
48
|
+
const actual = omit({ a: 1, b: 1, c: 1 }, 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'b');
|
|
49
|
+
expect(actual).toEqual({ c: 1 });
|
|
36
50
|
assertType.isTrue(true);
|
|
37
51
|
});
|
|
52
|
+
it('maintains the prototype null-ness', () => {
|
|
53
|
+
expect(Object.getPrototypeOf(omit({ a: 1 }, 'a'))).not.toEqual(null);
|
|
54
|
+
expect(Object.getPrototypeOf(omit(record({ a: 1 }), 'a'))).toEqual(null);
|
|
55
|
+
});
|
|
38
56
|
});
|
|
39
57
|
describe('Except()', () => {
|
|
40
58
|
test('Remove properties', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"omit.spec.js","sourceRoot":"","sources":["../../ts/object/omit.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"omit.spec.js","sourceRoot":"","sources":["../../ts/object/omit.spec.ts"],"names":[],"mappings":"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"}
|
package/esm/object/pick.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export declare function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 ex
|
|
|
12
12
|
export declare function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10>;
|
|
13
13
|
export declare function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>, P11 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10, prop11: P11): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11>;
|
|
14
14
|
export declare function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>, P11 extends UnionKeys<T>, P12 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10, prop11: P11, prop12: P12): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | P12>;
|
|
15
|
+
export declare function pick<T extends AnyRecord, Props extends UnionKeys<T>>(subject: T, ...props: Props[]): Pick<T, Props>;
|
|
15
16
|
/**
|
|
16
17
|
* Pick properties `K` from `T`.
|
|
17
18
|
* Works with union.
|
package/esm/object/pick.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pick.d.ts","sourceRoot":"","sources":["../../ts/object/pick.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"pick.d.ts","sourceRoot":"","sources":["../../ts/object/pick.ts"],"names":[],"mappings":"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"}
|
package/esm/object/pick.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { record } from './record.js';
|
|
1
2
|
import { reduceByKey } from './reduceKey.js';
|
|
2
3
|
export function pick(subject, ...props) {
|
|
3
4
|
return reduceByKey(subject, (p, k) => {
|
|
4
5
|
if (props.indexOf(k) >= 0)
|
|
5
6
|
p[k] = subject[k];
|
|
6
7
|
return p;
|
|
7
|
-
}, {});
|
|
8
|
+
}, Object.getPrototypeOf(subject) === null ? record() : {});
|
|
8
9
|
}
|
|
9
10
|
//# sourceMappingURL=pick.js.map
|
package/esm/object/pick.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pick.js","sourceRoot":"","sources":["../../ts/object/pick.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"pick.js","sourceRoot":"","sources":["../../ts/object/pick.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAe5C,MAAM,UAAU,IAAI,CAAsB,OAAU,EAAE,GAAG,KAA0B;IACjF,OAAO,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACnC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QAC5C,OAAO,CAAC,CAAA;IACV,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AAC7D,CAAC"}
|
package/esm/object/pick.spec.js
CHANGED
|
@@ -1,28 +1,41 @@
|
|
|
1
|
-
import { assertType, canAssign, pick } from '../index.js';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { assertType, canAssign, isType, pick, record } from '../index.js';
|
|
2
|
+
describe(`Pick<T, K>`, () => {
|
|
3
|
+
test('distributive pick', () => {
|
|
4
|
+
const x = { type: 'invoke', payload: [] };
|
|
5
|
+
const actions = [];
|
|
6
|
+
actions.push({ ...x, id: '1' });
|
|
7
|
+
});
|
|
8
|
+
test('distributive pick with disjoined keys', () => {
|
|
9
|
+
let x = { type: 'A' };
|
|
10
|
+
x = { type: 'B', bar: 'bar' };
|
|
11
|
+
expect(x.bar).toBe('bar');
|
|
12
|
+
});
|
|
13
|
+
test('intersection types with generic', () => {
|
|
14
|
+
function foo(input) {
|
|
15
|
+
assertType.isString(input.a);
|
|
16
|
+
}
|
|
17
|
+
foo({ a: '1' });
|
|
18
|
+
});
|
|
19
|
+
test('optional property remains optional', () => {
|
|
20
|
+
assertType.isTrue(canAssign()({}));
|
|
21
|
+
});
|
|
22
|
+
test('pick never gets empty object', () => {
|
|
23
|
+
assertType.isTrue(true);
|
|
24
|
+
});
|
|
5
25
|
});
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
foo({ a: '1' });
|
|
21
|
-
});
|
|
22
|
-
test('optional property remains optional', () => {
|
|
23
|
-
assertType.isTrue(canAssign()({}));
|
|
24
|
-
});
|
|
25
|
-
test('pick never gets empty object', () => {
|
|
26
|
-
assertType.isTrue(true);
|
|
26
|
+
describe(`${pick.name}()`, () => {
|
|
27
|
+
it('picks properties from object', () => {
|
|
28
|
+
const actual = pick({ a: 1, b: 2 }, 'a');
|
|
29
|
+
expect(actual).toEqual({ a: 1 });
|
|
30
|
+
});
|
|
31
|
+
it('supports more than 12 arguments', () => {
|
|
32
|
+
const actual = pick({ a: 1, b: 1, c: 1 }, 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'b');
|
|
33
|
+
expect(actual).toEqual({ a: 1, b: 1 });
|
|
34
|
+
isType.equal();
|
|
35
|
+
});
|
|
36
|
+
it('maintains the prototype null-ness', () => {
|
|
37
|
+
expect(Object.getPrototypeOf(pick({ a: 1 }, 'a'))).not.toEqual(null);
|
|
38
|
+
expect(Object.getPrototypeOf(pick(record({ a: 1 }), 'a'))).toEqual(null);
|
|
39
|
+
});
|
|
27
40
|
});
|
|
28
41
|
//# sourceMappingURL=pick.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pick.spec.js","sourceRoot":"","sources":["../../ts/object/pick.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"pick.spec.js","sourceRoot":"","sources":["../../ts/object/pick.spec.ts"],"names":[],"mappings":"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"}
|
package/esm/object/record.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Widen } from '../utils/index.js';
|
|
2
|
-
import { KeyTypes } from './KeyTypes.js';
|
|
1
|
+
import type { Widen } from '../utils/index.js';
|
|
2
|
+
import type { KeyTypes } from './KeyTypes.js';
|
|
3
3
|
/**
|
|
4
4
|
* Creates a `Record<Key, Value>` or your custom record.
|
|
5
5
|
* By default,
|
|
@@ -10,4 +10,8 @@ import { KeyTypes } from './KeyTypes.js';
|
|
|
10
10
|
*/
|
|
11
11
|
export declare function record<K extends KeyTypes, V>(value?: Record<K, V>): Record<Widen<K>, V>;
|
|
12
12
|
export declare function record<R extends Record<any, any>>(value?: R): R;
|
|
13
|
+
/**
|
|
14
|
+
* Gets the value type `T` from `Record<any, T>`.
|
|
15
|
+
*/
|
|
16
|
+
export declare type RecordValue<R extends Record<any, any>> = R extends Record<any, infer T> ? T : never;
|
|
13
17
|
//# sourceMappingURL=record.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../ts/object/record.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../ts/object/record.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAE9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACxF,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;AAMhE;;GAEG;AACH,oBAAY,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA"}
|
|
@@ -1,50 +1,69 @@
|
|
|
1
1
|
import { isType, record } from '../index.js';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
describe(`${record.name}()`, () => {
|
|
3
|
+
it('creates an empty record with value default to unknown', () => {
|
|
4
|
+
const a = record();
|
|
5
|
+
a[1] = 2;
|
|
6
|
+
a['a'] = 'b';
|
|
7
|
+
a[Symbol()] = true;
|
|
8
|
+
isType.equal();
|
|
9
|
+
});
|
|
10
|
+
it('can specify key and value types', () => {
|
|
11
|
+
const a = record();
|
|
12
|
+
// even though the key type is string,
|
|
13
|
+
// by default JavaScript will cast number index to string
|
|
14
|
+
// so TypeScript also allows it.
|
|
15
|
+
a[1] = 2;
|
|
16
|
+
a['a'] = 3;
|
|
17
|
+
isType.equal();
|
|
18
|
+
});
|
|
19
|
+
it('has no prototype', () => {
|
|
20
|
+
const a = record();
|
|
21
|
+
expect(Object.getPrototypeOf(a)).toBeNull();
|
|
22
|
+
});
|
|
23
|
+
it('has no prototype with initial value', () => {
|
|
24
|
+
const a = record({ a: 1 });
|
|
25
|
+
expect(Object.getPrototypeOf(a)).toBeNull();
|
|
26
|
+
});
|
|
27
|
+
it('infers type from initial value, the key type is widen', () => {
|
|
28
|
+
const stringRecord = record({ a: 1 });
|
|
29
|
+
isType.equal();
|
|
30
|
+
const numberRecord = record({ 1: 3 });
|
|
31
|
+
isType.equal();
|
|
32
|
+
const stringConstRecord = record({ a: 1 });
|
|
33
|
+
isType.equal();
|
|
34
|
+
const stringConstRecord2 = record({ a: 1 });
|
|
35
|
+
isType.equal();
|
|
36
|
+
const stringConstRecord3 = record({ a: 1, b: 'b' });
|
|
37
|
+
isType.equal();
|
|
38
|
+
const stringConstRecord4 = record({ a: 1, b: 'b' });
|
|
39
|
+
isType.equal();
|
|
40
|
+
});
|
|
41
|
+
it('has the keys of the initial value', () => {
|
|
42
|
+
const a = record({ a: 1, b: 2 });
|
|
43
|
+
expect(Object.keys(a)).toEqual(['a', 'b']);
|
|
44
|
+
});
|
|
45
|
+
it('can specify a custom record', () => {
|
|
46
|
+
const a = record();
|
|
47
|
+
isType.equal();
|
|
48
|
+
const b = record({ b: 'b' });
|
|
49
|
+
isType.equal();
|
|
50
|
+
});
|
|
8
51
|
});
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const numberRecord = record({ 1: 3 });
|
|
26
|
-
isType.equal();
|
|
27
|
-
const stringConstRecord = record({ a: 1 });
|
|
28
|
-
isType.equal();
|
|
29
|
-
const stringConstRecord2 = record({ a: 1 });
|
|
30
|
-
isType.equal();
|
|
31
|
-
const stringConstRecord3 = record({ a: 1, b: 'b' });
|
|
32
|
-
isType.equal();
|
|
33
|
-
const stringConstRecord4 = record({ a: 1, b: 'b' });
|
|
34
|
-
isType.equal();
|
|
35
|
-
});
|
|
36
|
-
test('no prototype with initial value', () => {
|
|
37
|
-
const a = record({ a: 1 });
|
|
38
|
-
expect(Object.getPrototypeOf(a)).toBeNull();
|
|
39
|
-
});
|
|
40
|
-
test('Object.keys() gets the keys of the initial value', () => {
|
|
41
|
-
const a = record({ a: 1, b: 2 });
|
|
42
|
-
expect(Object.keys(a)).toEqual(['a', 'b']);
|
|
43
|
-
});
|
|
44
|
-
it('can specify a custom record', () => {
|
|
45
|
-
const a = record();
|
|
46
|
-
isType.equal();
|
|
47
|
-
const b = record({ b: 'b' });
|
|
48
|
-
isType.equal();
|
|
52
|
+
describe(`RecordValue<R>`, () => {
|
|
53
|
+
it('gets the value type from Record<any, T>', () => {
|
|
54
|
+
isType.equal();
|
|
55
|
+
});
|
|
56
|
+
it(`gets the value type form Record<number, T>`, () => {
|
|
57
|
+
isType.equal();
|
|
58
|
+
});
|
|
59
|
+
it(`gets the value type form Record<number, T>`, () => {
|
|
60
|
+
isType.equal();
|
|
61
|
+
});
|
|
62
|
+
it('works with union type', () => {
|
|
63
|
+
isType.equal();
|
|
64
|
+
});
|
|
65
|
+
it('works with intersect type', () => {
|
|
66
|
+
isType.equal();
|
|
67
|
+
});
|
|
49
68
|
});
|
|
50
69
|
//# sourceMappingURL=record.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.spec.js","sourceRoot":"","sources":["../../ts/object/record.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAY,MAAM,
|
|
1
|
+
{"version":3,"file":"record.spec.js","sourceRoot":"","sources":["../../ts/object/record.spec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/ts/object/omit.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AnyRecord, reduceByKey } from '../object/index.js'
|
|
2
2
|
import { UnionKeys } from '../UnionKeys.js'
|
|
3
3
|
import { Pick } from './pick.js'
|
|
4
|
+
import { record } from './record.js'
|
|
4
5
|
|
|
5
6
|
// by Titian Cernicova-Dragomir
|
|
6
7
|
// https://github.com/microsoft/TypeScript/issues/28339#issuecomment-463577347
|
|
@@ -28,9 +29,10 @@ export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends Un
|
|
|
28
29
|
export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10): Omit<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10>
|
|
29
30
|
export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>, P11 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10, prop11: P11): Omit<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11>
|
|
30
31
|
export function omit<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>, P11 extends UnionKeys<T>, P12 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10, prop11: P11, prop12: P12): Omit<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | P12>
|
|
32
|
+
export function omit<T extends AnyRecord, Props extends UnionKeys<T>>(subject: T, ...props: Props[]): Omit<T, Props>
|
|
31
33
|
export function omit<T extends AnyRecord>(subject: T, ...props: Array<UnionKeys<T>>) {
|
|
32
34
|
return reduceByKey(subject, (p, k) => {
|
|
33
35
|
if (props.indexOf(k) === -1) p[k] = subject[k]
|
|
34
36
|
return p
|
|
35
|
-
},
|
|
37
|
+
}, Object.getPrototypeOf(subject) === null ? record() : {})
|
|
36
38
|
}
|
package/ts/object/pick.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { UnionKeys } from '../UnionKeys.js'
|
|
2
2
|
import type { AnyRecord } from './AnyRecord.js'
|
|
3
|
+
import { record } from './record.js'
|
|
3
4
|
import { reduceByKey } from './reduceKey.js'
|
|
4
5
|
|
|
5
6
|
export function pick<T extends AnyRecord, P1 extends UnionKeys<T>>(subject: T, prop1: P1): Pick<T, P1>
|
|
@@ -14,11 +15,12 @@ export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends Un
|
|
|
14
15
|
export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10>
|
|
15
16
|
export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>, P11 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10, prop11: P11): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11>
|
|
16
17
|
export function pick<T extends AnyRecord, P1 extends UnionKeys<T>, P2 extends UnionKeys<T>, P3 extends UnionKeys<T>, P4 extends UnionKeys<T>, P5 extends UnionKeys<T>, P6 extends UnionKeys<T>, P7 extends UnionKeys<T>, P8 extends UnionKeys<T>, P9 extends UnionKeys<T>, P10 extends UnionKeys<T>, P11 extends UnionKeys<T>, P12 extends UnionKeys<T>>(subject: T, prop1: P1, prop2: P2, prop3: P3, prop4: P4, prop5: P5, prop6: P6, prop7: P7, prop8: P8, prop9: P9, prop10: P10, prop11: P11, prop12: P12): Pick<T, P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | P12>
|
|
18
|
+
export function pick<T extends AnyRecord, Props extends UnionKeys<T>>(subject: T, ...props: Props[]): Pick<T, Props>
|
|
17
19
|
export function pick<T extends AnyRecord>(subject: T, ...props: Array<UnionKeys<T>>) {
|
|
18
20
|
return reduceByKey(subject, (p, k) => {
|
|
19
21
|
if (props.indexOf(k) >= 0) p[k] = subject[k]
|
|
20
22
|
return p
|
|
21
|
-
},
|
|
23
|
+
}, Object.getPrototypeOf(subject) === null ? record() : {})
|
|
22
24
|
}
|
|
23
25
|
|
|
24
26
|
/**
|
package/ts/object/record.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Widen } from '../utils/index.js'
|
|
1
|
+
import type { Widen } from '../utils/index.js'
|
|
2
2
|
import type { AnyRecord } from './AnyRecord.js'
|
|
3
|
-
import { KeyTypes } from './KeyTypes.js'
|
|
3
|
+
import type { KeyTypes } from './KeyTypes.js'
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Creates a `Record<Key, Value>` or your custom record.
|
|
@@ -16,3 +16,8 @@ export function record(value?: any) {
|
|
|
16
16
|
const r = Object.create(null) as AnyRecord
|
|
17
17
|
return (value ? Object.assign(r, value) : r) as AnyRecord
|
|
18
18
|
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Gets the value type `T` from `Record<any, T>`.
|
|
22
|
+
*/
|
|
23
|
+
export type RecordValue<R extends Record<any, any>> = R extends Record<any, infer T> ? T : never
|