mirror of
https://github.com/jaronpate/unicord.git
synced 2026-10-18 21:47:40 +00:00
refactor: Simplify hydrator type signature to fix type conflicts
This commit is contained in:
@@ -85,12 +85,12 @@ export async function hydrate<T extends Hydrateable | Hydrated<any, any>, K exte
|
|||||||
*
|
*
|
||||||
* @returns A promise that resolves to a type guard function. The type guard function returns `true` if the data object was successfully hydrated, otherwise `false`.
|
* @returns A promise that resolves to a type guard function. The type guard function returns `true` if the data object was successfully hydrated, otherwise `false`.
|
||||||
*/
|
*/
|
||||||
export async function hydrator<T extends Hydrateable | Hydrated<any, any>, K extends Array<Expectation>>(
|
export async function hydrator<T extends Hydrateable, K extends Array<Expectation>>(
|
||||||
data: T,
|
data: T,
|
||||||
expectations: K,
|
expectations: K,
|
||||||
client: Client,
|
client: Client,
|
||||||
api: API
|
api: API
|
||||||
): Promise<(data: unknown) => data is T extends Hydrated<infer U, infer H> ? Hydrated<T & U, [...H, ...K]> : Hydrated<T, K>> {
|
): Promise<(data: unknown) => data is Hydrated<T, K>> {
|
||||||
let hydrated = true;
|
let hydrated = true;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -102,7 +102,7 @@ export async function hydrator<T extends Hydrateable | Hydrated<any, any>, K ext
|
|||||||
}
|
}
|
||||||
|
|
||||||
// BUG: Resolves to never after hydrations on an already hydrated object
|
// BUG: Resolves to never after hydrations on an already hydrated object
|
||||||
return function (data: unknown): data is T extends Hydrated<infer U, infer H> ? Hydrated<T & U, [...H, ...K]> : Hydrated<T, K> {
|
return function (data: unknown): data is Hydrated<T, K> {
|
||||||
return hydrated;
|
return hydrated;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user