@trezor/type-utils
Advanced tools
Comparing version 1.1.3 to 1.1.4-beta.1
{ | ||
"name": "@trezor/type-utils", | ||
"version": "1.1.3", | ||
"version": "1.1.4-beta.1", | ||
"license": "See LICENSE.md in repo root", | ||
@@ -5,0 +5,0 @@ "sideEffects": false, |
@@ -0,2 +1,5 @@ | ||
export * from './array'; | ||
export * from './overloads'; | ||
export * from './timeout'; | ||
export * from './utils'; | ||
export * from './timeout'; | ||
export * from './object'; |
822
src/utils.ts
@@ -1,18 +0,53 @@ | ||
// make key required | ||
/** | ||
* Make property of the object required. | ||
* | ||
* Example: | ||
* ``` | ||
* type T = { a?: number }; | ||
* const t: RequiredKey<T, 'a'> = { a: 0 }; // 'a' is mandatory | ||
* ``` | ||
*/ | ||
export type RequiredKey<M, K extends keyof M> = Omit<M, K> & Required<Pick<M, K>>; | ||
// object values types | ||
/** | ||
* Get type of the object values. | ||
* | ||
* Example: | ||
* ``` | ||
* type T = { a: number; b: string }; | ||
* type V: ObjectValues<T>; // number | string | ||
* ``` | ||
*/ | ||
export type ObjectValues<T extends { [key: string]: any }> = T[keyof T]; | ||
// all keys of types in an union | ||
/** | ||
* All keys of types in a union. | ||
* | ||
* Example: | ||
* ``` | ||
* type T = { a: number; b: string }; | ||
* type K: Keys<T>; // 'a' | 'b' | ||
* ``` | ||
*/ | ||
export type Keys<T> = T extends any ? keyof T : never; | ||
// remove the keys while keeping the union | ||
/** | ||
* Distributes the Omit across a union. using distributive conditional types to achieve this: | ||
* @see: https://www.typescriptlang.org/docs/handbook/2/conditional-types.html#distributive-conditional-types | ||
* @source: https://stackoverflow.com/questions/57103834/typescript-omit-a-property-from-all-interfaces-in-a-union-but-keep-the-union-s#answer-57103940 | ||
* | ||
* Example: | ||
* ``` | ||
* type T = { remove: string; keep1: number } | { remove: string; keep2: boolean }; | ||
* type W = Without<T, 'remove'>; | ||
* const w: W = { keep1: 1, keep2: true }; | ||
* ``` | ||
*/ | ||
export type Without<T, K extends keyof any> = T extends any ? Omit<T, K> : never; | ||
// array element type | ||
export type ArrayElement<ArrayType extends readonly unknown[]> = ArrayType[number]; | ||
// const with optional types | ||
/** | ||
* Const with optional types. | ||
* Todo: add example and better explanation. | ||
* It has exactly 1 usage so maybe this shall even be here in the utils package | ||
*/ | ||
export type ConstWithOptionalFields< | ||
@@ -33,12 +68,13 @@ Const extends { [key: string]: any }, | ||
// Extract item from union | ||
export type ItemExtractor<M> = Extract<M, { type: M }>; | ||
// Unwrap type from Promise | ||
export type Await<T> = T extends { | ||
then(onfulfilled?: (value: infer U) => unknown): unknown; | ||
} | ||
? U | ||
: T; | ||
/** | ||
* Recursively makes all properties of the object optional. If the nested property is an object, | ||
* it will make its properties optional as well. | ||
* | ||
* Example: | ||
* ``` | ||
* type T = { a: number; b: { c: string; d: number } }; | ||
* type P = DeepPartial<T>; | ||
* const p: P = { b: { d: 1 } }; // As everything is deeply optional | ||
* ``` | ||
*/ | ||
export type DeepPartial<T> = T extends () => any | ||
@@ -50,739 +86,27 @@ ? T | ||
/** | ||
* Type containing all primitive types in TypeScript. | ||
*/ | ||
export type PrimitiveType = string | number | boolean | Date | null | undefined; | ||
// Record<K, T> with optional key and required value. | ||
// example of using partial union as keys: | ||
// const p: PartialRecord<'a' | 'b' | 'c', string>; = { b: 'value' }; | ||
export type PartialRecord<K extends keyof any, T> = { | ||
[P in K]?: T; | ||
}; | ||
/** | ||
* Record<K, T> with optional key and required value. | ||
* | ||
* Example: | ||
* ``` | ||
* const p: PartialRecord<'a' | 'b' | 'c', string>; = { b: 'value' }; | ||
* ``` | ||
*/ | ||
export type PartialRecord<K extends keyof any, T> = { [P in K]?: T }; | ||
// distributive conditional types to the rescue! This way we can infer union literal type from ReturnType but exclude undefined | ||
/** | ||
* This infers the union literal type from ReturnType but exclude undefined | ||
*/ | ||
export type DefinedUnionMember<T> = T extends string ? T : never; | ||
export type GetObjectWithKey<U, K extends PropertyKey> = U extends object | ||
? K extends keyof U | ||
? U | ||
: never | ||
: never; | ||
export type GetObjectWithoutKey<U, K extends PropertyKey> = U extends object | ||
? K extends keyof U | ||
? never | ||
: U | ||
: never; | ||
export type ObjectsOnly<T> = T extends Record<string, unknown> ? T : never; | ||
// map object `T` to a narrowed type with only those entries that match given `ValueFilter` type | ||
/** | ||
* Map object `T` to a narrowed type with only those entries that match given `ValueFilter` type | ||
*/ | ||
export type FilterPropertiesByType<T, ValueFilter> = { | ||
[Key in keyof T as T[Key] extends ValueFilter ? Key : never]: T[Key]; | ||
}; | ||
export type OverloadImplementations<T, U extends keyof T> = Overloads<T[U]>; | ||
export type Overloads<T> = Overloads24<T>; | ||
type Overloads24<T> = T extends { | ||
(...args: infer A1): infer R1; | ||
(...args: infer A2): infer R2; | ||
(...args: infer A3): infer R3; | ||
(...args: infer A4): infer R4; | ||
(...args: infer A5): infer R5; | ||
(...args: infer A6): infer R6; | ||
(...args: infer A7): infer R7; | ||
(...args: infer A8): infer R8; | ||
(...args: infer A9): infer R9; | ||
(...args: infer A10): infer R10; | ||
(...args: infer A11): infer R11; | ||
(...args: infer A12): infer R12; | ||
(...args: infer A13): infer R13; | ||
(...args: infer A14): infer R14; | ||
(...args: infer A15): infer R15; | ||
(...args: infer A16): infer R16; | ||
(...args: infer A17): infer R17; | ||
(...args: infer A18): infer R18; | ||
(...args: infer A19): infer R19; | ||
(...args: infer A20): infer R20; | ||
(...args: infer A21): infer R21; | ||
(...args: infer A22): infer R22; | ||
(...args: infer A23): infer R23; | ||
(...args: infer A24): infer R24; | ||
} | ||
? [ | ||
(...args: A1) => R1, | ||
(...args: A2) => R2, | ||
(...args: A3) => R3, | ||
(...args: A4) => R4, | ||
(...args: A5) => R5, | ||
(...args: A6) => R6, | ||
(...args: A7) => R7, | ||
(...args: A8) => R8, | ||
(...args: A9) => R9, | ||
(...args: A10) => R10, | ||
(...args: A11) => R11, | ||
(...args: A12) => R12, | ||
(...args: A13) => R13, | ||
(...args: A14) => R14, | ||
(...args: A15) => R15, | ||
(...args: A16) => R16, | ||
(...args: A17) => R17, | ||
(...args: A18) => R18, | ||
(...args: A19) => R19, | ||
(...args: A20) => R20, | ||
(...args: A21) => R21, | ||
(...args: A22) => R22, | ||
(...args: A23) => R23, | ||
(...args: A24) => R24, | ||
] | ||
: Overloads23<T>; | ||
type Overloads23<T> = T extends { | ||
(...args: infer A1): infer R1; | ||
(...args: infer A2): infer R2; | ||
(...args: infer A3): infer R3; | ||
(...args: infer A4): infer R4; | ||
(...args: infer A5): infer R5; | ||
(...args: infer A6): infer R6; | ||
(...args: infer A7): infer R7; | ||
(...args: infer A8): infer R8; | ||
(...args: infer A9): infer R9; | ||
(...args: infer A10): infer R10; | ||
(...args: infer A11): infer R11; | ||
(...args: infer A12): infer R12; | ||
(...args: infer A13): infer R13; | ||
(...args: infer A14): infer R14; | ||
(...args: infer A15): infer R15; | ||
(...args: infer A16): infer R16; | ||
(...args: infer A17): infer R17; | ||
(...args: infer A18): infer R18; | ||
(...args: infer A19): infer R19; | ||
(...args: infer A20): infer R20; | ||
(...args: infer A21): infer R21; | ||
(...args: infer A22): infer R22; | ||
(...args: infer A23): infer R23; | ||
} | ||
? [ | ||
(...args: A1) => R1, | ||
(...args: A2) => R2, | ||
(...args: A3) => R3, | ||
(...args: A4) => R4, | ||
(...args: A5) => R5, | ||
(...args: A6) => R6, | ||
(...args: A7) => R7, | ||
(...args: A8) => R8, | ||
(...args: A9) => R9, | ||
(...args: A10) => R10, | ||
(...args: A11) => R11, | ||
(...args: A12) => R12, | ||
(...args: A13) => R13, | ||
(...args: A14) => R14, | ||
(...args: A15) => R15, | ||
(...args: A16) => R16, | ||
(...args: A17) => R17, | ||
(...args: A18) => R18, | ||
(...args: A19) => R19, | ||
(...args: A20) => R20, | ||
(...args: A21) => R21, | ||
(...args: A22) => R22, | ||
(...args: A23) => R23, | ||
] | ||
: Overloads22<T>; | ||
type Overloads22<T> = T extends { | ||
(...args: infer A1): infer R1; | ||
(...args: infer A2): infer R2; | ||
(...args: infer A3): infer R3; | ||
(...args: infer A4): infer R4; | ||
(...args: infer A5): infer R5; | ||
(...args: infer A6): infer R6; | ||
(...args: infer A7): infer R7; | ||
(...args: infer A8): infer R8; | ||
(...args: infer A9): infer R9; | ||
(...args: infer A10): infer R10; | ||
(...args: infer A11): infer R11; | ||
(...args: infer A12): infer R12; | ||
(...args: infer A13): infer R13; | ||
(...args: infer A14): infer R14; | ||
(...args: infer A15): infer R15; | ||
(...args: infer A16): infer R16; | ||
(...args: infer A17): infer R17; | ||
(...args: infer A18): infer R18; | ||
(...args: infer A19): infer R19; | ||
(...args: infer A20): infer R20; | ||
(...args: infer A21): infer R21; | ||
(...args: infer A22): infer R22; | ||
} | ||
? [ | ||
(...args: A1) => R1, | ||
(...args: A2) => R2, | ||
(...args: A3) => R3, | ||
(...args: A4) => R4, | ||
(...args: A5) => R5, | ||
(...args: A6) => R6, | ||
(...args: A7) => R7, | ||
(...args: A8) => R8, | ||
(...args: A9) => R9, | ||
(...args: A10) => R10, | ||
(...args: A11) => R11, | ||
(...args: A12) => R12, | ||
(...args: A13) => R13, | ||
(...args: A14) => R14, | ||
(...args: A15) => R15, | ||
(...args: A16) => R16, | ||
(...args: A17) => R17, | ||
(...args: A18) => R18, | ||
(...args: A19) => R19, | ||
(...args: A20) => R20, | ||
(...args: A21) => R21, | ||
(...args: A22) => R22, | ||
] | ||
: Overloads21<T>; | ||
type Overloads21<T> = T extends { | ||
(...args: infer A1): infer R1; | ||
(...args: infer A2): infer R2; | ||
(...args: infer A3): infer R3; | ||
(...args: infer A4): infer R4; | ||
(...args: infer A5): infer R5; | ||
(...args: infer A6): infer R6; | ||
(...args: infer A7): infer R7; | ||
(...args: infer A8): infer R8; | ||
(...args: infer A9): infer R9; | ||
(...args: infer A10): infer R10; | ||
(...args: infer A11): infer R11; | ||
(...args: infer A12): infer R12; | ||
(...args: infer A13): infer R13; | ||
(...args: infer A14): infer R14; | ||
(...args: infer A15): infer R15; | ||
(...args: infer A16): infer R16; | ||
(...args: infer A17): infer R17; | ||
(...args: infer A18): infer R18; | ||
(...args: infer A19): infer R19; | ||
(...args: infer A20): infer R20; | ||
(...args: infer A21): infer R21; | ||
} | ||
? [ | ||
(...args: A1) => R1, | ||
(...args: A2) => R2, | ||
(...args: A3) => R3, | ||
(...args: A4) => R4, | ||
(...args: A5) => R5, | ||
(...args: A6) => R6, | ||
(...args: A7) => R7, | ||
(...args: A8) => R8, | ||
(...args: A9) => R9, | ||
(...args: A10) => R10, | ||
(...args: A11) => R11, | ||
(...args: A12) => R12, | ||
(...args: A13) => R13, | ||
(...args: A14) => R14, | ||
(...args: A15) => R15, | ||
(...args: A16) => R16, | ||
(...args: A17) => R17, | ||
(...args: A18) => R18, | ||
(...args: A19) => R19, | ||
(...args: A20) => R20, | ||
(...args: A21) => R21, | ||
] | ||
: Overloads20<T>; | ||
type Overloads20<T> = T extends { | ||
(...args: infer A1): infer R1; | ||
(...args: infer A2): infer R2; | ||
(...args: infer A3): infer R3; | ||
(...args: infer A4): infer R4; | ||
(...args: infer A5): infer R5; | ||
(...args: infer A6): infer R6; | ||
(...args: infer A7): infer R7; | ||
(...args: infer A8): infer R8; | ||
(...args: infer A9): infer R9; | ||
(...args: infer A10): infer R10; | ||
(...args: infer A11): infer R11; | ||
(...args: infer A12): infer R12; | ||
(...args: infer A13): infer R13; | ||
(...args: infer A14): infer R14; | ||
(...args: infer A15): infer R15; | ||
(...args: infer A16): infer R16; | ||
(...args: infer A17): infer R17; | ||
(...args: infer A18): infer R18; | ||
(...args: infer A19): infer R19; | ||
(...args: infer A20): infer R20; | ||
} | ||
? [ | ||
(...args: A1) => R1, | ||
(...args: A2) => R2, | ||
(...args: A3) => R3, | ||
(...args: A4) => R4, | ||
(...args: A5) => R5, | ||
(...args: A6) => R6, | ||
(...args: A7) => R7, | ||
(...args: A8) => R8, | ||
(...args: A9) => R9, | ||
(...args: A10) => R10, | ||
(...args: A11) => R11, | ||
(...args: A12) => R12, | ||
(...args: A13) => R13, | ||
(...args: A14) => R14, | ||
(...args: A15) => R15, | ||
(...args: A16) => R16, | ||
(...args: A17) => R17, | ||
(...args: A18) => R18, | ||
(...args: A19) => R19, | ||
(...args: A20) => R20, | ||
] | ||
: Overloads19<T>; | ||
type Overloads19<T> = T extends { | ||
(...args: infer A1): infer R1; | ||
(...args: infer A2): infer R2; | ||
(...args: infer A3): infer R3; | ||
(...args: infer A4): infer R4; | ||
(...args: infer A5): infer R5; | ||
(...args: infer A6): infer R6; | ||
(...args: infer A7): infer R7; | ||
(...args: infer A8): infer R8; | ||
(...args: infer A9): infer R9; | ||
(...args: infer A10): infer R10; | ||
(...args: infer A11): infer R11; | ||
(...args: infer A12): infer R12; | ||
(...args: infer A13): infer R13; | ||
(...args: infer A14): infer R14; | ||
(...args: infer A15): infer R15; | ||
(...args: infer A16): infer R16; | ||
(...args: infer A17): infer R17; | ||
(...args: infer A18): infer R18; | ||
(...args: infer A19): infer R19; | ||
} | ||
? [ | ||
(...args: A1) => R1, | ||
(...args: A2) => R2, | ||
(...args: A3) => R3, | ||
(...args: A4) => R4, | ||
(...args: A5) => R5, | ||
(...args: A6) => R6, | ||
(...args: A7) => R7, | ||
(...args: A8) => R8, | ||
(...args: A9) => R9, | ||
(...args: A10) => R10, | ||
(...args: A11) => R11, | ||
(...args: A12) => R12, | ||
(...args: A13) => R13, | ||
(...args: A14) => R14, | ||
(...args: A15) => R15, | ||
(...args: A16) => R16, | ||
(...args: A17) => R17, | ||
(...args: A18) => R18, | ||
(...args: A19) => R19, | ||
] | ||
: Overloads18<T>; | ||
type Overloads18<T> = T extends { | ||
(...args: infer A1): infer R1; | ||
(...args: infer A2): infer R2; | ||
(...args: infer A3): infer R3; | ||
(...args: infer A4): infer R4; | ||
(...args: infer A5): infer R5; | ||
(...args: infer A6): infer R6; | ||
(...args: infer A7): infer R7; | ||
(...args: infer A8): infer R8; | ||
(...args: infer A9): infer R9; | ||
(...args: infer A10): infer R10; | ||
(...args: infer A11): infer R11; | ||
(...args: infer A12): infer R12; | ||
(...args: infer A13): infer R13; | ||
(...args: infer A14): infer R14; | ||
(...args: infer A15): infer R15; | ||
(...args: infer A16): infer R16; | ||
(...args: infer A17): infer R17; | ||
(...args: infer A18): infer R18; | ||
} | ||
? [ | ||
(...args: A1) => R1, | ||
(...args: A2) => R2, | ||
(...args: A3) => R3, | ||
(...args: A4) => R4, | ||
(...args: A5) => R5, | ||
(...args: A6) => R6, | ||
(...args: A7) => R7, | ||
(...args: A8) => R8, | ||
(...args: A9) => R9, | ||
(...args: A10) => R10, | ||
(...args: A11) => R11, | ||
(...args: A12) => R12, | ||
(...args: A13) => R13, | ||
(...args: A14) => R14, | ||
(...args: A15) => R15, | ||
(...args: A16) => R16, | ||
(...args: A17) => R17, | ||
(...args: A18) => R18, | ||
] | ||
: Overloads17<T>; | ||
type Overloads17<T> = T extends { | ||
(...args: infer A1): infer R1; | ||
(...args: infer A2): infer R2; | ||
(...args: infer A3): infer R3; | ||
(...args: infer A4): infer R4; | ||
(...args: infer A5): infer R5; | ||
(...args: infer A6): infer R6; | ||
(...args: infer A7): infer R7; | ||
(...args: infer A8): infer R8; | ||
(...args: infer A9): infer R9; | ||
(...args: infer A10): infer R10; | ||
(...args: infer A11): infer R11; | ||
(...args: infer A12): infer R12; | ||
(...args: infer A13): infer R13; | ||
(...args: infer A14): infer R14; | ||
(...args: infer A15): infer R15; | ||
(...args: infer A16): infer R16; | ||
(...args: infer A17): infer R17; | ||
} | ||
? [ | ||
(...args: A1) => R1, | ||
(...args: A2) => R2, | ||
(...args: A3) => R3, | ||
(...args: A4) => R4, | ||
(...args: A5) => R5, | ||
(...args: A6) => R6, | ||
(...args: A7) => R7, | ||
(...args: A8) => R8, | ||
(...args: A9) => R9, | ||
(...args: A10) => R10, | ||
(...args: A11) => R11, | ||
(...args: A12) => R12, | ||
(...args: A13) => R13, | ||
(...args: A14) => R14, | ||
(...args: A15) => R15, | ||
(...args: A16) => R16, | ||
(...args: A17) => R17, | ||
] | ||
: Overloads16<T>; | ||
type Overloads16<T> = T extends { | ||
(...args: infer A1): infer R1; | ||
(...args: infer A2): infer R2; | ||
(...args: infer A3): infer R3; | ||
(...args: infer A4): infer R4; | ||
(...args: infer A5): infer R5; | ||
(...args: infer A6): infer R6; | ||
(...args: infer A7): infer R7; | ||
(...args: infer A8): infer R8; | ||
(...args: infer A9): infer R9; | ||
(...args: infer A10): infer R10; | ||
(...args: infer A11): infer R11; | ||
(...args: infer A12): infer R12; | ||
(...args: infer A13): infer R13; | ||
(...args: infer A14): infer R14; | ||
(...args: infer A15): infer R15; | ||
(...args: infer A16): infer R16; | ||
} | ||
? [ | ||
(...args: A1) => R1, | ||
(...args: A2) => R2, | ||
(...args: A3) => R3, | ||
(...args: A4) => R4, | ||
(...args: A5) => R5, | ||
(...args: A6) => R6, | ||
(...args: A7) => R7, | ||
(...args: A8) => R8, | ||
(...args: A9) => R9, | ||
(...args: A10) => R10, | ||
(...args: A11) => R11, | ||
(...args: A12) => R12, | ||
(...args: A13) => R13, | ||
(...args: A14) => R14, | ||
(...args: A15) => R15, | ||
(...args: A16) => R16, | ||
] | ||
: Overloads15<T>; | ||
type Overloads15<T> = T extends { | ||
(...args: infer A1): infer R1; | ||
(...args: infer A2): infer R2; | ||
(...args: infer A3): infer R3; | ||
(...args: infer A4): infer R4; | ||
(...args: infer A5): infer R5; | ||
(...args: infer A6): infer R6; | ||
(...args: infer A7): infer R7; | ||
(...args: infer A8): infer R8; | ||
(...args: infer A9): infer R9; | ||
(...args: infer A10): infer R10; | ||
(...args: infer A11): infer R11; | ||
(...args: infer A12): infer R12; | ||
(...args: infer A13): infer R13; | ||
(...args: infer A14): infer R14; | ||
(...args: infer A15): infer R15; | ||
} | ||
? [ | ||
(...args: A1) => R1, | ||
(...args: A2) => R2, | ||
(...args: A3) => R3, | ||
(...args: A4) => R4, | ||
(...args: A5) => R5, | ||
(...args: A6) => R6, | ||
(...args: A7) => R7, | ||
(...args: A8) => R8, | ||
(...args: A9) => R9, | ||
(...args: A10) => R10, | ||
(...args: A11) => R11, | ||
(...args: A12) => R12, | ||
(...args: A13) => R13, | ||
(...args: A14) => R14, | ||
(...args: A15) => R15, | ||
] | ||
: Overloads14<T>; | ||
type Overloads14<T> = T extends { | ||
(...args: infer A1): infer R1; | ||
(...args: infer A2): infer R2; | ||
(...args: infer A3): infer R3; | ||
(...args: infer A4): infer R4; | ||
(...args: infer A5): infer R5; | ||
(...args: infer A6): infer R6; | ||
(...args: infer A7): infer R7; | ||
(...args: infer A8): infer R8; | ||
(...args: infer A9): infer R9; | ||
(...args: infer A10): infer R10; | ||
(...args: infer A11): infer R11; | ||
(...args: infer A12): infer R12; | ||
(...args: infer A13): infer R13; | ||
(...args: infer A14): infer R14; | ||
} | ||
? [ | ||
(...args: A1) => R1, | ||
(...args: A2) => R2, | ||
(...args: A3) => R3, | ||
(...args: A4) => R4, | ||
(...args: A5) => R5, | ||
(...args: A6) => R6, | ||
(...args: A7) => R7, | ||
(...args: A8) => R8, | ||
(...args: A9) => R9, | ||
(...args: A10) => R10, | ||
(...args: A11) => R11, | ||
(...args: A12) => R12, | ||
(...args: A13) => R13, | ||
(...args: A14) => R14, | ||
] | ||
: Overloads13<T>; | ||
type Overloads13<T> = T extends { | ||
(...args: infer A1): infer R1; | ||
(...args: infer A2): infer R2; | ||
(...args: infer A3): infer R3; | ||
(...args: infer A4): infer R4; | ||
(...args: infer A5): infer R5; | ||
(...args: infer A6): infer R6; | ||
(...args: infer A7): infer R7; | ||
(...args: infer A8): infer R8; | ||
(...args: infer A9): infer R9; | ||
(...args: infer A10): infer R10; | ||
(...args: infer A11): infer R11; | ||
(...args: infer A12): infer R12; | ||
(...args: infer A13): infer R13; | ||
} | ||
? [ | ||
(...args: A1) => R1, | ||
(...args: A2) => R2, | ||
(...args: A3) => R3, | ||
(...args: A4) => R4, | ||
(...args: A5) => R5, | ||
(...args: A6) => R6, | ||
(...args: A7) => R7, | ||
(...args: A8) => R8, | ||
(...args: A9) => R9, | ||
(...args: A10) => R10, | ||
(...args: A11) => R11, | ||
(...args: A12) => R12, | ||
(...args: A13) => R13, | ||
] | ||
: Overloads12<T>; | ||
type Overloads12<T> = T extends { | ||
(...args: infer A1): infer R1; | ||
(...args: infer A2): infer R2; | ||
(...args: infer A3): infer R3; | ||
(...args: infer A4): infer R4; | ||
(...args: infer A5): infer R5; | ||
(...args: infer A6): infer R6; | ||
(...args: infer A7): infer R7; | ||
(...args: infer A8): infer R8; | ||
(...args: infer A9): infer R9; | ||
(...args: infer A10): infer R10; | ||
(...args: infer A11): infer R11; | ||
(...args: infer A12): infer R12; | ||
} | ||
? [ | ||
(...args: A1) => R1, | ||
(...args: A2) => R2, | ||
(...args: A3) => R3, | ||
(...args: A4) => R4, | ||
(...args: A5) => R5, | ||
(...args: A6) => R6, | ||
(...args: A7) => R7, | ||
(...args: A8) => R8, | ||
(...args: A9) => R9, | ||
(...args: A10) => R10, | ||
(...args: A11) => R11, | ||
(...args: A12) => R12, | ||
] | ||
: Overloads11<T>; | ||
type Overloads11<T> = T extends { | ||
(...args: infer A1): infer R1; | ||
(...args: infer A2): infer R2; | ||
(...args: infer A3): infer R3; | ||
(...args: infer A4): infer R4; | ||
(...args: infer A5): infer R5; | ||
(...args: infer A6): infer R6; | ||
(...args: infer A7): infer R7; | ||
(...args: infer A8): infer R8; | ||
(...args: infer A9): infer R9; | ||
(...args: infer A10): infer R10; | ||
(...args: infer A11): infer R11; | ||
} | ||
? [ | ||
(...args: A1) => R1, | ||
(...args: A2) => R2, | ||
(...args: A3) => R3, | ||
(...args: A4) => R4, | ||
(...args: A5) => R5, | ||
(...args: A6) => R6, | ||
(...args: A7) => R7, | ||
(...args: A8) => R8, | ||
(...args: A9) => R9, | ||
(...args: A10) => R10, | ||
(...args: A11) => R11, | ||
] | ||
: Overloads10<T>; | ||
type Overloads10<T> = T extends { | ||
(...args: infer A1): infer R1; | ||
(...args: infer A2): infer R2; | ||
(...args: infer A3): infer R3; | ||
(...args: infer A4): infer R4; | ||
(...args: infer A5): infer R5; | ||
(...args: infer A6): infer R6; | ||
(...args: infer A7): infer R7; | ||
(...args: infer A8): infer R8; | ||
(...args: infer A9): infer R9; | ||
(...args: infer A10): infer R10; | ||
} | ||
? [ | ||
(...args: A1) => R1, | ||
(...args: A2) => R2, | ||
(...args: A3) => R3, | ||
(...args: A4) => R4, | ||
(...args: A5) => R5, | ||
(...args: A6) => R6, | ||
(...args: A7) => R7, | ||
(...args: A8) => R8, | ||
(...args: A9) => R9, | ||
(...args: A10) => R10, | ||
] | ||
: Overloads9<T>; | ||
type Overloads9<T> = T extends { | ||
(...args: infer A1): infer R1; | ||
(...args: infer A2): infer R2; | ||
(...args: infer A3): infer R3; | ||
(...args: infer A4): infer R4; | ||
(...args: infer A5): infer R5; | ||
(...args: infer A6): infer R6; | ||
(...args: infer A7): infer R7; | ||
(...args: infer A8): infer R8; | ||
(...args: infer A9): infer R9; | ||
} | ||
? [ | ||
(...args: A1) => R1, | ||
(...args: A2) => R2, | ||
(...args: A3) => R3, | ||
(...args: A4) => R4, | ||
(...args: A5) => R5, | ||
(...args: A6) => R6, | ||
(...args: A7) => R7, | ||
(...args: A8) => R8, | ||
(...args: A9) => R9, | ||
] | ||
: Overloads8<T>; | ||
type Overloads8<T> = T extends { | ||
(...args: infer A1): infer R1; | ||
(...args: infer A2): infer R2; | ||
(...args: infer A3): infer R3; | ||
(...args: infer A4): infer R4; | ||
(...args: infer A5): infer R5; | ||
(...args: infer A6): infer R6; | ||
(...args: infer A7): infer R7; | ||
(...args: infer A8): infer R8; | ||
} | ||
? [ | ||
(...args: A1) => R1, | ||
(...args: A2) => R2, | ||
(...args: A3) => R3, | ||
(...args: A4) => R4, | ||
(...args: A5) => R5, | ||
(...args: A6) => R6, | ||
(...args: A7) => R7, | ||
(...args: A8) => R8, | ||
] | ||
: Overloads7<T>; | ||
type Overloads7<T> = T extends { | ||
(...args: infer A1): infer R1; | ||
(...args: infer A2): infer R2; | ||
(...args: infer A3): infer R3; | ||
(...args: infer A4): infer R4; | ||
(...args: infer A5): infer R5; | ||
(...args: infer A6): infer R6; | ||
(...args: infer A7): infer R7; | ||
} | ||
? [ | ||
(...args: A1) => R1, | ||
(...args: A2) => R2, | ||
(...args: A3) => R3, | ||
(...args: A4) => R4, | ||
(...args: A5) => R5, | ||
(...args: A6) => R6, | ||
(...args: A7) => R7, | ||
] | ||
: Overloads6<T>; | ||
type Overloads6<T> = T extends { | ||
(...args: infer A1): infer R1; | ||
(...args: infer A2): infer R2; | ||
(...args: infer A3): infer R3; | ||
(...args: infer A4): infer R4; | ||
(...args: infer A5): infer R5; | ||
(...args: infer A6): infer R6; | ||
} | ||
? [ | ||
(...args: A1) => R1, | ||
(...args: A2) => R2, | ||
(...args: A3) => R3, | ||
(...args: A4) => R4, | ||
(...args: A5) => R5, | ||
(...args: A6) => R6, | ||
] | ||
: Overloads5<T>; | ||
type Overloads5<T> = T extends { | ||
(...args: infer A1): infer R1; | ||
(...args: infer A2): infer R2; | ||
(...args: infer A3): infer R3; | ||
(...args: infer A4): infer R4; | ||
(...args: infer A5): infer R5; | ||
} | ||
? [ | ||
(...args: A1) => R1, | ||
(...args: A2) => R2, | ||
(...args: A3) => R3, | ||
(...args: A4) => R4, | ||
(...args: A5) => R5, | ||
] | ||
: Overloads4<T>; | ||
type Overloads4<T> = T extends { | ||
(...args: infer A1): infer R1; | ||
(...args: infer A2): infer R2; | ||
(...args: infer A3): infer R3; | ||
(...args: infer A4): infer R4; | ||
} | ||
? [(...args: A1) => R1, (...args: A2) => R2, (...args: A3) => R3, (...args: A4) => R4] | ||
: Overloads3<T>; | ||
type Overloads3<T> = T extends { | ||
(...args: infer A1): infer R1; | ||
(...args: infer A2): infer R2; | ||
(...args: infer A3): infer R3; | ||
} | ||
? [(...args: A1) => R1, (...args: A2) => R2, (...args: A3) => R3] | ||
: Overloads2<T>; | ||
type Overloads2<T> = T extends { | ||
(...args: infer A1): infer R1; | ||
(...args: infer A2): infer R2; | ||
} | ||
? [(...args: A1) => R1, (...args: A2) => R2] | ||
: Overloads1<T>; | ||
type Overloads1<T> = T extends { | ||
(...args: infer A1): infer R1; | ||
} | ||
? [(...args: A1) => R1] | ||
: unknown; |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
28047
8
846
2
1