{"version":3,"file":"EventLogger.mjs","sources":["../../../../../../core/src/EventLogger.ts"],"sourcesContent":["import { SDKTelemetry } from './NetworkClient';\n\nexport const DEFAULT_MAX_BATCH_SIZE = 15;\nexport const DEFAULT_INTERVAL_DURATION_MS = 800;\n\ntype EventLoggerArgs = {\n  maxBatchSize: number;\n  intervalDurationMs: number;\n  logEventURL: string;\n};\n\nexport class EventLogger {\n  private maxBatchSize: number;\n  private logEventURL: string;\n  private batch: Record<string, unknown>[];\n\n  constructor(args: EventLoggerArgs) {\n    this.maxBatchSize = args.maxBatchSize;\n    this.logEventURL = args.logEventURL;\n    // TODO: If we create more than one of these, we'll want a mechanism to clean up the intervals\n    setInterval(this.flush.bind(this), args.intervalDurationMs);\n    this.batch = [];\n  }\n\n  logEvent(telemetry: SDKTelemetry, event: Record<string, unknown>) {\n    this.batch.push({ telemetry, event });\n    if (this.batch.length >= this.maxBatchSize) {\n      this.flush();\n    }\n  }\n\n  async flush() {\n    if (!this.batch.length) {\n      return;\n    }\n    const batchToSubmit = this.batch;\n    this.batch = [];\n    try {\n      await fetch(this.logEventURL, {\n        method: 'POST',\n        headers: {\n          'Content-Type': 'application/json',\n        },\n        body: JSON.stringify(batchToSubmit),\n      });\n    } catch {\n      // Silently ignore fetch errors\n    }\n  }\n}\n"],"names":["DEFAULT_MAX_BATCH_SIZE","DEFAULT_INTERVAL_DURATION_MS","EventLogger","maxBatchSize","logEventURL","batch","args","setInterval","flush","bind","intervalDurationMs","logEvent","telemetry","event","push","length","batchToSubmit","fetch","method","headers","body","JSON","stringify"],"mappings":"AAEO,MAAMA,yBAAyB;AAC/B,MAAMC,+BAA+B;AAQrC,MAAMC,WAAAA,CAAAA;IACHC,YAAAA;IACAC,WAAAA;IACAC,KAAAA;AAER,IAAA,WAAA,CAAYC,IAAqB,CAAE;AACjC,QAAA,IAAI,CAACH,YAAY,GAAGG,IAAAA,CAAKH,YAAY;AACrC,QAAA,IAAI,CAACC,WAAW,GAAGE,IAAAA,CAAKF,WAAW;;QAEnCG,WAAAA,CAAY,IAAI,CAACC,KAAK,CAACC,IAAI,CAAC,IAAI,CAAA,EAAGH,IAAAA,CAAKI,kBAAkB,CAAA;QAC1D,IAAI,CAACL,KAAK,GAAG,EAAE;AACjB,IAAA;IAEAM,QAAAA,CAASC,SAAuB,EAAEC,KAA8B,EAAE;AAChE,QAAA,IAAI,CAACR,KAAK,CAACS,IAAI,CAAC;AAAEF,YAAAA,SAAAA;AAAWC,YAAAA;AAAM,SAAA,CAAA;QACnC,IAAI,IAAI,CAACR,KAAK,CAACU,MAAM,IAAI,IAAI,CAACZ,YAAY,EAAE;AAC1C,YAAA,IAAI,CAACK,KAAK,EAAA;AACZ,QAAA;AACF,IAAA;AAEA,IAAA,MAAMA,KAAAA,GAAQ;AACZ,QAAA,IAAI,CAAC,IAAI,CAACH,KAAK,CAACU,MAAM,EAAE;AACtB,YAAA;AACF,QAAA;QACA,MAAMC,aAAAA,GAAgB,IAAI,CAACX,KAAK;QAChC,IAAI,CAACA,KAAK,GAAG,EAAE;QACf,IAAI;AACF,YAAA,MAAMY,KAAAA,CAAM,IAAI,CAACb,WAAW,EAAE;gBAC5Bc,MAAAA,EAAQ,MAAA;gBACRC,OAAAA,EAAS;oBACP,cAAA,EAAgB;AAClB,iBAAA;gBACAC,IAAAA,EAAMC,IAAAA,CAAKC,SAAS,CAACN,aAAAA;AACvB,aAAA,CAAA;AACF,QAAA,CAAA,CAAE,OAAM;;AAER,QAAA;AACF,IAAA;AACF;;;;"}