UNPKG

page-with

Version:

A library for usage example-driven in-browser testing of your own libraries.

29 lines (28 loc) 1.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.spyOnConsole = void 0; const createLogger_1 = require("../internal/createLogger"); const log = (0, createLogger_1.createLogger)('consoleSpy'); function removeConsoleStyles(message) { return message.replace(/\(*(%s|%c|color:\S+)\)*\s*/g, '').trim(); } function spyOnConsole(page) { const messages = new Map(); messages.set('raw', new Map()); log('created a page console spy!'); page.on('console', (message) => { var _a, _b; const messageType = message.type(); const text = message.text(); const textWithoutStyles = removeConsoleStyles(message.text()); log('[%s] %s', messageType, text); // Preserve raw console messages. const prevRawMessages = ((_a = messages.get('raw')) === null || _a === void 0 ? void 0 : _a.get(messageType)) || []; (_b = messages.get('raw')) === null || _b === void 0 ? void 0 : _b.set(messageType, prevRawMessages.concat(text)); // Store formatted console messages (without style positionals). const prevMessages = messages.get(messageType) || []; messages.set(messageType, prevMessages.concat(textWithoutStyles)); }); return messages; } exports.spyOnConsole = spyOnConsole;