{"version":3,"file":"index.cjs","names":[],"sources":["../src/plugin.ts"],"sourcesContent":["import type { LogLayerPlugin, PluginBeforeDataOutParams } from \"@loglayer/plugin\";\nimport type { DatadogTraceInjectorPluginParams } from \"./types.js\";\n\n/**\n * Creates a new Datadog trace injector plugin.\n *\n * This plugin injects the current Datadog APM trace context into the log data.\n *\n * @param config - The datadog trace injector plugin configuration\n * @returns A LogLayer plugin instance\n */\nexport function datadogTraceInjectorPlugin(config: DatadogTraceInjectorPluginParams): LogLayerPlugin {\n  const tracer = config.tracerInstance;\n\n  return {\n    id: config.id,\n    disabled: config.disabled,\n    onBeforeDataOut({ data }: PluginBeforeDataOutParams): Record<string, any> {\n      if (!data) {\n        data = {};\n      }\n\n      try {\n        // Associates log with APM trace\n        // https://docs.datadoghq.com/tracing/other_telemetry/connect_logs_and_traces/nodejs/\n        const span = tracer.scope().active();\n\n        if (span) {\n          tracer.inject(span.context(), \"log\", data);\n        }\n      } catch (error) {\n        // Call error handler if provided, otherwise silently continue\n        if (config.onError && error instanceof Error) {\n          config.onError(error, data);\n        }\n        // Continue logging even if tracer operations fail\n        // This ensures logging doesn't break if dd-trace has issues\n      }\n\n      return data;\n    },\n  };\n}\n"],"mappings":";;;;;;;;;;AAWA,SAAgB,2BAA2B,QAA0D;CACnG,MAAM,SAAS,OAAO;AAEtB,QAAO;EACL,IAAI,OAAO;EACX,UAAU,OAAO;EACjB,gBAAgB,EAAE,QAAwD;AACxE,OAAI,CAAC,KACH,QAAO,EAAE;AAGX,OAAI;IAGF,MAAM,OAAO,OAAO,OAAO,CAAC,QAAQ;AAEpC,QAAI,KACF,QAAO,OAAO,KAAK,SAAS,EAAE,OAAO,KAAK;YAErC,OAAO;AAEd,QAAI,OAAO,WAAW,iBAAiB,MACrC,QAAO,QAAQ,OAAO,KAAK;;AAM/B,UAAO;;EAEV"}