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

errup

v0.2.3

Published

Simple error handling helper.

Downloads

3

Readme

errup - magick error handling for node.js

All hates "callback hell" in node.js. With this module you doesn't need check 'err' every callback. Callback error will be checked automaticly and will be rised if it needed.

Old style(without errup)

function readDirectoryAsync (path, callback) {
    fs.readdir(path, function(err, filenames){
        if (err) {
            callback(err);
            return;
        }
        // do something there
        console.log('Success');
        callback(null, filenames);
    });
}

New style - with errup (JavaScript)

errUp = require('errup');
function readDirectoryAsync (path, callback) {
    fs.readdir(path, errUp(function(filenames){
        // Error check and rise to callback automaticly in errUp on error.
        // This code is called only when no error given.
        // do something there
        console.log('Success');
        callback(null, filenames);
    }));
}

// express sample
app.get("/", function(req, res, next){
    readDirectoryAsync(__dirname, errUp(function(filenames){ // error will be raised and called next(err) on error
        res.send(filenames);
    }));
});

With CoffeeScript

errUp = require 'errup'
app.get "/", (req, res, next) ->
    readDirectoryAsync __dirname, errUp (filenames) ->
        res.send filenames

Can also set error handler callback

May be need if last function in stack is not errUp(eg closure, or other)

app.get "/", (req, res, next) ->
    do () ->
        anyAsyncFunc errUp next, (ret) ->
            res.send ret

anyAsyncFunc = (callback) ->
    fs.readdir __dirname, (err, dir) ->
        if err? return callback(null, []) # skip error
        async.map dir, errUp callback, (stat) ->
            return next null, stat
        , errUp callback, (statResult) ->
            // .. do something with statResult
            callback null, statResult

Can also catch some errors

LockError = (@message) ->
    @name = "LockError"
LockError:: = Error::

readDirAsync = (callback) ->
    fs.readdir __dirname, errUp (dir) ->
        for path in dir
            if path is "lock"
                return callnack new LockError("lock was found")
        callback null, dir

readStatus = (callback) ->
    fs.readFile "status", errUp (data) ->
        if data.langth > 1000000
            return callback "many"
        return callback null, data


readDirAsync errUp (dir) ->
    # error "many" will raised, and can be catched
    readStatus errUp (status) ->
        console.log(dir, status)
, [LockError, 'many'], (err) ->
    if err is 'many'
        console.warn "Panic! Get many."
    else
        console.warn "Lock found.. Delete it."
        fs.unlink "lock"