
Research
NPM targeted by malware campaign mimicking familiar library names
Socket uncovered npm malware campaign mimicking popular Node.js libraries and packages from other ecosystems; packages steal data and execute remote code.
@bigbinary/console-feed
Advanced tools
A React component that displays console logs from the current page, an iframe or transported across a server
[!NOTE] This is a fork of the original console-feed packages. Here are the changes we made from the original package:
- Changed display of Promise from
Promise <Pending>
toPromise {}
- Added support for
console.dir
logs.- Improved display of console.table to match the response from browser dev tools.
A React component that displays console logs from the current page, an iframe or transported across a server.
console-feed
https://github.com/liriliri/chii supports the embedding the entire Chrome devtools.
https://github.com/tachibana-shin/vue-console-feed is a fork for Vue.JS
console.table
- view your logs in a table formatconsole.time
- view the time in milliseconds it takes to complete eventsconsole.assert
- assert that a statement is truthyconsole.count
- count how many times something occursyarn add @bigbinary/console-feed
# or
npm install @bigbinary/console-feed
import React from 'react'
import { Hook, Console, Decode } from 'console-feed'
class App extends React.Component {
state = {
logs: [],
}
componentDidMount() {
Hook(window.console, (log) => {
this.setState(({ logs }) => ({ logs: [...logs, Decode(log)] }))
})
console.log(`Hello world!`)
}
render() {
return (
<div style={{ backgroundColor: '#242424' }}>
<Console logs={this.state.logs} variant="dark" />
</div>
)
}
}
OR with hooks:
import React, { useState, useEffect } from 'react'
import { Console, Hook, Unhook } from 'console-feed'
const LogsContainer = () => {
const [logs, setLogs] = useState([])
// run once!
useEffect(() => {
const hookedConsole = Hook(
window.console,
(log) => setLogs((currLogs) => [...currLogs, log]),
false
)
return () => Unhook(hookedConsole)
}, [])
return <Console logs={logs} variant="dark" />
}
export { LogsContainer }
<Console />
componentlogs: Log[]
An array consisting of Log objects. Required
filter?: Methods[]
Filter the logs, only displaying messages of certain methods.
variant?: 'light' | 'dark'
Sets the font color for the component. Default - light
styles?: Styles
Defines the custom styles to use on the component - see Styles.d.ts
searchKeywords?: string
A string value to filter logs
logFilter?: Function
If you want to use a custom log filter function, you can provide your own implementation
Each log has a method assigned to it. The method is used to determine the style of the message and for the filter
prop.
type Methods =
| 'log'
| 'debug'
| 'info'
| 'warn'
| 'error'
| 'table'
| 'clear'
| 'time'
| 'timeEnd'
| 'count'
| 'assert'
Log
objectA log object consists of the following:
type Logs = Log[]
interface Log {
// The log method
method: Methods
// The arguments passed to console API
data: any[]
}
By default when you use the Hook()
API, logs are serialized so that they will safely work with JSON.stringify
. In order to restore a log back to format compatible with the <Console />
component, you need to call the Decode()
method.
If the Hook
function and the <Console />
component are on the same origin, you can disable serialization to increase performance.
Hook(
window.console,
(log) => {
this.setState(({ logs }) => ({ logs: [...logs, log] }))
},
false
)
You can limit the number of keys/elements included when serializing objects/arrays.
Hook(
window.console,
(log) => {
this.setState(({ logs }) => ({ logs: [...logs, log] }))
},
true,
100 // limit to 100 keys/elements
)
To run console-feed
locally, simply run:
yarn
yarn start
yarn test:watch
Head over to http://localhost:3000
in your browser, and you'll see the demo page come up. After you make changes you'll need to reload, but the jest tests will automatically restart.
FAQs
A React component that displays console logs from the current page, an iframe or transported across a server
We found that @bigbinary/console-feed demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Socket uncovered npm malware campaign mimicking popular Node.js libraries and packages from other ecosystems; packages steal data and execute remote code.
Research
Socket's research uncovers three dangerous Go modules that contain obfuscated disk-wiping malware, threatening complete data loss.
Research
Socket uncovers malicious packages on PyPI using Gmail's SMTP protocol for command and control (C2) to exfiltrate data and execute commands.