@netlify/content-engine
Version:
52 lines • 2.25 kB
JavaScript
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
;