Node method and accessor delegation utilty.
$ npm install delegates
var delegate = require('delegates');
...
delegate(proto, 'request')
.method('acceptsLanguages')
.method('acceptsEncodings')
.method('acceptsCharsets')
.method('accepts')
.method('is')
.access('querystring')
.access('idempotent')
.access('socket')
.access('length')
.access('query')
.access('search')
.access('status')
.access('method')
.access('path')
.access('body')
.access('host')
.access('url')
.getter('subdomains')
.getter('protocol')
.getter('header')
.getter('stale')
.getter('fresh')
.getter('secure')
.getter('ips')
.getter('ip')
Creates a delegator instance used to configure using the prop
on the given
proto
object. (which is usually a prototype)
Allows the given method name
to be accessed on the host.
Creates a "getter" for the property with the given name
on the delegated
object.
Creates a "setter" for the property with the given name
on the delegated
object.
Creates an "accessor" (ie: both getter and setter) for the property with the
given name
on the delegated object.
A unique type of "accessor" that works for a "fluent" API. When called as a getter, the method returns the expected value. However, if the method is called with a value, it will return itself so it can be chained. For example:
delegate(proto, 'request')
.fluent('query')
// getter
var q = request.query();
// setter (chainable)
request
.query({ a: 1 })
.query({ b: 2 });
MIT
# delegates Node method and accessor delegation utilty. ## Installation ``` $ npm install delegates ``` ## Example ```js var delegate = require('delegates'); ... delegate(proto, 'request') .method('acceptsLanguages') .method('acceptsEncodings') .method('acceptsCharsets') .method('accepts') .method('is') .access('querystring') .access('idempotent') .access('socket') .access('length') .access('query') .access('search') .access('status') .access('method') .access('path') .access('body') .access('host') .access('url') .getter('subdomains') .getter('protocol') .getter('header') .getter('stale') .getter('fresh') .getter('secure') .getter('ips') .getter('ip') ``` # API ## Delegate(proto, prop) Creates a delegator instance used to configure using the `prop` on the given `proto` object. (which is usually a prototype) ## Delegate#method(name) Allows the given method `name` to be accessed on the host. ## Delegate#getter(name) Creates a "getter" for the property with the given `name` on the delegated object. ## Delegate#setter(name) Creates a "setter" for the property with the given `name` on the delegated object. ## Delegate#access(name) Creates an "accessor" (ie: both getter *and* setter) for the property with the given `name` on the delegated object. ## Delegate#fluent(name) A unique type of "accessor" that works for a "fluent" API. When called as a getter, the method returns the expected value. However, if the method is called with a value, it will return itself so it can be chained. For example: ```js delegate(proto, 'request') .fluent('query') // getter var q = request.query(); // setter (chainable) request .query({ a: 1 }) .query({ b: 2 }); ``` # License MIT