deep-aplus
Version:
Resolve a whole structure of promises
17 lines (13 loc) • 492 B
TypeScript
type ResolveObjectPromises<Type> = {
[Property in keyof Type]: ResolvePromises<Type[Property]>;
};
type ResolvePromises<T> =
T extends Promise<infer U>
? ResolvePromises<U>
: T extends { [key: string]: unknown }
? ResolveObjectPromises<T>
: T extends Array<unknown>
? ResolveObjectPromises<T>
: T;
declare function deepAplus<T>(obj: T): Promise<ResolvePromises<T>>
export { type ResolvePromises, deepAplus };