export type AsyncItemOrSelfType<T> = T extends string
  ? T
  : T extends AnyIterable<infer R>
  ? AsyncItemOrSelfType<R>
  : T;