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 ๐Ÿ™

ยฉ 2025 โ€“ย Pkg Stats / Ryan Hefner

unmiss

v1.0.10

Published

๐Ÿ” Ruby's method_missing implementation in modern javascript

Readme

Unmiss ๐Ÿ”

Unmiss is a Ruby's method_missing implementation you can use in your javascript classes. Basically, it is a method that is called when no matching method is found. It gives you a way to intercept unanswerable messages and handle them gracefully. Learn more about method_missing here.

Build Status npm bundle size npm

Requirements

Unmiss uses ES6 Proxies to simulate method_missing, so it will run on node versions >= v6.4.0. It also supports most modern browsers.

Installation

npm install --save unmiss

Usage and Examples

There are multiple ways to use Unmiss: Using class inheritance, by calling a high order function, using decorators, or wrapping an existing instance. Whichever way you prefer, add to your class a methodMissing method to generate an awesome safety net method.

Using a high order function:

import { withMethodMissing } from 'unmiss'

class Example {
    methodMissing(name, ...args) {
        console.log(`Method ${name} was called with arguments: ${args.join(' ')}`);
    }
}

const instance = new withMethodMissing(Example);
instance.what('is', 'this');
> Method what was called with arguments: is this

Using a modern javascript decorator:

import { withMethodMissing } from 'unmiss'

@withMethodMissing
class Example {
    methodMissing(name, ...args) {
        console.log(`Method ${name} was called with arguments: ${args.join(' ')}`);
    }
}

const instance = new Example();
instance.what('is', 'this');
> Method what was called with arguments: is this

Using ES6 classical inheritance:

import { MethodMissingClass } from 'unmiss'

class Example extends MethodMissingClass {
    methodMissing(name, ...args) {
        console.log(`Method ${name} was called with arguments: ${args.join(' ')}`);
    }
}

const instance = new Example();
instance.what('is', 'this');
> Method what was called with arguments: is this

ALERT: If you choose to use the inheritance way, take into account that if you want to use a constructor in your class, you will have to call super() first.

Wrapping an existing instance of a class:

import { addMethodMissing } from 'unmiss'

class Example {
    methodMissing(name, ...args) {
        console.log(`Method ${name} was called with arguments: ${args.join(' ')}`);
    }
}

const instance = addMethodMissing(new Example());
instance.what('is', 'this');
> Method what was called with arguments: is this

Contributing

Feel free to submit any issues and PRs you want. To run the project first install its dependencies:

npm install

Then build it and test it:

npm run build && npm run test