{"version":3,"sources":["../../src/helpers/async.ts"],"sourcesContent":["import { TimeoutError } from \"../types/exceptions\";\n\nexport async function withTimeout<T = any>(\n    p: Promise<T>,\n    ms: number,\n    abortController?: AbortController\n): Promise<T> {\n    let timeoutId: NodeJS.Timeout | undefined;\n\n    const timer = new Promise<never>((_, reject) => {\n        timeoutId = setTimeout(() => {\n            if (abortController) {\n                abortController.abort();\n            }\n\n            reject(new TimeoutError(ms));\n        }, ms);\n    });\n\n    try {\n        return await Promise.race([p, timer]);\n    } finally {\n        clearTimeout(timeoutId);\n    }\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,SAAS,oBAAoB;AAE7B,SAAsB,YAClB,GACA,IACA,iBACU;AAAA;AACV,QAAI;AAEJ,UAAM,QAAQ,IAAI,QAAe,CAAC,GAAG,WAAW;AAC5C,kBAAY,WAAW,MAAM;AACzB,YAAI,iBAAiB;AACjB,0BAAgB,MAAM;AAAA,QAC1B;AAEA,eAAO,IAAI,aAAa,EAAE,CAAC;AAAA,MAC/B,GAAG,EAAE;AAAA,IACT,CAAC;AAED,QAAI;AACA,aAAO,MAAM,QAAQ,KAAK,CAAC,GAAG,KAAK,CAAC;AAAA,IACxC,UAAE;AACE,mBAAa,SAAS;AAAA,IAC1B;AAAA,EACJ;AAAA;","names":[]}