Resolved type
A narrower version of TypeScript 4.5's Awaited type which Recursively
unwraps the "awaited type", emulating the behavior of await
.
type Resolved<T> = (T extends { then(onfulfilled: F) => any } ? (F extends (value: V) => any ? Resolved<V> : never) : T)