UNPKG

ng2-formobject

Version:

Create forms from objects with Angular2

53 lines 4.87 kB
/** * Created by haiko on 28-5-16. */ "use strict"; 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==