UNPKG

aurelia-validatejs

Version:

This is a plugin that will allow using validate.js in your Aurelia application for expressive validation.

30 lines (26 loc) 986 B
import {metadata} from 'aurelia-metadata'; import {ValidationRules} from './validation-rules'; import {metadataKey} from './metadata-key'; export function base(targetOrConfig, key, descriptor, rule) { if (key) { let target = targetOrConfig; targetOrConfig = null; return addRule(target, key, descriptor, targetOrConfig, rule); } return function(t, k, d) { return addRule(t, k, d, targetOrConfig, rule); }; } export function addRule(target, key, descriptor, targetOrConfig, rule) { let rules = metadata.getOrCreateOwn(metadataKey, ValidationRules, target); if (targetOrConfig === null || targetOrConfig === undefined) { targetOrConfig = true; } rules.addRule(key, rule(targetOrConfig)); // babel's decorator logic uses !!descriptor.configurable which creates read-only // properties that can't be observed with the SetterObserver. Make sure the // property remains configurable. if (descriptor) { descriptor.configurable = true; } }