@metamask/logger
Version:
A lightweight logging package using @metamask/streams
1 lines • 2.57 kB
Source Map (JSON)
{"version":3,"file":"transports.mjs","sourceRoot":"","sources":["../src/transports.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,qBAAoB;AAGnC;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAc,CAAC,KAAK,EAAE,EAAE;IACnD,MAAM,IAAI,GAAG;QACX,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;KACtB,CAAC;IACF,wEAAwE;IACxE,sCAAsC;IACtC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,MAAoC,EACzB,EAAE;IACb,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM;aACH,KAAK,CAAC;YACL,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/B,OAAO,EAAE,KAAK;SACf,CAAC;YACF,sDAAsD;YACtD,sCAAsC;aACrC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,MAAkC,EACvB,EAAE;IACb,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import type { JsonRpcMessage } from '@metamask/kernel-utils';\nimport type { DuplexStream } from '@metamask/streams';\n\nimport { lser } from './stream.ts';\nimport type { Transport } from './types.ts';\n\n/**\n * The console transport for the logger.\n *\n * @param entry - The log entry to transport.\n */\nexport const consoleTransport: Transport = (entry) => {\n const args = [\n ...(entry.tags.length > 0 ? [entry.tags] : []),\n ...(entry.message ? [entry.message] : []),\n ...(entry.data ?? []),\n ];\n // Ultimately, a console somewhere is an acceptable terminal for logging\n // eslint-disable-next-line no-console\n console[entry.level](...args);\n};\n\n/**\n * The stream transport for the logger. Expects the stream is listening for\n * log entries.\n *\n * @param stream - The stream to write the log entry to.\n * @returns A transport function that writes to the stream.\n */\nexport const makeStreamTransport = (\n stream: DuplexStream<JsonRpcMessage>,\n): Transport => {\n return (entry) => {\n stream\n .write({\n method: 'notify',\n params: ['logger', lser(entry)],\n jsonrpc: '2.0',\n })\n // This is a last resort, but it's better than nothing\n // eslint-disable-next-line no-console\n .catch(console.debug);\n };\n};\n\nexport const makeArrayTransport = (\n target: Parameters<Transport>[0][],\n): Transport => {\n return (entry) => {\n target.push(entry);\n };\n};\n"]}