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 🙏

© 2024 – Pkg Stats / Ryan Hefner

lawgr

v0.1.2

Published

Simple JavaScript logging library.

Downloads

3

Readme

Build Status npm Version Nuget Version lawgr

Simple JavaScript logging library. Supports logging to local console as well as a remote endpoint.

Usage

Configuration

Lawgr has the concept of logging targets. A target being a function which will be called when any of the logging functions are called. The default configuration includes a target called local, which renders messages in the local console.

A remote target is also available for sending log messages to a remote endpoint. To make use of it you can reconfigure the targets property as follows:

log.config.targets = [ log.defaults.targets.local, log.defaults.targets.remote ];

The log.defaults.targets.remote target will post log messages to /logs/ with a body like this:

{
	level: "error",
	message: "Oh noes!",
	sender: "some-app",
	stack: [{
		context: [
			"var someFuncName = function() {",
			"    throw new Error('Oh Noes');",
			"};"
		],
		func: "someFuncName",
		line: 2,
		column: 12,
		url: "http://blah.com/scripts/lib.js"
    }],
	url: "/"
	useragent: "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36"
}

The sender property is configured as follows:

log.config.sender = 'some-app';

The stack property is only included if available. Stack traces are obtained through TraceKit.

You can also implement your own target(s) by providing a function with the following signature:

function (level, message, stack)

level will be one of debug, info, warning, error or critical. message is the log message. stack corresponds to the stack property in the example above.

Logging

The API for logging messages is simple:

log.debug('This is a debug thing');
log.info('This is an informational thing');
log.warning('This is a warning thing');
log.error('This is an error thing');
log.critical('This is a critical thing');

Unhandled errors (window.onerror) are automatically caught and logged as an error. However, once an error hits window.onerror, the stack trace is limited to a single frame. For better stack traces, use try-catch blocks withing your code:

try {
	something();
catch (e) {
	log.error(e);
}

When throwing errors, create an instance of Error rather than using a string:

throw new Error('Oh noes!');

Installation

Bower

bower install lawgr

npm npm Version npm Downloads

npm install lawgr

NuGet Nuget Version Nuget Downloads

Install-Package lawgr.js

Publishing

Prior to publishing a new version of the package, you must run the following commands to configure your NuGet and npm credentials. You should only need to do this once.

npm adduser
grunt nugetkey --key=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

Once you have entered your credentials, you can publish to npm and NuGet by running one of the following tasks:

grunt publish

Increments patch version in package.json, publishes to npm and NuGet. This is short-hand for grunt publish:patch.

grunt publish:minor

As before, but bumps minor version.

grunt publish:major

As before, but bumps major version.

The publish task will create an appropriate semver tag which Bower will detect as a new version.