UNPKG

log-vault

Version:

A generator of Winston logger instance with pre-defined configurable transports and formats and extra functionality.

38 lines (37 loc) 1.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.formatMaskFields = void 0; const winston_1 = require("winston"); const __1 = require(".."); const obj_walker_1 = require("obj-walker"); const defaults_1 = require("../defaults"); exports.formatMaskFields = (0, winston_1.format)((info, opts) => { const { message, extra, error } = info; const { fields, maskLabel } = opts; if (fields === null || fields === void 0 ? void 0 : fields.length) { if (message) { mask(message); info[__1.MESSAGE] = message; } if (extra) mask(extra); if (error) mask(error); } return info; function mask(data) { return (0, obj_walker_1.map)(data, ({ key, val }) => { if (key && fields.includes(key)) val = maskLabel || defaults_1.defaultMaskFieldsOptions.maskLabel; if (typeof val === "string") { try { const parsed = JSON.parse(val); val = JSON.stringify(mask(parsed)); // eslint-disable-next-line no-empty } catch (error) { } } return val; }, { modifyInPlace: true }); } });