UNPKG

container.ts

Version:
69 lines 2.7 kB
"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); Object.defineProperty(exports, "__esModule", { value: true }); var validator_1 = require("validator"); var field_1 = require("../field"); var validate_1 = require("../validate"); /** Wrapper for validator methods isLength, isUppercase, isLowercase and isIn. */ function isString(value, options) { if (value === void 0) { value = ""; } if (options === void 0) { options = {}; } var uppercase = !!options.uppercase; var lowercase = !!options.lowercase; var values = options.values || []; // If minimum length is undefined, default to 1. // Passing undefined minimum causes empty strings to pass validation. if (options.min == null) { options.min = 1; } try { // Validate is string of length. var isValid = validator_1.default.isLength(value, { min: options.min, max: options.max }); // Check in values array if provided. if (values.length > 0) { isValid = isValid && validator_1.default.isIn(value, values); } // Check if uppercase/lowercase if required. if (uppercase && !validator_1.default.isUppercase(value)) { isValid = false; } if (lowercase && !validator_1.default.isLowercase(value)) { isValid = false; } if (isValid !== true) { throw new validate_1.ValidateError(validate_1.EValidateError.IsStringError, value); } return value; } catch (error) { throw new validate_1.ValidateError(validate_1.EValidateError.IsStringError, value, error); } } exports.isString = isString; var StringField = /** @class */ (function (_super) { __extends(StringField, _super); function StringField(options) { if (options === void 0) { options = {}; } var _this = _super.call(this) || this; _this.options = options; return _this; } StringField.prototype.validate = function (value) { return isString(value, this.options); }; return StringField; }(field_1.Field)); exports.StringField = StringField; //# sourceMappingURL=is-string.js.map