ng2-formobject
Version:
Create forms from objects with Angular2
53 lines • 4.87 kB
JavaScript
/**
* Created by haiko on 28-5-16.
*/
;
exports.VALIDATORS = 'ng2-formobject.validators';
/**
* required decorator
*
* @param target - prototype of class
* @param propertyKey - key of property
*/
function required(target, propertyKey) {
_addValidatorFlag('required', target, propertyKey);
}
exports.required = required;
/**
* email decorator
*
* @param target - prototype of class
* @param propertyKey - key of property
*/
function emailCheck(target, propertyKey) {
_addValidatorFlag('emailCheck', target, propertyKey);
}
exports.emailCheck = emailCheck;
/**
* numberCheck decorator
*
* @param target - prototype of class
* @param propertyKey - key of property
*/
function numberCheck(target, propertyKey) {
_addValidatorFlag('numberCheck', target, propertyKey);
}
exports.numberCheck = numberCheck;
/**
* Add metadata flag for given property on object.
*
* @param flag type of validation.
* @param target object
* @param propertyKey name of property of object.
* @private
*/
function _addValidatorFlag(flag, target, propertyKey) {
// create empty array if none exists
if (!Reflect.hasMetadata(exports.VALIDATORS, target, propertyKey)) {
Reflect.defineMetadata(exports.VALIDATORS, [], target, propertyKey);
}
var validators = Reflect.getMetadata(exports.VALIDATORS, target, propertyKey);
validators.push(flag);
Reflect.defineMetadata(exports.VALIDATORS, validators, target, propertyKey);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHOztBQUVVLGtCQUFVLEdBQUcsMkJBQTJCLENBQUM7QUFHdEQ7Ozs7O0dBS0c7QUFDSCxrQkFBeUIsTUFBYyxFQUFFLFdBQW1CO0lBQzFELGlCQUFpQixDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDckQsQ0FBQztBQUZlLGdCQUFRLFdBRXZCLENBQUE7QUFFRDs7Ozs7R0FLRztBQUNILG9CQUEyQixNQUFjLEVBQUUsV0FBbUI7SUFDNUQsaUJBQWlCLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztBQUV2RCxDQUFDO0FBSGUsa0JBQVUsYUFHekIsQ0FBQTtBQUVEOzs7OztHQUtHO0FBQ0gscUJBQTRCLE1BQWMsRUFBRSxXQUFtQjtJQUMzRCxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBRTFELENBQUM7QUFIZSxtQkFBVyxjQUcxQixDQUFBO0FBRUQ7Ozs7Ozs7R0FPRztBQUNGLDJCQUEyQixJQUFZLEVBQUUsTUFBYyxFQUFFLFdBQW1CO0lBRTFFLG9DQUFvQztJQUNwQyxFQUFFLENBQUMsQ0FBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsa0JBQVUsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNELE9BQU8sQ0FBQyxjQUFjLENBQUMsa0JBQVUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxJQUFJLFVBQVUsR0FBa0IsT0FBTyxDQUFDLFdBQVcsQ0FBQyxrQkFBVSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNyRixVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXRCLE9BQU8sQ0FBQyxjQUFjLENBQUMsa0JBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ3RFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENyZWF0ZWQgYnkgaGFpa28gb24gMjgtNS0xNi5cbiAqL1xuXG5leHBvcnQgY29uc3QgVkFMSURBVE9SUyA9ICduZzItZm9ybW9iamVjdC52YWxpZGF0b3JzJztcblxuXG4vKipcbiAqIHJlcXVpcmVkIGRlY29yYXRvclxuICpcbiAqIEBwYXJhbSB0YXJnZXQgLSBwcm90b3R5cGUgb2YgY2xhc3NcbiAqIEBwYXJhbSBwcm9wZXJ0eUtleSAtIGtleSBvZiBwcm9wZXJ0eVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVxdWlyZWQodGFyZ2V0OiBPYmplY3QsIHByb3BlcnR5S2V5OiBzdHJpbmcpIHtcbiAgX2FkZFZhbGlkYXRvckZsYWcoJ3JlcXVpcmVkJywgdGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG59XG5cbi8qKlxuICogZW1haWwgZGVjb3JhdG9yXG4gKlxuICogQHBhcmFtIHRhcmdldCAtIHByb3RvdHlwZSBvZiBjbGFzc1xuICogQHBhcmFtIHByb3BlcnR5S2V5IC0ga2V5IG9mIHByb3BlcnR5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbWFpbENoZWNrKHRhcmdldDogT2JqZWN0LCBwcm9wZXJ0eUtleTogc3RyaW5nKSB7XG4gIF9hZGRWYWxpZGF0b3JGbGFnKCdlbWFpbENoZWNrJywgdGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG5cbn1cblxuLyoqXG4gKiBudW1iZXJDaGVjayBkZWNvcmF0b3JcbiAqXG4gKiBAcGFyYW0gdGFyZ2V0IC0gcHJvdG90eXBlIG9mIGNsYXNzXG4gKiBAcGFyYW0gcHJvcGVydHlLZXkgLSBrZXkgb2YgcHJvcGVydHlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG51bWJlckNoZWNrKHRhcmdldDogT2JqZWN0LCBwcm9wZXJ0eUtleTogc3RyaW5nKSB7XG4gICAgX2FkZFZhbGlkYXRvckZsYWcoJ251bWJlckNoZWNrJywgdGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG5cbn1cblxuLyoqXG4gKiBBZGQgbWV0YWRhdGEgZmxhZyBmb3IgZ2l2ZW4gcHJvcGVydHkgb24gb2JqZWN0LlxuICpcbiAqIEBwYXJhbSBmbGFnIHR5cGUgb2YgdmFsaWRhdGlvbi5cbiAqIEBwYXJhbSB0YXJnZXQgb2JqZWN0XG4gKiBAcGFyYW0gcHJvcGVydHlLZXkgbmFtZSBvZiBwcm9wZXJ0eSBvZiBvYmplY3QuXG4gKiBAcHJpdmF0ZVxuICovXG4gZnVuY3Rpb24gX2FkZFZhbGlkYXRvckZsYWcoZmxhZzogc3RyaW5nLCB0YXJnZXQ6IE9iamVjdCwgcHJvcGVydHlLZXk6IHN0cmluZykge1xuXG4gICAvLyBjcmVhdGUgZW1wdHkgYXJyYXkgaWYgbm9uZSBleGlzdHNcbiAgIGlmICggIVJlZmxlY3QuaGFzTWV0YWRhdGEoVkFMSURBVE9SUywgdGFyZ2V0LCBwcm9wZXJ0eUtleSkpIHtcbiAgICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShWQUxJREFUT1JTLCBbXSwgdGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4gICB9XG5cbiAgIGxldCB2YWxpZGF0b3JzOiBBcnJheTxzdHJpbmc+ID0gUmVmbGVjdC5nZXRNZXRhZGF0YShWQUxJREFUT1JTLCB0YXJnZXQsIHByb3BlcnR5S2V5KTtcbiAgIHZhbGlkYXRvcnMucHVzaChmbGFnKTtcblxuICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShWQUxJREFUT1JTLCB2YWxpZGF0b3JzLCB0YXJnZXQsIHByb3BlcnR5S2V5KTtcbiB9XG5cblxuXG5cbiJdfQ==