UNPKG

logpipes

Version:

Console.log transformation pipes

52 lines 2.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createLogMessageFilterPipe = exports.getLogMessageFilterPipeOptions = void 0; /** Returns default LogMessageFilterPipeOptions. */ function getLogMessageFilterPipeOptions() { return { isCaseSensitive: false, excludedMessageTokens: [], }; } exports.getLogMessageFilterPipeOptions = getLogMessageFilterPipeOptions; /** Creates a new instance of LogMessageFilterPipe. */ function createLogMessageFilterPipe(inputOptions) { const { excludedMessageTokens, isCaseSensitive } = Object.assign(Object.assign({}, getLogMessageFilterPipeOptions()), inputOptions); const stringTokens = excludedMessageTokens.filter(t => typeof t === 'string').map(t => isCaseSensitive ? t : t.toLowerCase()); const regexTokens = excludedMessageTokens.filter(t => typeof t === 'object'); // Move strings first in the list. excludedMessageTokens.sort((t1, t2) => typeof t1 === typeof t2 ? 0 : typeof t1 === 'string' ? -1 : 1); return (_, ...args) => { if (excludedMessageTokens.length === 0) { return args; } if (isCaseSensitive) { for (const arg of args) { if (typeof arg === 'string') { if (stringTokens.some(token => arg.includes(token))) { return []; } if (regexTokens.some(t => t.test(arg))) { return []; } } } } else { // Case-insensitive. for (const arg of args) { if (typeof arg === 'string') { const lcArg = arg.toLowerCase(); if (stringTokens.some(lcToken => lcArg.includes(lcToken))) { return []; } if (regexTokens.some(t => t.test(arg))) { return []; } } } } return args; }; } exports.createLogMessageFilterPipe = createLogMessageFilterPipe; //# sourceMappingURL=LogMessageFilterPipe.js.map