UNPKG

@vtex/api

Version:
41 lines (40 loc) 1.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.logOnceToDevConsole = exports.log = exports.isLog = exports.LOG_ONCE = void 0; const cluster_1 = require("cluster"); const caches_1 = require("../../caches"); const history = new caches_1.LRUCache({ max: 42, }); exports.LOG_ONCE = 'logOnce'; const isLog = (message) => (message === null || message === void 0 ? void 0 : message.cmd) === exports.LOG_ONCE; exports.isLog = isLog; const log = (message, level) => { const logger = console[level]; if (typeof logger === 'function') { logger(message); } }; exports.log = log; // Since we are now using clusters, if we simply console.log something, // it may overwhelm the programmer's console with lots of repeated info. // This function should be used when you want to warn about something // only once const logOnceToDevConsole = (message, level) => { const strigified = JSON.stringify(message); if (!history.has(strigified)) { history.set(strigified, true); if (cluster_1.isMaster) { (0, exports.log)(message, level); } else if (cluster_1.isWorker && process.send) { const logMessage = { cmd: exports.LOG_ONCE, level, message, }; process.send(logMessage); } } }; exports.logOnceToDevConsole = logOnceToDevConsole;