{"version":3,"sources":["../src/Mutex.ts"],"sourcesContent":["/* eslint-disable no-await-in-loop */\n/* eslint-disable no-constant-condition */\nimport { Mutex as BaseMutex } from 'async-mutex';\n\nconst delay = (duration: number) =>\n  // eslint-disable-next-line no-promise-executor-return\n  new Promise((resolve: any) => setTimeout(resolve, duration));\n\nexport class Mutex extends BaseMutex {\n  async isAsyncLocked(timeout = 1000, interval = 100) {\n    const startedAt = new Date();\n    while (true) {\n      if (!this.isLocked()) return false;\n      if (timeout && Number(startedAt) + timeout < Date.now()) return true;\n      await delay(interval);\n    }\n  }\n}\n\nexport default Mutex;\n"],"mappings":"+EAEA,OAASA,SAASC,MAAiB,cAEnC,IAAMC,EAAQC,EAACC,GAEb,IAAIC,QAASC,GAAiBC,WAAWD,EAASF,CAAAA,CAAAA,EAFtC,SAIDI,EAAN,cAAoBC,CAAAA,CAR3B,MAQ2BA,CAAAA,EAAAA,cACzB,MAAMC,cAAcC,EAAU,IAAMC,EAAW,IAAK,CAClD,IAAMC,EAAY,IAAIC,KACtB,OAAa,CACX,GAAI,CAAC,KAAKC,SAAQ,EAAI,MAAO,GAC7B,GAAIJ,GAAWK,OAAOH,CAAAA,EAAaF,EAAUG,KAAKG,IAAG,EAAI,MAAO,GAChE,MAAMf,EAAMU,CAAAA,CACd,CACF,CACF,EAEAM,EAAeV","names":["Mutex","BaseMutex","delay","__name","duration","Promise","resolve","setTimeout","Mutex","BaseMutex","isAsyncLocked","timeout","interval","startedAt","Date","isLocked","Number","now","Mutex_default"]}