{"version":3,"file":"axiom-js.cjs","sources":["../../../src/transports/axiom-js.ts"],"sourcesContent":["import { Axiom, AxiomWithoutBatching } from '@axiomhq/js';\nimport { LogLevel, LogLevelValue } from '../logger';\nimport { Version } from '../runtime';\nimport { Transport } from './transport';\n\ninterface AxiomJSTransportConfig {\n  axiom: Axiom | AxiomWithoutBatching;\n  dataset: string;\n  logLevel?: LogLevel;\n  /**\n   * Additional product tokens to append to the X-Axiom-Client header.\n   * Use product/version tokens separated by spaces.\n   *\n   * @example \"axiom-react/1.2.3 my-app/4.5.6\"\n   */\n  axiomClient?: string;\n}\n\ntype AxiomClientClient = {\n  appendAxiomClient?: (axiomClient: string) => void;\n};\n\nexport const axiomClient = `axiom-logging/${Version ?? 'unknown'}`;\n\nexport class AxiomJSTransport implements Transport {\n  private config: AxiomJSTransportConfig;\n  private promises: Promise<any>[] = [];\n\n  constructor(config: AxiomJSTransportConfig) {\n    this.config = config;\n    this.appendAxiomClient(config.axiomClient ? `${axiomClient} ${config.axiomClient}` : axiomClient);\n  }\n\n  appendAxiomClient(axiomClient: string) {\n    (this.config.axiom as AxiomClientClient).appendAxiomClient?.(axiomClient);\n  }\n\n  log(logs: any[]) {\n    const filteredLogs = logs.filter(\n      (log) =>\n        LogLevelValue[(log.level as LogLevel) ?? LogLevel.info] >= LogLevelValue[this.config.logLevel ?? LogLevel.info],\n    );\n\n    if (filteredLogs.length === 0) {\n      return;\n    }\n\n    if (this.config.axiom instanceof Axiom) {\n      this.config.axiom.ingest(this.config.dataset, filteredLogs);\n    } else if (this.config.axiom instanceof AxiomWithoutBatching) {\n      this.promises.push(this.config.axiom.ingest(this.config.dataset, filteredLogs));\n    }\n  }\n\n  async flush() {\n    if (this.config.axiom instanceof Axiom) {\n      await this.config.axiom.flush();\n    } else {\n      await Promise.allSettled(this.promises);\n    }\n    this.promises = [];\n  }\n}\n"],"names":["Version","axiomClient","LogLevelValue","LogLevel","Axiom","AxiomWithoutBatching"],"mappings":";;;;;AAsBO,MAAM,cAAc,iBAAiBA,eAAoB;AAEzD,MAAM,iBAAsC;AAAA,EACzC;AAAA,EACA,WAA2B,CAAA;AAAA,EAEnC,YAAY,QAAgC;AAC1C,SAAK,SAAS;AACd,SAAK,kBAAkB,OAAO,cAAc,GAAG,WAAW,IAAI,OAAO,WAAW,KAAK,WAAW;AAAA,EAClG;AAAA,EAEA,kBAAkBC,cAAqB;AACpC,SAAK,OAAO,MAA4B,oBAAoBA,YAAW;AAAA,EAC1E;AAAA,EAEA,IAAI,MAAa;AACf,UAAM,eAAe,KAAK;AAAA,MACxB,CAAC,QACCC,OAAAA,cAAe,IAAI,SAAsBC,OAAAA,SAAS,IAAI,KAAKD,OAAAA,cAAc,KAAK,OAAO,YAAYC,OAAAA,SAAS,IAAI;AAAA,IAAA;AAGlH,QAAI,aAAa,WAAW,GAAG;AAC7B;AAAA,IACF;AAEA,QAAI,KAAK,OAAO,iBAAiBC,UAAO;AACtC,WAAK,OAAO,MAAM,OAAO,KAAK,OAAO,SAAS,YAAY;AAAA,IAC5D,WAAW,KAAK,OAAO,iBAAiBC,GAAAA,sBAAsB;AAC5D,WAAK,SAAS,KAAK,KAAK,OAAO,MAAM,OAAO,KAAK,OAAO,SAAS,YAAY,CAAC;AAAA,IAChF;AAAA,EACF;AAAA,EAEA,MAAM,QAAQ;AACZ,QAAI,KAAK,OAAO,iBAAiBD,UAAO;AACtC,YAAM,KAAK,OAAO,MAAM,MAAA;AAAA,IAC1B,OAAO;AACL,YAAM,QAAQ,WAAW,KAAK,QAAQ;AAAA,IACxC;AACA,SAAK,WAAW,CAAA;AAAA,EAClB;AACF;;;"}