UNPKG

@testomatio/reporter

Version:
50 lines (49 loc) 1.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const util_1 = require("util"); const consoleLog = console.log; const consoleError = console.error; const formatArgs = args => util_1.format.apply(util_1.format, Array.prototype.slice.call(args)); class Output { constructor(opts = {}) { this.filterFn = opts.filterFn || (() => true); this.reset(); } reset() { this.log = []; this.stop(); // resotre console log if it was overridden } start() { const { filterFn } = this; const self = this; console.log = (...args) => { const obj = {}; Error.captureStackTrace(obj); const logString = formatArgs(args); if (filterFn(obj.stack)) { self.log.push(logString); } consoleLog(logString); }; console.error = (...args) => { const obj = {}; Error.captureStackTrace(obj); const logString = formatArgs(args); if (filterFn(obj.stack)) { self.log.push(logString); } consoleError(logString); }; } push(line) { this.log.push(line); } text() { return this.log.join('\n'); } stop() { console.log = consoleLog; console.error = consoleError; } } module.exports = Output;