Package Exports
- function-accessor
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (function-accessor) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
function-accessor
Higher-Order accessor functions.
npm install function-accessor --saveYou can also use Duo, Bower or download the files manually.
npm stats
Usage
var accessor = require('function-accessor')Features
- Automatic method chaining on object setters.
- Initial (default) value support.
- Input validation on setters.
- Read-only getter support.
API
accessor()
var assert = require('assert')
var latitude = accessor()
latitude(32.7229)
assert.equal(latitude(), 32.7229)
//=> undefined
latitude(45.49428)
assert.equal(latitude(), 45.49428)
//=> undefinedaccessor({ init: … })
var assert = require('assert')
var latitude = accessor({
init: 32.7229
})
assert.equal(latitude(), 32.7229)
//=> undefined
latitude(45.49428)
assert.equal(latitude(), 45.49428)
//=> undefinedaccessor({ check: Function })
var assert = require('assert')
var isNumber = require('util').isNumber
var latitude = accessor({
check: isNumber
})
latitude(45.49428)
assert.equal(latitude(), 45.49428)
//=> undefined
latitude('this is not a number!!')
//=> RangeErroraccessor({ check: RegExp })
var assert = require('assert')
var pin = accessor({
check: /^\d{4}$/
})
latitude(1234)
assert.equal(pin(), 1234)
//=> undefined
pin('123')
//=> RangeErroraccessor({ readonly: true })
var latitude = accessor({
init: 32.7229,
readonly: true
})
assert.equal(latitude(), 32.7229)
//=> undefined
latitude(45.49428)
//=> TypeErroraccessor({ self: this })
var assert = require('assert')
var address = {
street: accessor({
self: address
}),
city: accessor({
self: address
}),
state: accessor({
self: address
}),
zip: accessor({
self: address
}),
country: accessor({
self: address
})
}
address
.street('200 E Main Street')
.city('Phoenix')
.state('AZ')
.zip('85123')
.country('USA')
assert.equal(address.country(), 'USA')
//=> undefinedContributing
SEE: contributing.md