UNPKG

@diullei/codeguardian

Version:

Open-source developer tool to validate and enforce architectural rules, especially for AI-generated code

41 lines 1.75 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ForEachBuilder = exports.NoneOfBuilder = exports.AnyOfBuilder = exports.AllOfBuilder = void 0; const combinators_1 = require("../../combinators"); const core_1 = require("../../core"); class AllOfBuilder { build(config, factory) { const rules = (config.rules || []).map((ruleConfig) => factory.create(ruleConfig)); return new combinators_1.AllOfRule(config.id || 'all_of', rules); } } exports.AllOfBuilder = AllOfBuilder; class AnyOfBuilder { build(config, factory) { const rules = (config.rules || []).map((ruleConfig) => factory.create(ruleConfig)); return new combinators_1.AnyOfRule(config.id || 'any_of', rules); } } exports.AnyOfBuilder = AnyOfBuilder; class NoneOfBuilder { build(config, factory) { const rules = (config.rules || []).map((ruleConfig) => factory.create(ruleConfig)); return new combinators_1.NoneOfRule(config.id || 'none_of', rules); } } exports.NoneOfBuilder = NoneOfBuilder; class ForEachBuilder { build(config, factory) { const selector = factory.create(config.select); const assertion = factory.create(config.assert); if (!(selector instanceof core_1.SelectorRule)) { throw new Error('ForEach rule requires a selector rule'); } if (!(assertion instanceof core_1.AssertionRule || assertion instanceof core_1.CombinatorRule)) { throw new Error('ForEach rule requires an assertion or combinator rule'); } return new combinators_1.ForEachRule(config.id || 'for_each', selector, assertion); } } exports.ForEachBuilder = ForEachBuilder; //# sourceMappingURL=CombinatorBuilders.js.map