
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
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.
Unmiss uses ES6 Proxies to simulate method_missing, so it will run on node versions >= v6.4.0. It also supports most modern browsers.
npm install --save unmiss
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
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
FAQs
🔍 Ruby's method_missing implementation in modern javascript
The npm package unmiss receives a total of 2,766 weekly downloads. As such, unmiss popularity was classified as popular.
We found that unmiss demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

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.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.