UNPKG

@confluentinc/schemaregistry

Version:
111 lines (110 loc) 3.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RuleRegistry = void 0; /** * RuleRegistry is used to register and fetch rule executors and actions. */ class RuleRegistry { constructor() { this.ruleExecutors = new Map(); this.ruleActions = new Map(); this.ruleOverrides = new Map(); } /** * registerExecutor is used to register a new rule executor. * @param ruleExecutor - the rule executor to register */ registerExecutor(ruleExecutor) { this.ruleExecutors.set(ruleExecutor.type(), ruleExecutor); } /** * getExecutor fetches a rule executor by a given name. * @param name - the name of the rule executor to fetch */ getExecutor(name) { return this.ruleExecutors.get(name); } /** * getExecutors fetches all rule executors */ getExecutors() { return Array.from(this.ruleExecutors.values()); } /** * registerAction is used to register a new rule action. * @param ruleAction - the rule action to register */ registerAction(ruleAction) { this.ruleActions.set(ruleAction.type(), ruleAction); } /** * getAction fetches a rule action by a given name. * @param name - the name of the rule action to fetch */ getAction(name) { return this.ruleActions.get(name); } /** * getActions fetches all rule actions */ getActions() { return Array.from(this.ruleActions.values()); } /** * registerOverride is used to register a new rule override. * @param ruleOverride - the rule override to register */ registerOverride(ruleOverride) { this.ruleOverrides.set(ruleOverride.type, ruleOverride); } /** * getOverride fetches a rule override by a given name. * @param name - the name of the rule override to fetch */ getOverride(name) { return this.ruleOverrides.get(name); } /** * getOverrides fetches all rule overrides */ getOverrides() { return Array.from(this.ruleOverrides.values()); } /** * clear clears all registered rules */ clear() { this.ruleExecutors.clear(); this.ruleActions.clear(); this.ruleOverrides.clear(); } /** * getGlobalInstance fetches the global instance of the rule registry */ static getGlobalInstance() { return RuleRegistry.globalInstance; } /** * registerRuleExecutor is used to register a new rule executor globally. * @param ruleExecutor - the rule executor to register */ static registerRuleExecutor(ruleExecutor) { RuleRegistry.globalInstance.registerExecutor(ruleExecutor); } /** * registerRuleAction is used to register a new rule action globally. * @param ruleAction - the rule action to register */ static registerRuleAction(ruleAction) { RuleRegistry.globalInstance.registerAction(ruleAction); } /** * registerRuleOverride is used to register a new rule override globally. * @param ruleOverride - the rule override to register */ static registerRuleOverride(ruleOverride) { RuleRegistry.globalInstance.registerOverride(ruleOverride); } } exports.RuleRegistry = RuleRegistry; RuleRegistry.globalInstance = new RuleRegistry();