@axiomhq/logging
Version:
The official logging package for Axiom
1 lines • 3 kB
Source Map (JSON)
{"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;;;"}