UNPKG

vtils

Version:

一个面向业务的 JavaScript/TypeScript 实用程序库。

59 lines 1.57 kB
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; } }); } });