nowjs-core
Version:
NowCanDo Javascript Core [nowjs-core] is a library written by TypeScript code maintains under Apache 2.0 licence
58 lines (57 loc) • 2.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const index_1 = require("../index");
const index_2 = require("./index");
exports.VALIDATOR_POSTALCODE_METADATA_KEY = Symbol('validation:validator:isPostalCode');
function isPostalCode(style = 'universal', errorMessage) {
return (target, propertyKey, descriptor) => {
const original = descriptor.value;
Reflect.defineMetadata(exports.VALIDATOR_POSTALCODE_METADATA_KEY, null, target, propertyKey);
Reflect.defineMetadata(index_1.VALIDATOR_METADATA_KEY, new PostalCodeValidator(style, errorMessage), target, propertyKey);
};
}
exports.isPostalCode = isPostalCode;
exports.PATTERN_POSTALCODE_UNIVERSAL = /^\d{10}$/gi;
exports.PATTERN_POSTALCODE_US = /^(\+\d{1,3}[- ]?)?\d{10}$/gi;
exports.PATTERN_POSTALCODE_IR = /^\d{10}$/gi;
exports.PATTERN_POSTALCODE_EN = /^(\+\d{1,3}[- ]?)?\d{10}$/;
exports.PATTERN_POSTALCODE_UE = /^(\+\d{1,3}[- ]?)?\d{10}$/;
exports.PATTERN_POSTALCODE_SA = /^(\+\d{1,3}[- ]?)?\d{10}$/;
exports.PATTERN_POSTALCODE_IQ = /^(\+\d{1,3}[- ]?)?\d{10}$/;
exports.PATTERN_POSTALCODE_AF = /^(\+\d{1,3}[- ]?)?\d{10}$/;
class PostalCodeValidator extends index_2.PatternValidatorBase {
constructor(style = 'universal', errorMessage = 'The value of ${DisplayName} must have mobile pattern : ${Pattern} .') {
super('PostalCode', /^/, errorMessage);
this.style = style;
switch (style.toLocaleLowerCase()) {
case 'universal':
this.setPattern(exports.PATTERN_POSTALCODE_UNIVERSAL);
break;
case 'ir':
this.setPattern(exports.PATTERN_POSTALCODE_IR);
break;
case 'iq':
this.setPattern(exports.PATTERN_POSTALCODE_IQ);
break;
case 'sa':
this.setPattern(exports.PATTERN_POSTALCODE_EN);
break;
case 'af':
this.setPattern(exports.PATTERN_POSTALCODE_AF);
break;
case 'ue':
this.setPattern(exports.PATTERN_POSTALCODE_UE);
break;
case 'en':
this.setPattern(exports.PATTERN_POSTALCODE_EN);
break;
default:
this.setPattern(exports.PATTERN_POSTALCODE_UNIVERSAL);
break;
}
}
get Style() {
return this.style;
}
}
exports.PostalCodeValidator = PostalCodeValidator;