@berish/validate
Version:
Validation of complex objects with support for validation maps, rules and decorators
28 lines • 1.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const system_1 = require("./system");
const globalMethods = require("../index");
const rule_1 = require("../rule");
exports.plugins = [];
function _callPlugin(plugins, initialValue, callbackPlugin) {
return plugins.reduce((out, plugin) => callbackPlugin(plugin, out), initialValue);
}
function usePlugin(...include) {
include = include.filter(m => exports.plugins.indexOf(m) === -1);
if (include.length > 0) {
exports.plugins.push(...include);
_callPlugin(include, globalMethods, (plugin, globalMethods) => system_1.useUpgradeMethods(plugin, globalMethods));
rule_1.getAllRules().forEach(rule => {
_callPlugin(include, rule, (plugin, rule) => system_1.useUpgradeRuleAfterInit(plugin, rule));
});
rule_1.getRegisteredRules().forEach(rule => {
_callPlugin(include, rule, (plugin, rule) => system_1.useUpgradeRuleAfterRegister(plugin, rule));
});
}
}
exports.usePlugin = usePlugin;
function callPlugin(initialValue, callbackPlugin) {
return _callPlugin(exports.plugins, initialValue, callbackPlugin);
}
exports.callPlugin = callPlugin;
//# sourceMappingURL=usePlugin.js.map