@metamask/logger
Version:
A lightweight logging package using @metamask/streams
60 lines • 2.31 kB
JavaScript
;
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