hotypes 0.6.1 → 0.6.3
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/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/prop-by-path.d.ts +1 -0
- package/lib/prop-by-path.js +3 -0
- package/lib/prop-by-path.js.map +1 -0
- package/package.json +3 -2
- package/src/equals.ts +5 -0
- package/src/flatten-deep.ts +11 -0
- package/src/flatten.ts +13 -0
- package/src/function-keys.ts +4 -0
- package/src/head.ts +4 -0
- package/src/index.ts +42 -0
- package/src/keys-by-exact-type.ts +8 -0
- package/src/keys-by-type.ts +8 -0
- package/src/keys-exclude-by-exact-type.ts +4 -0
- package/src/keys-exclude-by-type.ts +4 -0
- package/src/last.ts +4 -0
- package/src/map-all-props.ts +3 -0
- package/src/map-nullable-props-to-optional-nullable.ts +6 -0
- package/src/map-nullable-props-to-optional.ts +13 -0
- package/src/map-props-by-exact-type.ts +8 -0
- package/src/map-props-by-key.ts +6 -0
- package/src/map-props-by-type.ts +8 -0
- package/src/map-props-to-non-nullable.ts +6 -0
- package/src/map-props-to-optional-by-key.ts +5 -0
- package/src/map-props-to-required-by-key.ts +6 -0
- package/src/mixin-all.ts +6 -0
- package/src/mixin.ts +6 -0
- package/src/non-callable.ts +3 -0
- package/src/non-nullable-keys.ts +4 -0
- package/src/nullable-keys.ts +3 -0
- package/src/omit-props-by-exact-type.ts +4 -0
- package/src/omit-props-by-type.ts +4 -0
- package/src/optional-keys.ts +7 -0
- package/src/pick-non-never.ts +3 -0
- package/src/pop.ts +4 -0
- package/src/prop-by-path.ts +16 -0
- package/src/replace-props-by-key.ts +8 -0
- package/src/replace-props-by-type.ts +9 -0
- package/src/replace.ts +3 -0
- package/src/return-type-of-constructor.ts +4 -0
- package/src/tail.ts +4 -0
- package/src/unpacked-array-like.ts +4 -0
- package/src/unpacked-array.ts +4 -0
- package/src/unpacked-async-iterable.ts +4 -0
- package/src/unpacked-iterable.ts +1 -0
- package/src/unpacked-promise-like.ts +1 -0
- package/src/unpacked-promise.ts +1 -0
- package/src/with-default.ts +4 -0
package/README.md
CHANGED
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';
|
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);
|
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,mDAAgC;AAChC,wDAAqC;AACrC,sDAAmC;AACnC,4DAAyC;AACzC,0DAAuC;AACvC,qDAAkC"}
|
@@ -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 @@
|
|
1
|
+
{"version":3,"file":"prop-by-path.js","sourceRoot":"","sources":["../src/prop-by-path.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "hotypes",
|
3
|
-
"version": "0.6.
|
3
|
+
"version": "0.6.3",
|
4
4
|
"description": "Higher order types for TypeScript",
|
5
5
|
"keywords": [
|
6
6
|
"higher-order",
|
@@ -9,7 +9,8 @@
|
|
9
9
|
"hot"
|
10
10
|
],
|
11
11
|
"files": [
|
12
|
-
"lib"
|
12
|
+
"lib",
|
13
|
+
"src"
|
13
14
|
],
|
14
15
|
"main": "lib/index.js",
|
15
16
|
"types": "lib/index.d.ts",
|
package/src/equals.ts
ADDED
package/src/flatten.ts
ADDED
package/src/head.ts
ADDED
package/src/index.ts
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
export * from './equals'
|
2
|
+
export * from './flatten-deep'
|
3
|
+
export * from './flatten'
|
4
|
+
export * from './function-keys'
|
5
|
+
export * from './head'
|
6
|
+
export * from './keys-by-type'
|
7
|
+
export * from './keys-by-exact-type'
|
8
|
+
export * from './keys-exclude-by-type'
|
9
|
+
export * from './keys-exclude-by-exact-type'
|
10
|
+
export * from './last'
|
11
|
+
export * from './map-all-props'
|
12
|
+
export * from './map-props-by-key'
|
13
|
+
export * from './map-props-by-type'
|
14
|
+
export * from './map-props-by-exact-type'
|
15
|
+
export * from './map-nullable-props-to-optional-nullable'
|
16
|
+
export * from './map-nullable-props-to-optional'
|
17
|
+
export * from './map-props-to-optional-by-key'
|
18
|
+
export * from './map-props-to-required-by-key'
|
19
|
+
export * from './map-props-to-non-nullable'
|
20
|
+
export * from './mixin'
|
21
|
+
export * from './mixin-all'
|
22
|
+
export * from './non-nullable-keys'
|
23
|
+
export * from './nullable-keys'
|
24
|
+
export * from './omit-props-by-type'
|
25
|
+
export * from './omit-props-by-exact-type'
|
26
|
+
export * from './optional-keys'
|
27
|
+
export * from './pick-non-never'
|
28
|
+
export * from './pop'
|
29
|
+
export * from './prop-by-path'
|
30
|
+
export * from './replace'
|
31
|
+
export * from './replace-props-by-key'
|
32
|
+
export * from './replace-props-by-type'
|
33
|
+
export * from './tail'
|
34
|
+
export * from './with-default'
|
35
|
+
export * from './non-callable'
|
36
|
+
export * from './return-type-of-constructor'
|
37
|
+
export * from './unpacked-array'
|
38
|
+
export * from './unpacked-array-like'
|
39
|
+
export * from './unpacked-iterable'
|
40
|
+
export * from './unpacked-async-iterable'
|
41
|
+
export * from './unpacked-promise-like'
|
42
|
+
export * from './unpacked-promise'
|
package/src/last.ts
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
import { MapPropsByType } from './map-props-by-type'
|
2
|
+
import { NonNullableKeys } from './non-nullable-keys'
|
3
|
+
import { NullableKeys } from './nullable-keys'
|
4
|
+
|
5
|
+
export type MapNullablePropsToOptional<T> =
|
6
|
+
Pick<T, NonNullableKeys<T>>
|
7
|
+
& Partial<
|
8
|
+
MapPropsByType<
|
9
|
+
Pick<T, NullableKeys<T>>
|
10
|
+
, null
|
11
|
+
, undefined
|
12
|
+
>
|
13
|
+
>
|
package/src/mixin-all.ts
ADDED
package/src/mixin.ts
ADDED
package/src/pop.ts
ADDED
@@ -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
|
package/src/replace.ts
ADDED
package/src/tail.ts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
export type UnpackedIterable<T> = T extends Iterable<infer U> ? U : never
|
@@ -0,0 +1 @@
|
|
1
|
+
export type UnpackedPromiseLike<T> = T extends PromiseLike<infer U> ? U : never
|
@@ -0,0 +1 @@
|
|
1
|
+
export type UnpackedPromise<T> = T extends Promise<infer U> ? U : never
|