UNPKG

@formily/validator

Version:

> Formily 数据校验工具

78 lines 2.72 kB
import { FormPath, each, lowerCase, globalThisPolyfill, merge as deepmerge, isFn, isStr, } from '@formily/shared'; var getIn = FormPath.getIn; var self = globalThisPolyfill; var defaultLanguage = 'en'; var getBrowserlanguage = function () { /* istanbul ignore next */ if (!self.navigator) { return defaultLanguage; } return (self.navigator.browserlanguage || self.navigator.language || defaultLanguage); }; var registry = { locales: { messages: {}, language: getBrowserlanguage(), }, formats: {}, rules: {}, template: null, }; var getISOCode = function (language) { var isoCode = registry.locales.language; if (registry.locales.messages[language]) { return language; } var lang = lowerCase(language); each(registry.locales.messages, function (messages, key) { var target = lowerCase(key); if (target.indexOf(lang) > -1 || lang.indexOf(target) > -1) { isoCode = key; return false; } }); return isoCode; }; export var getValidateLocaleIOSCode = getISOCode; export var setValidateLanguage = function (lang) { registry.locales.language = lang || defaultLanguage; }; export var getValidateLanguage = function () { return registry.locales.language; }; export var getLocaleByPath = function (path, lang) { if (lang === void 0) { lang = registry.locales.language; } return getIn(registry.locales.messages, "".concat(getISOCode(lang), ".").concat(path)); }; export var getValidateLocale = function (path) { var message = getLocaleByPath(path); return (message || getLocaleByPath('pattern') || getLocaleByPath('pattern', defaultLanguage)); }; export var getValidateMessageTemplateEngine = function () { return registry.template; }; export var getValidateFormats = function (key) { return key ? registry.formats[key] : registry.formats; }; export var getValidateRules = function (key) { return key ? registry.rules[key] : registry.rules; }; export var registerValidateLocale = function (locale) { registry.locales.messages = deepmerge(registry.locales.messages, locale); }; export var registerValidateRules = function (rules) { each(rules, function (rule, key) { if (isFn(rule)) { registry.rules[key] = rule; } }); }; export var registerValidateFormats = function (formats) { each(formats, function (pattern, key) { if (isStr(pattern) || pattern instanceof RegExp) { registry.formats[key] = new RegExp(pattern); } }); }; export var registerValidateMessageTemplateEngine = function (template) { registry.template = template; }; //# sourceMappingURL=registry.js.map