UNPKG

console-feed-modern

Version:

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

64 lines 5.14 kB
import * as React from 'react'; import { ThemeProvider } from 'emotion-theming'; import { Message, Icon, Content } from './elements'; import Formatted from './message-parsers/Formatted'; import ObjectTree from './message-parsers/Object'; import ErrorPanel from './message-parsers/Error'; class ConsoleMessage extends React.PureComponent { constructor() { super(...arguments); this.theme = (theme) => ({ ...theme, method: this.props.log.method }); } render() { const { log } = this.props; return (React.createElement(ThemeProvider, { theme: this.theme }, React.createElement(Message, { "data-method": log.method }, React.createElement(Icon, null), React.createElement(Content, null, this.getNode())))); } getNode() { const { log } = this.props; // Error handling const error = this.typeCheck(log); if (error) return error; // Chrome formatting if (log.data.length > 0 && typeof log.data[0] === 'string' && log.data[0].indexOf('%') > -1) { return React.createElement(Formatted, { data: log.data }); } // Error panel if (log.data.every(message => typeof message === 'string') && log.method === 'error') { return React.createElement(ErrorPanel, { log: log }); } // Normal inspector const quoted = typeof log.data[0] !== 'string'; return React.createElement(ObjectTree, { log: log, quoted: quoted }); } typeCheck(log) { if (!log) { return (React.createElement(Formatted, { data: [ `%c[console-feed] %cFailed to parse message! %clog was typeof ${typeof log}, but it should've been a log object`, 'color: red', 'color: orange', 'color: cyan' ] })); } else if (!(log.data instanceof Array)) { return (React.createElement(Formatted, { data: [ '%c[console-feed] %cFailed to parse message! %clog.data was not an array!', 'color: red', 'color: orange', 'color: cyan' ] })); } return false; } } export default ConsoleMessage; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVzc2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Db21wb25lbnQvTWVzc2FnZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUE7QUFFOUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRS9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUVuRCxPQUFPLFNBQVMsTUFBTSw2QkFBNkIsQ0FBQTtBQUNuRCxPQUFPLFVBQVUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNqRCxPQUFPLFVBQVUsTUFBTSx5QkFBeUIsQ0FBQTtBQUVoRCxNQUFNLGNBQWUsU0FBUSxLQUFLLENBQUMsYUFBZ0M7SUFBbkU7O1FBQ0UsVUFBSyxHQUFHLENBQUMsS0FBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3pCLEdBQUcsS0FBSztZQUNSLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNO1NBQzlCLENBQUMsQ0FBQTtJQXFFSixDQUFDO0lBbkVDLE1BQU07UUFDSixNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQTtRQUMxQixPQUFPLENBQ0wsb0JBQUMsYUFBYSxJQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUM5QixvQkFBQyxPQUFPLG1CQUFjLEdBQUcsQ0FBQyxNQUFNO2dCQUM5QixvQkFBQyxJQUFJLE9BQUc7Z0JBQ1Isb0JBQUMsT0FBTyxRQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBVyxDQUMzQixDQUNJLENBQ2pCLENBQUE7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFBO1FBRTFCLGlCQUFpQjtRQUNqQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ2pDLElBQUksS0FBSztZQUFFLE9BQU8sS0FBSyxDQUFBO1FBRXZCLG9CQUFvQjtRQUNwQixJQUNFLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDbkIsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVE7WUFDL0IsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQzdCO1lBQ0EsT0FBTyxvQkFBQyxTQUFTLElBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEdBQUksQ0FBQTtTQUNyQztRQUVELGNBQWM7UUFDZCxJQUNFLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxPQUFPLEtBQUssUUFBUSxDQUFDO1lBQ3RELEdBQUcsQ0FBQyxNQUFNLEtBQUssT0FBTyxFQUN0QjtZQUNBLE9BQU8sb0JBQUMsVUFBVSxJQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUksQ0FBQTtTQUNoQztRQUVELG1CQUFtQjtRQUNuQixNQUFNLE1BQU0sR0FBRyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxDQUFBO1FBQzlDLE9BQU8sb0JBQUMsVUFBVSxJQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sR0FBSSxDQUFBO0lBQ2pELENBQUM7SUFFRCxTQUFTLENBQUMsR0FBUTtRQUNoQixJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsT0FBTyxDQUNMLG9CQUFDLFNBQVMsSUFDUixJQUFJLEVBQUU7b0JBQ0osZ0VBQWdFLE9BQU8sR0FBRyxzQ0FBc0M7b0JBQ2hILFlBQVk7b0JBQ1osZUFBZTtvQkFDZixhQUFhO2lCQUNkLEdBQ0QsQ0FDSCxDQUFBO1NBQ0Y7YUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxZQUFZLEtBQUssQ0FBQyxFQUFFO1lBQ3ZDLE9BQU8sQ0FDTCxvQkFBQyxTQUFTLElBQ1IsSUFBSSxFQUFFO29CQUNKLDBFQUEwRTtvQkFDMUUsWUFBWTtvQkFDWixlQUFlO29CQUNmLGFBQWE7aUJBQ2QsR0FDRCxDQUNILENBQUE7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztDQUNGO0FBRUQsZUFBZSxjQUFjLENBQUEifQ==