You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
1.7 KiB
94 lines
1.7 KiB
|
|
# 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
|
|
|