ajt-validator
Version:
Validation library for JavaScript and TypeScript
30 lines (29 loc) • 1.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.NameValidator = void 0;
const base_1 = require("../base");
class NameValidator extends base_1.BaseValidator {
constructor(options = {}) {
super();
this.options = Object.assign({ minLength: 2, maxLength: 50, allowSpecialChars: false }, options);
}
validate(name) {
if (!name) {
return this.createError('NAME_REQUIRED', 'Name is required');
}
if (name.length < this.options.minLength) {
return this.createError('NAME_TOO_SHORT', `Name must be at least ${this.options.minLength} characters`);
}
if (name.length > this.options.maxLength) {
return this.createError('NAME_TOO_LONG', `Name must not exceed ${this.options.maxLength} characters`);
}
const namePattern = this.options.allowSpecialChars
? /^[a-zA-Z\s'-]+$/
: /^[a-zA-Z\s]+$/;
if (!namePattern.test(name)) {
return this.createError('INVALID_NAME_FORMAT', 'Name contains invalid characters');
}
return this.createSuccess(name.trim());
}
}
exports.NameValidator = NameValidator;