hotypes 0.6.2 → 0.6.4

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 CHANGED
@@ -41,6 +41,7 @@ yarn add hotypes
41
41
  - MixinAll
42
42
  - PickNonNever
43
43
  - Pop
44
+ - PropByPath
44
45
  - OmitPropsByType
45
46
  - OmitPropsByExactType
46
47
  - Replace
@@ -49,6 +50,7 @@ yarn add hotypes
49
50
  - WithDefault
50
51
  - NonCallable
51
52
  - ReturnTypeOfConstructor
53
+ - ParametersOfConstructor
52
54
  - UnpackedArray
53
55
  - UnpackedArrayLike
54
56
  - UnpackedIterable
package/lib/index.d.ts CHANGED
@@ -26,6 +26,7 @@ export * from './omit-props-by-exact-type';
26
26
  export * from './optional-keys';
27
27
  export * from './pick-non-never';
28
28
  export * from './pop';
29
+ export * from './prop-by-path';
29
30
  export * from './replace';
30
31
  export * from './replace-props-by-key';
31
32
  export * from './replace-props-by-type';
@@ -33,6 +34,7 @@ export * from './tail';
33
34
  export * from './with-default';
34
35
  export * from './non-callable';
35
36
  export * from './return-type-of-constructor';
37
+ export * from './parameters-of-constructor';
36
38
  export * from './unpacked-array';
37
39
  export * from './unpacked-array-like';
38
40
  export * from './unpacked-iterable';
package/lib/index.js CHANGED
@@ -42,6 +42,7 @@ __exportStar(require("./omit-props-by-exact-type"), exports);
42
42
  __exportStar(require("./optional-keys"), exports);
43
43
  __exportStar(require("./pick-non-never"), exports);
44
44
  __exportStar(require("./pop"), exports);
45
+ __exportStar(require("./prop-by-path"), exports);
45
46
  __exportStar(require("./replace"), exports);
46
47
  __exportStar(require("./replace-props-by-key"), exports);
47
48
  __exportStar(require("./replace-props-by-type"), exports);
@@ -49,6 +50,7 @@ __exportStar(require("./tail"), exports);
49
50
  __exportStar(require("./with-default"), exports);
50
51
  __exportStar(require("./non-callable"), exports);
51
52
  __exportStar(require("./return-type-of-constructor"), exports);
53
+ __exportStar(require("./parameters-of-constructor"), exports);
52
54
  __exportStar(require("./unpacked-array"), exports);
53
55
  __exportStar(require("./unpacked-array-like"), exports);
54
56
  __exportStar(require("./unpacked-iterable"), exports);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,iDAA8B;AAC9B,4CAAyB;AACzB,kDAA+B;AAC/B,yCAAsB;AACtB,iDAA8B;AAC9B,uDAAoC;AACpC,yDAAsC;AACtC,+DAA4C;AAC5C,yCAAsB;AACtB,kDAA+B;AAC/B,qDAAkC;AAClC,sDAAmC;AACnC,4DAAyC;AACzC,4EAAyD;AACzD,mEAAgD;AAChD,iEAA8C;AAC9C,iEAA8C;AAC9C,8DAA2C;AAC3C,0CAAuB;AACvB,8CAA2B;AAC3B,sDAAmC;AACnC,kDAA+B;AAC/B,uDAAoC;AACpC,6DAA0C;AAC1C,kDAA+B;AAC/B,mDAAgC;AAChC,wCAAqB;AACrB,4CAAyB;AACzB,yDAAsC;AACtC,0DAAuC;AACvC,yCAAsB;AACtB,iDAA8B;AAC9B,iDAA8B;AAC9B,+DAA4C;AAC5C,mDAAgC;AAChC,wDAAqC;AACrC,sDAAmC;AACnC,4DAAyC;AACzC,0DAAuC;AACvC,qDAAkC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,iDAA8B;AAC9B,4CAAyB;AACzB,kDAA+B;AAC/B,yCAAsB;AACtB,iDAA8B;AAC9B,uDAAoC;AACpC,yDAAsC;AACtC,+DAA4C;AAC5C,yCAAsB;AACtB,kDAA+B;AAC/B,qDAAkC;AAClC,sDAAmC;AACnC,4DAAyC;AACzC,4EAAyD;AACzD,mEAAgD;AAChD,iEAA8C;AAC9C,iEAA8C;AAC9C,8DAA2C;AAC3C,0CAAuB;AACvB,8CAA2B;AAC3B,sDAAmC;AACnC,kDAA+B;AAC/B,uDAAoC;AACpC,6DAA0C;AAC1C,kDAA+B;AAC/B,mDAAgC;AAChC,wCAAqB;AACrB,iDAA8B;AAC9B,4CAAyB;AACzB,yDAAsC;AACtC,0DAAuC;AACvC,yCAAsB;AACtB,iDAA8B;AAC9B,iDAA8B;AAC9B,+DAA4C;AAC5C,8DAA2C;AAC3C,mDAAgC;AAChC,wDAAqC;AACrC,sDAAmC;AACnC,4DAAyC;AACzC,0DAAuC;AACvC,qDAAkC"}
@@ -0,0 +1 @@
1
+ export declare type ParametersOfConstructor<T extends new (...args: any) => any> = T extends new (...args: infer Args) => any ? Args : never;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=parameters-of-constructor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parameters-of-constructor.js","sourceRoot":"","sources":["../src/parameters-of-constructor.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export declare type PropByPath<T extends object, Path extends PropertyKey[]> = Path extends [infer First, ...infer Rest] ? (First extends keyof T ? (T[First] extends object ? (Rest extends PropertyKey[] ? PropByPath<T[First], Rest> : never) : T[First]) : undefined) : T;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=prop-by-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prop-by-path.js","sourceRoot":"","sources":["../src/prop-by-path.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- export declare type ReturnTypeOfConstructor<T extends new (...args: any) => any> = T extends new (...args: any) => infer R ? R : never;
1
+ export declare type ReturnTypeOfConstructor<T extends new (...args: any) => any> = T extends new (...args: any) => infer Result ? Result : never;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hotypes",
3
- "version": "0.6.2",
3
+ "version": "0.6.4",
4
4
  "description": "Higher order types for TypeScript",
5
5
  "keywords": [
6
6
  "higher-order",
package/src/index.ts CHANGED
@@ -26,6 +26,7 @@ export * from './omit-props-by-exact-type'
26
26
  export * from './optional-keys'
27
27
  export * from './pick-non-never'
28
28
  export * from './pop'
29
+ export * from './prop-by-path'
29
30
  export * from './replace'
30
31
  export * from './replace-props-by-key'
31
32
  export * from './replace-props-by-type'
@@ -33,6 +34,7 @@ export * from './tail'
33
34
  export * from './with-default'
34
35
  export * from './non-callable'
35
36
  export * from './return-type-of-constructor'
37
+ export * from './parameters-of-constructor'
36
38
  export * from './unpacked-array'
37
39
  export * from './unpacked-array-like'
38
40
  export * from './unpacked-iterable'
@@ -0,0 +1,4 @@
1
+ export type ParametersOfConstructor<T extends new (...args: any) => any> =
2
+ T extends new (...args: infer Args) => any
3
+ ? Args
4
+ : never
@@ -0,0 +1,16 @@
1
+ export type PropByPath<T extends object, Path extends PropertyKey[]> =
2
+ Path extends [infer First, ...infer Rest]
3
+ ? (
4
+ First extends keyof T
5
+ ? (
6
+ T[First] extends object
7
+ ? (
8
+ Rest extends PropertyKey[]
9
+ ? PropByPath<T[First], Rest>
10
+ : never
11
+ )
12
+ : T[First]
13
+ )
14
+ : undefined
15
+ )
16
+ : T
@@ -1,4 +1,4 @@
1
1
  export type ReturnTypeOfConstructor<T extends new (...args: any) => any> =
2
- T extends new (...args: any) => infer R
3
- ? R
2
+ T extends new (...args: any) => infer Result
3
+ ? Result
4
4
  : never