stdopt
Wrap and validate optional values
Usage
This package provides wrappers to check inputs and provide fallbacks. There is a general some
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 { some } = require('stdopt')
some('some data').value()
some(null).or('other data').value()
some(null).or(undefined).value()
var { string } = require('stdopt')
string('some text').value()
string(true).or('other text').value()
string(5).value()
var { number } = require('stdopt')
number(5).value()
number(true).or(7).value()
number('11').value()
var { boolean } = require('stdopt')
boolean(false).value()
boolean(null).or(true).value()
boolean('True').value()
boolean('fAlSe').value()
var { hash } = require('stdopt')
hash({stuff: true}).value()
hash(true).or({other: false}).value()
hash([1, 2, 3]).value()
var { list } = require('stdopt')
list([1, 2, 3]).value()
list('one').value()
list(null).or([4, 5, 6]).value()
list({0: 'stuff', length: 1}).value()
Custom
You can also create your own custom primitives, by using the Opt
class and defining a custom static parse
method.
var Opt = require('stdopt')
function lowercase (value) {
if (!(this instanceof lowercase)) {
return new lowercase(value)
}
Opt.call(this, value)
}
lowercase.parse = function (value) {
if (typeof value === 'string' && value.toLowerCase() === value) {
return value.toLowerCase()
}
}
lowercase('oh.').value()
lowercase('AHA!').or('oh.').value()
lowercase('AHA!').value()
License
Apache-2.0