type-plus 4.13.2 → 4.14.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 +1 -0
- package/cjs/object/record.d.ts +7 -1
- package/cjs/object/record.d.ts.map +1 -1
- package/cjs/object/record.js +0 -3
- package/cjs/object/record.js.map +1 -1
- package/cjs/object/record.spec.js +6 -0
- package/cjs/object/record.spec.js.map +1 -1
- package/esm/object/record.d.ts +7 -1
- package/esm/object/record.d.ts.map +1 -1
- package/esm/object/record.js +0 -3
- package/esm/object/record.js.map +1 -1
- package/esm/object/record.spec.js +6 -0
- package/esm/object/record.spec.js.map +1 -1
- package/package.json +1 -1
- package/ts/object/record.ts +10 -3
package/README.md
CHANGED
|
@@ -462,6 +462,7 @@ So you may encounter some weird behavior if your logic is complex.
|
|
|
462
462
|
- `omit(obj, ...props)`: omit properties from `obj`.
|
|
463
463
|
- `pick(obj, ...props)`: pick properties from `obj`.
|
|
464
464
|
- `record<K, V>(value?)`: create a `Record<K, V>` without extra object prototype.
|
|
465
|
+
- `record<R>(value?)`: create a record `R` (e.g. `{ a: number }`) without extra object prototype.
|
|
465
466
|
- `required(...)`: merge options and remove `Partial<T>`. From [`unpartial`](https://github.com/unional/unpartial)
|
|
466
467
|
- `requiredDeep(...)`: merge options deeply and remove `Partial<T>`. From [`unpartial`](https://github.com/unional/unpartial)
|
|
467
468
|
- `split(target, ...splitters)`: split one object into multiple objects.
|
package/cjs/object/record.d.ts
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import { Widen } from '../utils/index.js';
|
|
2
2
|
import { KeyTypes } from './KeyTypes.js';
|
|
3
3
|
/**
|
|
4
|
-
* Creates a `Record<Key, Value>`
|
|
4
|
+
* Creates a `Record<Key, Value>` or your custom record.
|
|
5
|
+
* By default,
|
|
6
|
+
* `record()` will widen the keys (`K`) you specified in the `value` to form `Record<Widen<K>, V>`.
|
|
7
|
+
*
|
|
8
|
+
* You can also override it by specifying a custom record, e.g.:
|
|
9
|
+
* `record<{ a: number }>()`
|
|
5
10
|
*/
|
|
6
11
|
export declare function record<K extends KeyTypes, V>(value?: Record<K, V>): Record<Widen<K>, V>;
|
|
12
|
+
export declare function record<R extends Record<any, any>>(value?: R): R;
|
|
7
13
|
//# 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;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC
|
|
1
|
+
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../ts/object/record.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC;;;;;;;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"}
|
package/cjs/object/record.js
CHANGED
package/cjs/object/record.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.js","sourceRoot":"","sources":["../../ts/object/record.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"record.js","sourceRoot":"","sources":["../../ts/object/record.ts"],"names":[],"mappings":";;;AAcA,SAAgB,MAAM,CAAC,KAAW;IAChC,IAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAc,CAAA;IAC1C,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,CAAA;AAC3D,CAAC;AAHD,wBAGC"}
|
|
@@ -43,4 +43,10 @@ test('Object.keys() gets the keys of the initial value', function () {
|
|
|
43
43
|
var a = (0, index_js_1.record)({ a: 1, b: 2 });
|
|
44
44
|
expect(Object.keys(a)).toEqual(['a', 'b']);
|
|
45
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();
|
|
51
|
+
});
|
|
46
52
|
//# sourceMappingURL=record.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.spec.js","sourceRoot":"","sources":["../../ts/object/record.spec.ts"],"names":[],"mappings":";;AAAA,wCAAsD;AAEtD,IAAI,CAAC,sDAAsD,EAAE;IAC3D,IAAM,CAAC,GAAG,IAAA,iBAAM,GAAE,CAAA;IAClB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACR,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;IACZ,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAA;IAClB,iBAAM,CAAC,KAAK,EAA6C,CAAA;AAC3D,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,6BAA6B,EAAE;IAClC,IAAM,CAAC,GAAG,IAAA,iBAAM,GAAkB,CAAA;IAClC,sCAAsC;IACtC,yDAAyD;IACzD,gCAAgC;IAChC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACR,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACV,iBAAM,CAAC,KAAK,EAA0C,CAAA;AACxD,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,cAAc,EAAE;IACnB,IAAM,CAAC,GAAG,IAAA,iBAAM,GAAE,CAAA;IAClB,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;AAC7C,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,sDAAsD,EAAE;IAC3D,IAAM,YAAY,GAAG,IAAA,iBAAM,EAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IACrC,iBAAM,CAAC,KAAK,EAAqD,CAAA;IAEjE,IAAM,YAAY,GAAG,IAAA,iBAAM,EAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IACrC,iBAAM,CAAC,KAAK,EAAqD,CAAA;IAEjE,IAAM,iBAAiB,GAAG,IAAA,iBAAM,EAAC,EAAE,CAAC,EAAE,CAAC,EAAW,CAAC,CAAA;IACnD,iBAAM,CAAC,KAAK,EAAqD,CAAA;IAEjE,IAAM,kBAAkB,GAAG,IAAA,iBAAM,EAAC,EAAE,CAAC,EAAE,CAAU,EAAE,CAAC,CAAA;IACpD,iBAAM,CAAC,KAAK,EAAsD,CAAA;IAElE,IAAM,kBAAkB,GAAG,IAAA,iBAAM,EAAC,EAAE,CAAC,EAAE,CAAU,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IAC5D,iBAAM,CAAC,KAAK,EAA+D,CAAA;IAE3E,IAAM,kBAAkB,GAAG,IAAA,iBAAM,EAAC,EAAE,CAAC,EAAE,CAAU,EAAE,CAAC,EAAE,GAAY,EAAE,CAAC,CAAA;IACrE,iBAAM,CAAC,KAAK,EAA4D,CAAA;AAC1E,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,iCAAiC,EAAE;IACtC,IAAM,CAAC,GAAG,IAAA,iBAAM,EAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IAC1B,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;AAC7C,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,kDAAkD,EAAE;IACvD,IAAM,CAAC,GAAG,IAAA,iBAAM,EAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IAChC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;AAC5C,CAAC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"record.spec.js","sourceRoot":"","sources":["../../ts/object/record.spec.ts"],"names":[],"mappings":"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"}
|
package/esm/object/record.d.ts
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import { Widen } from '../utils/index.js';
|
|
2
2
|
import { KeyTypes } from './KeyTypes.js';
|
|
3
3
|
/**
|
|
4
|
-
* Creates a `Record<Key, Value>`
|
|
4
|
+
* Creates a `Record<Key, Value>` or your custom record.
|
|
5
|
+
* By default,
|
|
6
|
+
* `record()` will widen the keys (`K`) you specified in the `value` to form `Record<Widen<K>, V>`.
|
|
7
|
+
*
|
|
8
|
+
* You can also override it by specifying a custom record, e.g.:
|
|
9
|
+
* `record<{ a: number }>()`
|
|
5
10
|
*/
|
|
6
11
|
export declare function record<K extends KeyTypes, V>(value?: Record<K, V>): Record<Widen<K>, V>;
|
|
12
|
+
export declare function record<R extends Record<any, any>>(value?: R): R;
|
|
7
13
|
//# 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;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC
|
|
1
|
+
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../ts/object/record.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC;;;;;;;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"}
|
package/esm/object/record.js
CHANGED
package/esm/object/record.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.js","sourceRoot":"","sources":["../../ts/object/record.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"record.js","sourceRoot":"","sources":["../../ts/object/record.ts"],"names":[],"mappings":"AAcA,MAAM,UAAU,MAAM,CAAC,KAAW;IAChC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAc,CAAA;IAC1C,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,CAAA;AAC3D,CAAC"}
|
|
@@ -41,4 +41,10 @@ test('Object.keys() gets the keys of the initial value', () => {
|
|
|
41
41
|
const a = record({ a: 1, b: 2 });
|
|
42
42
|
expect(Object.keys(a)).toEqual(['a', 'b']);
|
|
43
43
|
});
|
|
44
|
+
it('can specify a custom record', () => {
|
|
45
|
+
const a = record();
|
|
46
|
+
isType.equal();
|
|
47
|
+
const b = record({ b: 'b' });
|
|
48
|
+
isType.equal();
|
|
49
|
+
});
|
|
44
50
|
//# 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,EAAE,MAAM,aAAa,CAAA;AAEtD,IAAI,CAAC,sDAAsD,EAAE,GAAG,EAAE;IAChE,MAAM,CAAC,GAAG,MAAM,EAAE,CAAA;IAClB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACR,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;IACZ,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAA;IAClB,MAAM,CAAC,KAAK,EAA6C,CAAA;AAC3D,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;IACvC,MAAM,CAAC,GAAG,MAAM,EAAkB,CAAA;IAClC,sCAAsC;IACtC,yDAAyD;IACzD,gCAAgC;IAChC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACR,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACV,MAAM,CAAC,KAAK,EAA0C,CAAA;AACxD,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE;IACxB,MAAM,CAAC,GAAG,MAAM,EAAE,CAAA;IAClB,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;AAC7C,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,sDAAsD,EAAE,GAAG,EAAE;IAChE,MAAM,YAAY,GAAG,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IACrC,MAAM,CAAC,KAAK,EAAqD,CAAA;IAEjE,MAAM,YAAY,GAAG,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IACrC,MAAM,CAAC,KAAK,EAAqD,CAAA;IAEjE,MAAM,iBAAiB,GAAG,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAW,CAAC,CAAA;IACnD,MAAM,CAAC,KAAK,EAAqD,CAAA;IAEjE,MAAM,kBAAkB,GAAG,MAAM,CAAC,EAAE,CAAC,EAAE,CAAU,EAAE,CAAC,CAAA;IACpD,MAAM,CAAC,KAAK,EAAsD,CAAA;IAElE,MAAM,kBAAkB,GAAG,MAAM,CAAC,EAAE,CAAC,EAAE,CAAU,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IAC5D,MAAM,CAAC,KAAK,EAA+D,CAAA;IAE3E,MAAM,kBAAkB,GAAG,MAAM,CAAC,EAAE,CAAC,EAAE,CAAU,EAAE,CAAC,EAAE,GAAY,EAAE,CAAC,CAAA;IACrE,MAAM,CAAC,KAAK,EAA4D,CAAA;AAC1E,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC3C,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IAC1B,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;AAC7C,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,kDAAkD,EAAE,GAAG,EAAE;IAC5D,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IAChC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;AAC5C,CAAC,CAAC,CAAA"}
|
|
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/record.ts
CHANGED
|
@@ -3,9 +3,16 @@ import type { AnyRecord } from './AnyRecord.js'
|
|
|
3
3
|
import { KeyTypes } from './KeyTypes.js'
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
* Creates a `Record<Key, Value>`
|
|
6
|
+
* Creates a `Record<Key, Value>` or your custom record.
|
|
7
|
+
* By default,
|
|
8
|
+
* `record()` will widen the keys (`K`) you specified in the `value` to form `Record<Widen<K>, V>`.
|
|
9
|
+
*
|
|
10
|
+
* You can also override it by specifying a custom record, e.g.:
|
|
11
|
+
* `record<{ a: number }>()`
|
|
7
12
|
*/
|
|
8
|
-
export function record<K extends KeyTypes, V>(value?: Record<K, V>): Record<Widen<K>, V>
|
|
13
|
+
export function record<K extends KeyTypes, V>(value?: Record<K, V>): Record<Widen<K>, V>
|
|
14
|
+
export function record<R extends Record<any, any>>(value?: R): R
|
|
15
|
+
export function record(value?: any) {
|
|
9
16
|
const r = Object.create(null) as AnyRecord
|
|
10
|
-
return (value ? Object.assign(r, value) : r) as
|
|
17
|
+
return (value ? Object.assign(r, value) : r) as AnyRecord
|
|
11
18
|
}
|