skolplattformen-backup/libs/api-skolplattformen/lib/queueFetcherWrapper.ts

25 lines
635 B
TypeScript

import QueueFetcher from './queue/queueFetcher'
import { Fetcher, RequestInit, Response } from '@skolplattformen/api'
export default function queueFetcherWrapper(
fetch: Fetcher,
changeChildFunc: (childId: string) => Promise<Response>
): Fetcher {
const queue = new QueueFetcher(changeChildFunc)
queue.verboseDebug = false
return async (
name: string,
url: string,
init: RequestInit = { headers: {} },
childId?: string
): Promise<Response> => {
if (childId === undefined) {
return fetch(name, url, init)
}
const p = queue.fetch(() => fetch(name, url, init), childId)
return p
}
}