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
JavaScript
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==