auto-bind-proxy
v1.0.1
Published
Get a proxy that automatically binds methods to their instance
Downloads
514
Maintainers
Readme
auto-bind-proxy
Get a proxy that automatically binds methods to their instance
Inspired by Sindre Sorhus's auto-bind
package, but instead of altering the target object, it returns an ES6 proxy that will automatically bind any accessed functions to the instance.
This package assumes the existence of some ES6 features such as Proxy, it works with Node 6+.
Installation
npm install auto-bind-proxy
var autoBind = require('auto-bind-proxy');
Example
const ab = require('auto-bind-proxy');
class Unicorn {
constructor(name) { this.name = name; }
message() { return `${this.name} is awesome!`; }
}
const unicorn = new Unicorn('Rainbow');
// Grab the method off the instance
// same as `message = unicorn.message.bind(unicorn)`
const message = ab(unicorn).message;
// Still bound to the instance
message();
// -> 'Rainbow is awesome!'
// Properties that are not functions are returned normally
ab(unicorn).name === unicorn.name;
// -> true
const foo = {
bar() { ... }
baz() { ... }
qux() { ... }
...
};
// Multiple methods can be retrieved
const { bar, baz, qux } = ab(foo);
API
autoBind(obj)
var autoBind = require('auto-bind-proxy');
obj
: a non-null object;returns a proxy that automatically binds retrieved methods to
obj
on access.
License
MIT