UNPKG

@netlify/content-engine

Version:
52 lines 2.25 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.initializeIPCLogger = void 0; const index_1 = require("../../redux/index"); const constants_1 = require("../../constants"); const strip_ansi_1 = __importDefault(require("strip-ansi")); const lodash_clonedeep_1 = __importDefault(require("lodash.clonedeep")); const isStringPayload = (action) => typeof action.payload === `string`; /** * Payload can either be a String or an Object * See more at integration-tests/structured-logging/__tests__/to-do.js */ const sanitizeAction = (action) => { const copiedAction = (0, lodash_clonedeep_1.default)(action); if (isStringPayload(copiedAction)) { return copiedAction; } if (`text` in copiedAction.payload && copiedAction.payload.text) { copiedAction.payload.text = (0, strip_ansi_1.default)(copiedAction.payload.text); } if (`statusText` in copiedAction.payload && copiedAction.payload.statusText) { copiedAction.payload.statusText = (0, strip_ansi_1.default)(copiedAction.payload.statusText); } return copiedAction; }; const initializeIPCLogger = () => { (0, index_1.onLogAction)((action) => { if (!process.send) return; const sanitizedAction = sanitizeAction(action); // we mutate sanitizedAction but this is already deep copy of action so we should be good if (sanitizedAction.type === constants_1.Actions.Log) { // Don't emit Debug over IPC if ([constants_1.LogLevels.Debug].includes(sanitizedAction.payload.level)) { return; } // Override Success and Log types to Info over IPC if ([constants_1.LogLevels.Success, constants_1.LogLevels.Log].includes(sanitizedAction.payload.level)) { sanitizedAction.payload.level = constants_1.LogLevels.Info; } } process.send({ type: constants_1.Actions.LogAction, action: sanitizedAction, }); }); }; exports.initializeIPCLogger = initializeIPCLogger; //# sourceMappingURL=index.js.map