vtils
Version:
一个面向业务的 JavaScript/TypeScript 实用程序库。
64 lines (63 loc) • 1.87 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
exports.__esModule = true;
exports.default = void 0;
var _locale = require("./locale");
var _mixed = _interopRequireDefault(require("./mixed"));
var _inherits = _interopRequireDefault(require("./util/inherits"));
var _isAbsent = _interopRequireDefault(require("./util/isAbsent"));
var _default = exports.default = BooleanSchema;
function BooleanSchema(payload) {
var _this = this;
if (!(this instanceof BooleanSchema)) return typeof payload === 'function' ? payload(new BooleanSchema()) : new BooleanSchema();
_mixed.default.call(this, {
type: 'boolean'
});
this.withMutation(function () {
_this.transform(function (value) {
if (!this.isType(value)) {
if (/^(true|1)$/i.test(value)) return true;
if (/^(false|0)$/i.test(value)) return false;
}
return value;
});
});
}
(0, _inherits.default)(BooleanSchema, _mixed.default, {
_typeCheck: function _typeCheck(v) {
if (v instanceof Boolean) v = v.valueOf();
return typeof v === 'boolean';
},
isTrue: function isTrue(message) {
if (message === void 0) {
message = _locale.boolean.isValue;
}
return this.test({
message: message,
name: 'is-value',
exclusive: true,
params: {
value: 'true'
},
test: function test(value) {
return (0, _isAbsent.default)(value) || value === true;
}
});
},
isFalse: function isFalse(message) {
if (message === void 0) {
message = _locale.boolean.isValue;
}
return this.test({
message: message,
name: 'is-value',
exclusive: true,
params: {
value: 'false'
},
test: function test(value) {
return (0, _isAbsent.default)(value) || value === false;
}
});
}
});