validatable
Version:
A library for synchronous and asynchronous input validation.
23 lines (22 loc) • 855 B
JavaScript
;
exports.__esModule = true;
var typeable_1 = require("typeable");
function stringLength(value, recipe) {
if (recipe === void 0) { recipe = {}; }
if (!typeable_1.isString(value))
return false;
var _a = recipe.bytes, bytes = _a === void 0 ? false : _a, min = recipe.min, minOrEqual = recipe.minOrEqual, max = recipe.max, maxOrEqual = recipe.maxOrEqual;
var len = bytes
? encodeURI(value).split(/%..|./).length - 1
: value.length;
if (typeable_1.isNumber(min) && !(len > min))
return false;
if (typeable_1.isNumber(minOrEqual) && !(len >= minOrEqual))
return false;
if (typeable_1.isNumber(max) && !(len < max))
return false;
if (typeable_1.isNumber(maxOrEqual) && !(len <= maxOrEqual))
return false;
return true;
}
exports.stringLength = stringLength;