78 lines
1.6 KiB
JavaScript
78 lines
1.6 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.create = create;
|
|
exports.default = void 0;
|
|
|
|
var _schema = _interopRequireDefault(require("./schema"));
|
|
|
|
var _locale = require("./locale");
|
|
|
|
var _isAbsent = _interopRequireDefault(require("./util/isAbsent"));
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
|
|
function create() {
|
|
return new BooleanSchema();
|
|
}
|
|
|
|
class BooleanSchema extends _schema.default {
|
|
constructor() {
|
|
super({
|
|
type: 'boolean'
|
|
});
|
|
this.withMutation(() => {
|
|
this.transform(function (value) {
|
|
if (!this.isType(value)) {
|
|
if (/^(true|1)$/i.test(String(value))) return true;
|
|
if (/^(false|0)$/i.test(String(value))) return false;
|
|
}
|
|
|
|
return value;
|
|
});
|
|
});
|
|
}
|
|
|
|
_typeCheck(v) {
|
|
if (v instanceof Boolean) v = v.valueOf();
|
|
return typeof v === 'boolean';
|
|
}
|
|
|
|
isTrue(message = _locale.boolean.isValue) {
|
|
return this.test({
|
|
message,
|
|
name: 'is-value',
|
|
exclusive: true,
|
|
params: {
|
|
value: 'true'
|
|
},
|
|
|
|
test(value) {
|
|
return (0, _isAbsent.default)(value) || value === true;
|
|
}
|
|
|
|
});
|
|
}
|
|
|
|
isFalse(message = _locale.boolean.isValue) {
|
|
return this.test({
|
|
message,
|
|
name: 'is-value',
|
|
exclusive: true,
|
|
params: {
|
|
value: 'false'
|
|
},
|
|
|
|
test(value) {
|
|
return (0, _isAbsent.default)(value) || value === false;
|
|
}
|
|
|
|
});
|
|
}
|
|
|
|
}
|
|
|
|
exports.default = BooleanSchema;
|
|
create.prototype = BooleanSchema.prototype; |