{"version":3,"file":"callforth.mjs","sources":["../src/callforth.js"],"sourcesContent":["\nexport const eventOn = (eventTarget, successEvent, errorEvent = \"error\") => {\n  let $resolve, $reject\n\n  const promise = new Promise((resolve, reject) => {\n    $resolve = resolve\n    $reject = reject\n  })\n\n  eventTarget.addEventListener(successEvent, $resolve)\n  eventTarget.addEventListener(errorEvent, $reject)\n\n  promise.finally(() => {\n    eventTarget.removeEventListener(successEvent, $resolve)\n    eventTarget.removeEventListener(errorEvent, $reject)\n  })\n\n  return promise\n}\n\nexport const timeout = milliseconds => {\n  return new Promise(\n    resolve => setTimeout(resolve, milliseconds)\n  )\n}\n\nexport const polling = async (predicate, options = {}) => {\n  const { maxTries = 10, interval = 10 } = options\n\n  if (maxTries <= 0) {\n    // reject\n    throw undefined\n  } else if (predicate()) {\n    // resolve\n    return undefined\n  } else {\n    await timeout(interval)\n    await polling(predicate, { maxTries: maxTries-1, interval })\n  }\n}"],"names":["eventOn","eventTarget","successEvent","errorEvent","$resolve","$reject","promise","Promise","resolve","reject","addEventListener","removeEventListener","timeout","milliseconds","setTimeout","polling","predicate","options","maxTries","interval","undefined"],"mappings":"AACaA,IAAAA,EAAU,SAACC,EAAaC,EAAcC,GACjD,IAAIC,EAAUC,WADmCF,IAAAA,EAAa,SAG9D,IAAMG,EAAU,IAAIC,QAAQ,SAACC,EAASC,GACpCL,EAAWI,EACXH,EAAUI,IAWZ,OARAR,EAAYS,iBAAiBR,EAAcE,GAC3CH,EAAYS,iBAAiBP,EAAYE,GAEzCC,UAAgB,WACdL,EAAYU,oBAAoBT,EAAcE,GAC9CH,EAAYU,oBAAoBR,EAAYE,KAGvCC,GAGIM,EAAU,SAAAC,GACrB,WAAWN,QACT,SAAAC,UAAWM,WAAWN,EAASK,MAItBE,WAAAA,EAAiBC,EAAWC,YAAAA,IAAAA,EAAU,cACRA,EAAjCC,SAAAA,aAAW,OAAsBD,EAAlBE,SAAAA,aAAW,0CAE9BD,GAAY,EAEd,WAAME,SACGJ,SAET,kBAEMJ,EAAQO,2CACRJ,EAAQC,EAAW,CAAEE,SAAUA,EAAS,EAAGC,SAAAA,8BAXjC"}