1import * as _ from 'lodash-es' 3export const chainPromiseCalls = async <T, R>( 4 data: T[] | Record<string, T>, 5 fnc: (item: T, keyOrIndex: string | number) => Promise<R>, 6): Promise<R[] | Record<string, R>> => { 7 if (_.isPlainObject(data)) { 8 const ret: Record<string, R> = {} 9 for (const key in data as Record<string, T>) { 10 const val = (data as Record<string, T>)[key] 11 ret[key] = await fnc(val, key) 17 for(let ii = 0; ii < (data as T[]).length; ii++) { 18 const result = await fnc((data as T[])[ii], ii)