vtils
Version:
一个面向业务的 JavaScript/TypeScript 实用程序库。
59 lines • 1.57 kB
JavaScript
import { boolean as locale } from "./locale.js";
import MixedSchema from "./mixed.js";
import inherits from "./util/inherits.js";
import isAbsent from "./util/isAbsent.js";
export default BooleanSchema;
function BooleanSchema(payload) {
var _this = this;
if (!(this instanceof BooleanSchema)) return typeof payload === 'function' ? payload(new BooleanSchema()) : new BooleanSchema();
MixedSchema.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;
});
});
}
inherits(BooleanSchema, MixedSchema, {
_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.isValue;
}
return this.test({
message: message,
name: 'is-value',
exclusive: true,
params: {
value: 'true'
},
test: function test(value) {
return isAbsent(value) || value === true;
}
});
},
isFalse: function isFalse(message) {
if (message === void 0) {
message = locale.isValue;
}
return this.test({
message: message,
name: 'is-value',
exclusive: true,
params: {
value: 'false'
},
test: function test(value) {
return isAbsent(value) || value === false;
}
});
}
});