MCPcopy Index your code
hub / github.com/sourcebot-dev/sourcebot / setIntervalWithPromise

Function setIntervalWithPromise

packages/backend/src/utils.ts:268–281  ·  view source on GitHub ↗
(
        target: T
    )

Source from the content-addressed store, hash-verified

266// @see: https://mottaquikarim.github.io/dev/posts/setinterval-that-blocks-on-await/
267export const setIntervalAsync = (target: () => Promise<void>, pollingIntervalMs: number): NodeJS.Timeout => {
268 const setIntervalWithPromise = <T extends (...args: any[]) => Promise<any>>(
269 target: T
270 ): (...args: Parameters<T>) => Promise<void> => {
271 return async function (...args: Parameters<T>): Promise<void> {
272 if ((target as any).isRunning) return;
273
274 (target as any).isRunning = true;
275 try {
276 await target(...args);
277 } finally {
278 (target as any).isRunning = false;
279 }
280 };
281 }
282
283 return setInterval(
284 setIntervalWithPromise(target),

Callers 1

setIntervalAsyncFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected