javascript 扩展错误代码的LIVR补丁规则

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 扩展错误代码的LIVR补丁规则相关的知识,希望对你有一定的参考价值。

import LIVR from 'livr'';
    
const isObject = obj => obj !== null && obj && typeof obj === 'object' && !Array.isArray(obj);

const patchRule = (ruleName, ruleBuilder) => {
  const newRule = (...params) => {
    const ruleValidator = ruleBuilder(...params);
    const ruleArgs = params.splice(0, params.length - 1);
    const newBuilder = (...innerParams) => {
      const errorCode = ruleValidator(...innerParams);

      if (errorCode) {
        const rule = {
          [ruleName]: ruleArgs,
        };

        if (Array.isArray(errorCode)) {
          return errorCode[0];
        }

        if (isObject(errorCode)) {
          return errorCode;
        }

        return {
          code: errorCode,
          rule,
        };
      }

      return '';
    };

    return newBuilder;
  };
  return newRule;
};

const defaultRules = LIVR.Validator.getDefaultRules();
const newRules = Object.entries(defaultRules).reduce(
  (agg, [ruleName, ruleBuilder]) =>
    Object.assign(agg, {
      [ruleName]: patchRule(ruleName, ruleBuilder),
    }),
  {},
);

LIVR.Validator.registerDefaultRules(newRules);

以上是关于javascript 扩展错误代码的LIVR补丁规则的主要内容,如果未能解决你的问题,请参考以下文章

javascript LIVR产品扩展

javascript LIVR自定义规则

javascript LIVR产品示例

Chrome 跨域补丁请求不起作用

一个好用的字符过滤,差异匹配补丁的扩展库,各语言版本

维护第三方代码的自定义补丁