console-feed-modern
Version:
A React component that displays console logs from the current page, an iframe or transported across a server
70 lines • 8.9 kB
JavaScript
import { withTheme } from 'emotion-theming';
import * as React from 'react';
import { DOMInspector, Inspector, ObjectLabel, ObjectName, ObjectRootLabel, ObjectValue, ObjectPreview } from 'react-inspector';
import { Constructor, HTML, Root, Table } from './elements';
const CustomObjectLabel = ({ name, data, isNonenumerable = false }) => (React.createElement("span", null,
typeof name === 'string' ? (React.createElement(ObjectName, { name: name, dimmed: isNonenumerable })) : (React.createElement(ObjectPreview, { data: name })),
React.createElement("span", null, ": "),
React.createElement(ObjectValue, { object: data })));
class CustomInspector extends React.PureComponent {
render() {
const { data, theme } = this.props;
const { styles, method } = theme;
const dom = data instanceof HTMLElement;
const table = method === 'table';
return (React.createElement(Root, { "data-type": table ? 'table' : dom ? 'html' : 'object' }, table ? (React.createElement(Table, null,
React.createElement(Inspector, Object.assign({}, this.props, { theme: styles, table: true })),
React.createElement(Inspector, Object.assign({}, this.props, { theme: styles })))) : dom ? (React.createElement(HTML, null,
React.createElement(DOMInspector, Object.assign({}, this.props, { theme: styles })))) : (React.createElement(Inspector, Object.assign({}, this.props, { theme: styles, nodeRenderer: this.nodeRenderer.bind(this) })))));
}
getCustomNode(data) {
const { styles } = this.props.theme;
const constructor = data && data.constructor ? data.constructor.name : null;
if (data && data['$$'] !== undefined && data['$$']['type'] === 'PyProxy') {
return (React.createElement("span", { style: { fontStyle: 'italic' } },
"PyProxy ",
`{`,
React.createElement("span", { style: { color: 'rgb(79, 186, 240)' } }, data.toString()),
`}`));
}
if (data && data[Symbol.toStringTag] === 'Module') {
return (React.createElement("span", { style: { fontStyle: 'italic' } },
"Module ",
React.createElement(ObjectPreview, { data: data })));
}
if (constructor === 'Function')
return (React.createElement("span", { style: { fontStyle: 'italic' } },
React.createElement(ObjectPreview, { data: data }),
` {`,
React.createElement("span", { style: { color: 'rgb(181, 181, 181)' } }, data.body),
`}`));
if (constructor === 'Promise')
return (React.createElement("span", { style: { fontStyle: 'italic' } },
"Promise ",
`{`,
React.createElement("span", { style: { opacity: 0.6 } }, `<pending>`),
`}`));
if (data instanceof HTMLElement)
return (React.createElement(HTML, null,
React.createElement(DOMInspector, { data: data, theme: styles })));
return null;
}
nodeRenderer(props) {
let { depth, name, data, isNonenumerable } = props;
// Root
if (depth === 0) {
const customNode = this.getCustomNode(data);
return customNode || React.createElement(ObjectRootLabel, { name: name, data: data });
}
if (name === 'constructor')
return (React.createElement(Constructor, null,
React.createElement(ObjectLabel, { name: "<constructor>", data: data.name, isNonenumerable: isNonenumerable })));
const customNode = this.getCustomNode(data);
return customNode ? (React.createElement(Root, null,
React.createElement(ObjectName, { name: name }),
React.createElement("span", null, ": "),
customNode)) : (React.createElement(CustomObjectLabel, { name: name, data: data, isNonenumerable: isNonenumerable }));
}
}
export default withTheme(CustomInspector);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvQ29tcG9uZW50L3JlYWN0LWluc3BlY3Rvci9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzNDLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFBO0FBQzlCLE9BQU8sRUFDTCxZQUFZLEVBQ1osU0FBUyxFQUNULFdBQVcsRUFDWCxVQUFVLEVBQ1YsZUFBZSxFQUNmLFdBQVcsRUFDWCxhQUFhLEVBQ2QsTUFBTSxpQkFBaUIsQ0FBQTtBQUd4QixPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBTzNELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsZUFBZSxHQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUNyRTtJQUNHLE9BQU8sSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FDMUIsb0JBQUMsVUFBVSxJQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLGVBQWUsR0FBSSxDQUNwRCxDQUFDLENBQUMsQ0FBQyxDQUNGLG9CQUFDLGFBQWEsSUFBQyxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQzlCO0lBQ0QsdUNBQWU7SUFDZixvQkFBQyxXQUFXLElBQUMsTUFBTSxFQUFFLElBQUksR0FBSSxDQUN4QixDQUNSLENBQUE7QUFFRCxNQUFNLGVBQWdCLFNBQVEsS0FBSyxDQUFDLGFBQXlCO0lBQzNELE1BQU07UUFDSixNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUE7UUFDbEMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUE7UUFFaEMsTUFBTSxHQUFHLEdBQUcsSUFB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