{"version":3,"file":"Poller.mjs","sourceRoot":"","sources":["../src/Poller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,MAAM,OAAO,MAAM;IAOjB,YAAY,QAAoB,EAAE,QAAgB;QANzC,mCAAkB;QAElB,mCAAsB;QAE/B,yBAAsC,SAAS,EAAC;QAG9C,uBAAA,IAAI,oBAAa,QAAQ,MAAA,CAAC;QAC1B,uBAAA,IAAI,oBAAa,QAAQ,MAAA,CAAC;IAC5B,CAAC;IAED,KAAK;QACH,IAAI,uBAAA,IAAI,sBAAQ,EAAE;YAChB,OAAO;SACR;QAED,uBAAA,IAAI,kBAAW,WAAW,CAAC,uBAAA,IAAI,wBAAU,EAAE,uBAAA,IAAI,wBAAU,CAAC,MAAA,CAAC;IAC7D,CAAC;IAED,IAAI;QACF,IAAI,CAAC,uBAAA,IAAI,sBAAQ,EAAE;YACjB,OAAO;SACR;QACD,aAAa,CAAC,uBAAA,IAAI,sBAAQ,CAAC,CAAC;QAC5B,uBAAA,IAAI,kBAAW,SAAS,MAAA,CAAC;IAC3B,CAAC;CACF","sourcesContent":["export class Poller {\n  readonly #interval: number;\n\n  readonly #callback: () => void;\n\n  #handle: NodeJS.Timeout | undefined = undefined;\n\n  constructor(callback: () => void, interval: number) {\n    this.#interval = interval;\n    this.#callback = callback;\n  }\n\n  start() {\n    if (this.#handle) {\n      return;\n    }\n\n    this.#handle = setInterval(this.#callback, this.#interval);\n  }\n\n  stop() {\n    if (!this.#handle) {\n      return;\n    }\n    clearInterval(this.#handle);\n    this.#handle = undefined;\n  }\n}\n"]}