export type WarehouseType = 'DOMESTIC' | 'FBA' | 'OVERSEAS' export interface WarehousePage { records: T[] pages: number | string } export interface WarehousePageQuery { warehouseType: WarehouseType page: number size: number } export async function loadAllWarehouseRecords( warehouseType: WarehouseType, fetchPage: (query: WarehousePageQuery) => Promise>, ) { const records: T[] = [] let page = 1 let pages = 1 do { const response = await fetchPage({ warehouseType, page, size: 200 }) records.push(...response.records) pages = Number(response.pages) || page page += 1 } while (page <= pages) return records }