UNPKG

console-feed-modern

Version:

A React component that displays console logs from the current page, an iframe or transported across a server

51 lines 4.32 kB
import * as React from 'react'; import { ThemeProvider } from 'emotion-theming'; import Styles from './theme/default'; import { Root } from './elements'; import Message from './Message'; // https://stackoverflow.com/a/48254637/4089357 const customStringify = function (v) { const cache = new Set(); return JSON.stringify(v, function (key, value) { if (typeof value === 'object' && value !== null) { if (cache.has(value)) { // Circular reference found, discard key return; } // Store value in our set cache.add(value); } return value; }); }; class Console extends React.PureComponent { constructor() { super(...arguments); this.theme = () => ({ variant: this.props.variant || 'light', styles: { ...Styles(this.props), ...this.props.styles } }); } render() { let { filter = [], logs = [], searchKeywords, logFilter } = this.props; const regex = new RegExp(searchKeywords); const filterFun = logFilter ? logFilter : log => regex.test(customStringify(log)); // @ts-ignore logs = logs.filter(filterFun); return (React.createElement(ThemeProvider, { theme: this.theme }, React.createElement(Root, null, logs.map((log, i) => { // If the filter is defined and doesn't include the method const filtered = filter.length !== 0 && log.method && filter.indexOf(log.method) === -1; return filtered ? null : (React.createElement(Message, { log: log, key: `${log.method}-${i}` })); })))); } } export default Console; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvQ29tcG9uZW50L2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQTtBQUM5QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFFL0MsT0FBTyxNQUFNLE1BQU0saUJBQWlCLENBQUE7QUFFcEMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNqQyxPQUFPLE9BQU8sTUFBTSxXQUFXLENBQUE7QUFFL0IsK0NBQStDO0FBQy9DLE1BQU0sZUFBZSxHQUFHLFVBQVMsQ0FBQztJQUNoQyxNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFBO0lBQ3ZCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsVUFBUyxHQUFHLEVBQUUsS0FBSztRQUMxQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFO1lBQy9DLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDcEIsd0NBQXdDO2dCQUN4QyxPQUFNO2FBQ1A7WUFDRCx5QkFBeUI7WUFDekIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtTQUNqQjtRQUNELE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUFFRCxNQUFNLE9BQVEsU0FBUSxLQUFLLENBQUMsYUFBeUI7SUFBckQ7O1FBQ0UsVUFBSyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDYixPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksT0FBTztZQUN0QyxNQUFNLEVBQUU7Z0JBQ04sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDckIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU07YUFDckI7U0FDRixDQUFDLENBQUE7SUFnQ0osQ0FBQztJQTlCQyxNQUFNO1FBQ0osSUFBSSxFQUFFLE1BQU0sR0FBRyxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQTtRQUV0RSxNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQTtRQUV4QyxNQUFNLFNBQVMsR0FBRyxTQUFTO1lBQ3pCLENBQUMsQ0FBQyxTQUFTO1lBQ1gsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUUzQyxhQUFhO1FBQ2IsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7UUFFN0IsT0FBTyxDQUNMLG9CQUFDLGFBQWEsSUFBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDOUIsb0JBQUMsSUFBSSxRQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ25CLDBEQUEwRDtnQkFDMUQsTUFBTSxRQUFRLEdBQ1osTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDO29CQUNuQixHQUFHLENBQUMsTUFBTTtvQkFDVixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtnQkFFbkMsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDdkIsb0JBQUMsT0FBTyxJQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsR0FBSSxDQUNqRCxDQUFBO1lBQ0gsQ0FBQyxDQUFDLENBQ0csQ0FDTyxDQUNqQixDQUFBO0lBQ0gsQ0FBQztDQUNGO0FBRUQsZUFBZSxPQUFPLENBQUEifQ==