Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | 2x 1x 1x 1x 1x 2x 2x 3x 4x 4x | import { boolean as locale } from './locale'
import MixedSchema from './mixed'
import inherits from './util/inherits'
import isAbsent from './util/isAbsent'
export default BooleanSchema
function BooleanSchema(payload) {
if (!(this instanceof BooleanSchema))
return typeof payload === 'function'
? payload(new BooleanSchema())
: new BooleanSchema()
MixedSchema.call(this, { type: 'boolean' })
this.withMutation(() => {
this.transform(function (value) {
Iif (!this.isType(value)) {
if (/^(true|1)$/i.test(value)) return true
if (/^(false|0)$/i.test(value)) return false
}
return value
})
})
}
inherits(BooleanSchema, MixedSchema, {
_typeCheck(v) {
Iif (v instanceof Boolean) v = v.valueOf()
return typeof v === 'boolean'
},
isTrue(message = locale.isValue) {
return this.test({
message,
name: 'is-value',
exclusive: true,
params: { value: 'true' },
test(value) {
return isAbsent(value) || value === true
},
})
},
isFalse(message = locale.isValue) {
return this.test({
message,
name: 'is-value',
exclusive: true,
params: { value: 'false' },
test(value) {
return isAbsent(value) || value === false
},
})
},
})
|