stdopt
Wrap and validate optional values
Usage
This package provides wrappers to check inputs and provide fallbacks. There is a general opt
wrapper to check if a value is defined or not, as well as a handful of others for various primitives. The chained syntax is more verbose than the standard JS way (i.e. var str = opts.str || 'default'
), but it is more solid and predictable.
var opt = require('stdopt/opt')
opt('some data').value()
opt(null).or('other data').value()
opt(null).or(undefined).value()
var string = require('stdopt/string')
string('some text').value()
string(true).or('other text').value()
string(5).value()
var number = require('stdopt/number')
number(5).value()
number(true).or(7).value()
number('11').value()
var boolean = require('stdopt/boolean')
boolean(false).value()
boolean(null).or(true).value()
boolean('True').value()
boolean('fAlSe').value()
var hash = require('stdopt/hash')
hash({stuff: true}).value()
hash(true).or({other: false}).value()
hash([1, 2, 3]).value()
var list = require('stdopt/list')
list([1, 2, 3]).value()
list(true).or([4, 5, 6]).value()
list({0: 'stuff', length: 1}).value()
opt('some data').it().next()
string('some string').it().next()
number(5).it().next()
boolean(true).it().next()
hash({stuff: true}).it().next()
var it = list([1, 2]).it()
it.next()
it.next()
Custom
You can also create your own custom primitives, using the Base
class and a custom isValid
method.
var Base = require('stdopt/base')
var lowercase = Base.implement('lowercase string')
lowercase.isValid = function (value) {
return typeof value === 'string' && value.toLowerCase() === value
}
lowercase('oh.').value()
lowercase('AHA!').or('oh.').value()
lowercase('AHA!').value()
License
Apache-2.0