container.ts
Version:
Modular application framework
69 lines • 2.7 kB
JavaScript
;
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