You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 7-8.RSVP β†’
Socket
Socket
Sign inDemoInstall

not-a-log

Package Overview
Dependencies
0
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

not-a-log

A tiny (20-line) console interface that returns everything as a string


Version published
Weekly downloads
704
increased by113.98%
Maintainers
1
Created
Weekly downloads
Β 

Readme

Source

Not a log

A tiny (20-line) console interface that returns everything as a string

  • Have you ever ask yourself if you could get the string value from console.table rather then dumping it out to the terminal?
  • Have you thought about using columnify or table but didn't want to have a huge/large dependency to generate ascii tables?
  • Do you want any of the other tools available on the console, like console.time, console.group or console.count to also return stuff as a string?

Turns out that you can (Just in NodeJS) by constructing a new Console that redirects stdout/stderr to a node stream that you can then read from. This package will do just that. This wraps all the console methods in a Proxy, read everything that was dumped to the stream and return what it just spit out as a string.

So to live up to it's name it dose not log anything to the terminal, it simply returns everything as a string 😁

Examples

Get a list of people and output the result to a http request
import http from 'node:http'
import logger from 'not-a-log'

// an array of objects
function Person(firstName, lastName) {
  this.firstName = firstName
  this.lastName = lastName
}

http.createServer((req, res) => {
  const john = new Person('John', 'Smith')
  const jane = new Person('Jane', 'Doe')
  const emily = new Person('Emily', 'Jones')
  const str = logger.table([john, jane, emily])
  res.end(str)
  /* what gets written
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚ (index) β”‚ firstName β”‚ lastName β”‚
  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
  β”‚    0    β”‚  'John'   β”‚ 'Smith'  β”‚
  β”‚    1    β”‚  'Jane'   β”‚  'Doe'   β”‚
  β”‚    2    β”‚  'Emily'  β”‚ 'Jones'  β”‚
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  */
}).listen(3000)
Getting the time in MS from console.time
import logger from 'not-a-log'
import fetch from 'node-fetch'

logger.time('download')

const res = await fetch('https://httpbin.org/get')
const arrayBuffer = await res.arrayBuffer()

const time = logger.timeEnd('download').split(': ')[1]

console.log(`Time it took to fetch stuff from httpbin was ${time}`)
Other stuff
import logger from 'not-a-log'

const stackTrace = logger.trace('Houston, we got a problem')

const count = logger.count('Made a request')

let str = logger.group('Something')
str += logger.log('Nested deeply')
str += logger.info('below, under `Something`')
logger.groupEnd('Something')

// You get the idea now, every method in console
// now returns what you dumped out as a string.

FAQs

Package last updated on 06 Jun 2021

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚑️ by Socket Inc