Something went wrong. Try again.
Bluesky app fork with some witchin' additions 💫 forked from jollywhoppers.com/witchsky.app
Something went wrong. Try again.
571 B · 24 lines
TypeScript
at main
12345678910111213141516171819202122232425type BundledFn<Args extends readonly unknown[], Res> = ( ...args: Args) => Promise<Res>
/** * A helper which ensures that multiple calls to an async function * only produces one in-flight request at a time. */export function bundleAsync<Args extends readonly unknown[], Res>( fn: BundledFn<Args, Res>,): BundledFn<Args, Res> { let promise: Promise<Res> | undefined return async (...args) => { if (promise) { return promise } promise = fn(...args) try { return await promise } finally { promise = undefined } }}