type-plus 7.1.0 → 7.1.1

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.
@@ -10,7 +10,7 @@ export type { KnownKeys } from './KnownKeys.js';
10
10
  export type { OptionalKeys } from './OptionalKeys.js';
11
11
  export type { Partial, PartialExcept, PartialOmit, PartialPick } from './Partial.js';
12
12
  export type { RecursiveIntersect } from './RecursiveIntersect.js';
13
- export type { RecursivePartial } from './RecursivePartial.js';
13
+ export type { RecursivePartial } from './recursive_partial.js';
14
14
  export type { RecursiveRequired } from './RecursiveRequired.js';
15
15
  export type { RequiredExcept, RequiredPick } from './Required.js';
16
16
  export type { RequiredKeys } from './RequiredKeys.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../ts/object/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACxD,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACpF,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACjE,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACjE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,+BAA+B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../ts/object/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACxD,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACpF,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACjE,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACjE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,+BAA+B,CAAA"}
@@ -0,0 +1,29 @@
1
+ import type { AnyFunction } from '../function/any_function.js';
2
+ import type { ExtractFunction } from '../index.js';
3
+ import type { AnyRecord } from './AnyRecord.js';
4
+ import type { Properties } from './properties.js';
5
+ /**
6
+ * Creates a recursive partial type of type T.
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * interface Foo {
11
+ * bar: number;
12
+ * baz: {
13
+ * qux: string
14
+ * }
15
+ * }
16
+ *
17
+ * type PartialFoo = RecursivePartial<Foo>
18
+ * // {
19
+ * // bar?: number | undefined;
20
+ * // baz?: {
21
+ * // qux?: string | undefined
22
+ * // } | undefined
23
+ * // }
24
+ * ```
25
+ */
26
+ export type RecursivePartial<T> = {
27
+ [P in keyof T]?: T[P] extends (infer U)[] ? RecursivePartial<U>[] | undefined : T[P] extends infer F extends AnyFunction ? [keyof T[P]] extends [undefined] ? T[P] | undefined : ExtractFunction<F> & RecursivePartial<Properties<T[P]>> : T[P] extends AnyRecord ? RecursivePartial<T[P]> | undefined : T[P] | undefined;
28
+ };
29
+ //# sourceMappingURL=recursive_partial.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recursive_partial.d.ts","sourceRoot":"","sources":["../../ts/object/recursive_partial.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;KAChC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GACtC,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,GACjC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,SAAS,WAAW,GACxC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,GAC/B,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GAChB,eAAe,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACxD,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,GACtB,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GAClC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS;CACnB,CAAA"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ // Source: https://stackoverflow.com/questions/41980195/recursive-partialt-in-typescript-2-1
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=recursive_partial.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recursive_partial.js","sourceRoot":"","sources":["../../ts/object/recursive_partial.ts"],"names":[],"mappings":";AAAA,4FAA4F"}
@@ -1,5 +1,5 @@
1
1
  import type { AnyFunction } from '../function/any_function.js';
2
- import type { RecursivePartial } from '../object/RecursivePartial.js';
2
+ import type { RecursivePartial } from '../object/recursive_partial.js';
3
3
  import type { NoInfer } from '../type/no_infer.js';
4
4
  /**
5
5
  * stub a value.
@@ -1 +1 @@
1
- {"version":3,"file":"stub.d.ts","sourceRoot":"","sources":["../../ts/testing/stub.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA;AACvD,wBAAgB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;yBAA9C,IAAI;;;QAqClB;;;;;;;WAOG;;QAIH;;WAEG"}
1
+ {"version":3,"file":"stub.d.ts","sourceRoot":"","sources":["../../ts/testing/stub.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA;AACvD,wBAAgB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;yBAA9C,IAAI;;;QAqClB;;;;;;;WAOG;;QAIH;;WAEG"}
@@ -10,7 +10,7 @@ export type { KnownKeys } from './KnownKeys.js';
10
10
  export type { OptionalKeys } from './OptionalKeys.js';
11
11
  export type { Partial, PartialExcept, PartialOmit, PartialPick } from './Partial.js';
12
12
  export type { RecursiveIntersect } from './RecursiveIntersect.js';
13
- export type { RecursivePartial } from './RecursivePartial.js';
13
+ export type { RecursivePartial } from './recursive_partial.js';
14
14
  export type { RecursiveRequired } from './RecursiveRequired.js';
15
15
  export type { RequiredExcept, RequiredPick } from './Required.js';
16
16
  export type { RequiredKeys } from './RequiredKeys.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../ts/object/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACxD,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACpF,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACjE,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACjE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,+BAA+B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../ts/object/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACxD,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACpF,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACjE,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACjE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,+BAA+B,CAAA"}
@@ -0,0 +1,29 @@
1
+ import type { AnyFunction } from '../function/any_function.js';
2
+ import type { ExtractFunction } from '../index.js';
3
+ import type { AnyRecord } from './AnyRecord.js';
4
+ import type { Properties } from './properties.js';
5
+ /**
6
+ * Creates a recursive partial type of type T.
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * interface Foo {
11
+ * bar: number;
12
+ * baz: {
13
+ * qux: string
14
+ * }
15
+ * }
16
+ *
17
+ * type PartialFoo = RecursivePartial<Foo>
18
+ * // {
19
+ * // bar?: number | undefined;
20
+ * // baz?: {
21
+ * // qux?: string | undefined
22
+ * // } | undefined
23
+ * // }
24
+ * ```
25
+ */
26
+ export type RecursivePartial<T> = {
27
+ [P in keyof T]?: T[P] extends (infer U)[] ? RecursivePartial<U>[] | undefined : T[P] extends infer F extends AnyFunction ? [keyof T[P]] extends [undefined] ? T[P] | undefined : ExtractFunction<F> & RecursivePartial<Properties<T[P]>> : T[P] extends AnyRecord ? RecursivePartial<T[P]> | undefined : T[P] | undefined;
28
+ };
29
+ //# sourceMappingURL=recursive_partial.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recursive_partial.d.ts","sourceRoot":"","sources":["../../ts/object/recursive_partial.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;KAChC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GACtC,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,GACjC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,SAAS,WAAW,GACxC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,GAC/B,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GAChB,eAAe,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACxD,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,GACtB,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GAClC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS;CACnB,CAAA"}
@@ -0,0 +1,3 @@
1
+ // Source: https://stackoverflow.com/questions/41980195/recursive-partialt-in-typescript-2-1
2
+ export {};
3
+ //# sourceMappingURL=recursive_partial.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recursive_partial.js","sourceRoot":"","sources":["../../ts/object/recursive_partial.ts"],"names":[],"mappings":"AAAA,4FAA4F"}
@@ -1,5 +1,5 @@
1
1
  import type { AnyFunction } from '../function/any_function.js';
2
- import type { RecursivePartial } from '../object/RecursivePartial.js';
2
+ import type { RecursivePartial } from '../object/recursive_partial.js';
3
3
  import type { NoInfer } from '../type/no_infer.js';
4
4
  /**
5
5
  * stub a value.
@@ -1 +1 @@
1
- {"version":3,"file":"stub.d.ts","sourceRoot":"","sources":["../../ts/testing/stub.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA;AACvD,wBAAgB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;yBAA9C,IAAI;;;QAqClB;;;;;;;WAOG;;QAIH;;WAEG"}
1
+ {"version":3,"file":"stub.d.ts","sourceRoot":"","sources":["../../ts/testing/stub.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA;AACvD,wBAAgB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;yBAA9C,IAAI;;;QAqClB;;;;;;;WAOG;;QAIH;;WAEG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "type-plus",
3
- "version": "7.1.0",
3
+ "version": "7.1.1",
4
4
  "description": "Provides additional types for TypeScript.",
5
5
  "homepage": "https://github.com/unional/type-plus/tree/main/type-plus",
6
6
  "bugs": {
@@ -10,7 +10,7 @@ export type { KnownKeys } from './KnownKeys.js'
10
10
  export type { OptionalKeys } from './OptionalKeys.js'
11
11
  export type { Partial, PartialExcept, PartialOmit, PartialPick } from './Partial.js'
12
12
  export type { RecursiveIntersect } from './RecursiveIntersect.js'
13
- export type { RecursivePartial } from './RecursivePartial.js'
13
+ export type { RecursivePartial } from './recursive_partial.js'
14
14
  export type { RecursiveRequired } from './RecursiveRequired.js'
15
15
  export type { RequiredExcept, RequiredPick } from './Required.js'
16
16
  export type { RequiredKeys } from './RequiredKeys.js'
@@ -0,0 +1,39 @@
1
+ // Source: https://stackoverflow.com/questions/41980195/recursive-partialt-in-typescript-2-1
2
+
3
+ import type { AnyFunction } from '../function/any_function.js'
4
+ import type { ExtractFunction } from '../index.js'
5
+ import type { AnyRecord } from './AnyRecord.js'
6
+ import type { Properties } from './properties.js'
7
+
8
+ /**
9
+ * Creates a recursive partial type of type T.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * interface Foo {
14
+ * bar: number;
15
+ * baz: {
16
+ * qux: string
17
+ * }
18
+ * }
19
+ *
20
+ * type PartialFoo = RecursivePartial<Foo>
21
+ * // {
22
+ * // bar?: number | undefined;
23
+ * // baz?: {
24
+ * // qux?: string | undefined
25
+ * // } | undefined
26
+ * // }
27
+ * ```
28
+ */
29
+ export type RecursivePartial<T> = {
30
+ [P in keyof T]?: T[P] extends (infer U)[]
31
+ ? RecursivePartial<U>[] | undefined
32
+ : T[P] extends infer F extends AnyFunction
33
+ ? [keyof T[P]] extends [undefined]
34
+ ? T[P] | undefined
35
+ : ExtractFunction<F> & RecursivePartial<Properties<T[P]>>
36
+ : T[P] extends AnyRecord
37
+ ? RecursivePartial<T[P]> | undefined
38
+ : T[P] | undefined
39
+ }
@@ -1,6 +1,6 @@
1
1
  import { requiredDeep } from 'unpartial'
2
2
  import type { AnyFunction } from '../function/any_function.js'
3
- import type { RecursivePartial } from '../object/RecursivePartial.js'
3
+ import type { RecursivePartial } from '../object/recursive_partial.js'
4
4
  import type { NoInfer } from '../type/no_infer.js'
5
5
 
6
6
  /**
@@ -1,5 +0,0 @@
1
- import type { AnyRecord } from './AnyRecord.js';
2
- export type RecursivePartial<T> = {
3
- [P in keyof T]?: T[P] extends (infer U)[] ? RecursivePartial<U>[] : T[P] extends AnyRecord ? RecursivePartial<T[P]> : T[P];
4
- };
5
- //# sourceMappingURL=RecursivePartial.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RecursivePartial.d.ts","sourceRoot":"","sources":["../../ts/object/RecursivePartial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAG/C,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;KAChC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GACtC,gBAAgB,CAAC,CAAC,CAAC,EAAE,GACrB,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,GACtB,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACtB,CAAC,CAAC,CAAC,CAAC;CACP,CAAA"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=RecursivePartial.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RecursivePartial.js","sourceRoot":"","sources":["../../ts/object/RecursivePartial.ts"],"names":[],"mappings":""}
@@ -1,5 +0,0 @@
1
- import type { AnyRecord } from './AnyRecord.js';
2
- export type RecursivePartial<T> = {
3
- [P in keyof T]?: T[P] extends (infer U)[] ? RecursivePartial<U>[] : T[P] extends AnyRecord ? RecursivePartial<T[P]> : T[P];
4
- };
5
- //# sourceMappingURL=RecursivePartial.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RecursivePartial.d.ts","sourceRoot":"","sources":["../../ts/object/RecursivePartial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAG/C,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;KAChC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GACtC,gBAAgB,CAAC,CAAC,CAAC,EAAE,GACrB,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,GACtB,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACtB,CAAC,CAAC,CAAC,CAAC;CACP,CAAA"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=RecursivePartial.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RecursivePartial.js","sourceRoot":"","sources":["../../ts/object/RecursivePartial.ts"],"names":[],"mappings":""}
@@ -1,10 +0,0 @@
1
- import type { AnyRecord } from './AnyRecord.js'
2
-
3
- // Source: https://stackoverflow.com/questions/41980195/recursive-partialt-in-typescript-2-1
4
- export type RecursivePartial<T> = {
5
- [P in keyof T]?: T[P] extends (infer U)[]
6
- ? RecursivePartial<U>[]
7
- : T[P] extends AnyRecord
8
- ? RecursivePartial<T[P]>
9
- : T[P]
10
- }