fire-validator
Version: 
表单校验
35 lines (33 loc) • 796 B
JavaScript
import { strategies } from "./strategies";
class Validator {
  constructor(strategies) {
    this.strategies = strategies;
    this.cache = [];
  }
  add(value, rules, errMsg) {
    if (rules instanceof Array) {
      rules.forEach((rule) => {
        const { method } = rule;
        rule = { value, ...rule };
        this.cache.push(() => {
          return this.strategies[method](rule);
        });
      });
    } else {
      this.cache.push(() => {
        return this.strategies[rules]({ value, errMsg });
      });
    }
  }
  start() {
    for (const strategiesFn of this.cache) {
      let errMsg = strategiesFn();
      if (errMsg) {
        return errMsg;
      }
    }
  }
}
export function getValidator() {
  return new Validator(strategies);
}