UNPKG

@metamask/logger

Version:

A lightweight logging package using @metamask/streams

60 lines 2.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.splitLoggerStream = exports.isKernelMessage = exports.isLoggerMessage = exports.lunser = exports.lser = void 0; const streams_1 = require("@metamask/streams"); const utils_1 = require("@metamask/utils"); const constants_ts_1 = require("./constants.cjs"); /** * Serializes a log entry. * * @param entry - The log entry to serialize. * @returns The serialized log entry. */ const lser = (entry) => JSON.stringify(entry, (_key, value) => value === undefined ? constants_ts_1.TOKEN_UNDEFINED : value); exports.lser = lser; harden(exports.lser); /** * Deserializes a log entry. * * @param serializedEntry - The serialized log entry to deserialize. * @returns The deserialized log entry. */ const lunser = (serializedEntry) => JSON.parse(serializedEntry, (_key, value) => value === constants_ts_1.TOKEN_UNDEFINED ? undefined : value); exports.lunser = lunser; harden(exports.lunser); /** * Checks if a message is a logger message. * * @param message - The message to check. * @returns Whether the message is a logger message. */ const isLoggerMessage = (message) => (0, utils_1.isJsonRpcNotification)(message) && Array.isArray(message.params) && message.params.length > 0 && message.params[0] === 'logger' && typeof message.params[1] === 'string'; exports.isLoggerMessage = isLoggerMessage; harden(exports.isLoggerMessage); /** * Checks if a message is a kernel message. A kernel message is any message * which is not a logger message. * * @param message - The message to check. * @returns Whether the message is a kernel message. */ const isKernelMessage = (message) => !(0, exports.isLoggerMessage)(message); exports.isKernelMessage = isKernelMessage; harden(exports.isKernelMessage); /** * Splits a stream into a kernel stream and a logger stream. * * @param stream - The stream to split. * @returns An object containing the kernel stream and the logger stream. */ const splitLoggerStream = (stream) => { const [kernelStream, loggerStream] = (0, streams_1.split)(stream, exports.isKernelMessage, exports.isLoggerMessage); return { kernelStream, loggerStream }; }; exports.splitLoggerStream = splitLoggerStream; harden(exports.splitLoggerStream); //# sourceMappingURL=stream.cjs.map