npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

logsy

v1.0.0-alpha

Published

Proxy based logger

Downloads

4

Readme

logsy

Build Status

Proxy factory for the console using ES6 Proxies (node + browser)

Quickstart

Install the package

npm install logsy

Import the package

import logsy from 'logsy'

logsy is a console log proxy, you can use it simply like this

logsy.log('Hello!')

Create a custom proxy using the factory function

const cool = logsy('[COOL]')

cool.log('<- was it?')
// [COOL] <- was it?

Checkout the possible options when creating your proxy

Options

interface Options {
  active?: (() => Boolean) | Boolean
  prefix?: (() => string) | string
  callback?: Callback
}

Options are pretty self explanatory.

const log = logsy({
  active: process.env.DISPLAY_LOG,
  prefix: `[MY LOG]`
  callback () {
    axios.post('/logger', { ...opts })
  }
})

Function resolving

Not covered yet

For each of them you can pass a function that will be interpreted at the moment it is called. For example:

let showLogs = true

const active = () => showLogs
const log = logsy({ active }).log

log('I am logged')

showLogs = false

log('I am not logged')

Type resolving

You can also pass values directly (for active, prefix and callback) and will be resolved based on its type

const error = logsy(process.env.DISPLAY_ERROR).error
const log = logsy(process.env.DISPLAY_LOG).log

Function resolving also works here if the function returns the good type

const log = logsy(() => true)

Chain proxies

You can chain the proxies, while using type resolving. If there is a property conflict, the last one will take over the firsts.

const log = logsy(proces.env.DISPLAY_ERROR)('[MY PREFIX]')

Compatibility

Logsy is built on top of Proxy object which is not available everywhere (browser compatibility) For the sake of keeping the library lightweight, it will be shipped without any polyfill by default. If Proxies aren't available, it will be redirected to the console object.

Drawbacks

While most console wrappers will mess with the call stack, using a Proxy allow logsy to keep line numbers and call stack untouched in your terminal / dev tools.

One major drawback is that to keep it like this, we can't proxy the apply on console methods, calling it would mess that up. Because of this, at the moment, information such as the parameters aren't available in the callback.