UNPKG

tracey-cli

Version:
27 lines (26 loc) 1.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.plugin = void 0; var Add_1 = require("./Strategy/Add"); var Update_1 = require("./Strategy/Update"); var Remove_1 = require("./Strategy/Remove"); var Default_1 = require("./Strategy/Default"); var strategies = [ Update_1.updateStrategy, Add_1.addStrategy, Remove_1.removeStrategy, ]; var determineStrategy = function (requirement, linkedAnnotations) { return strategies.find(function (strategy) { return strategy.shouldExecute(requirement, linkedAnnotations); }) || Default_1.defaultStrategy; }; var plugin = function (_a) { var requirements = _a.requirements, annotations = _a.annotations; requirements.forEach(function (requirement) { var linkedAnnotations = annotations.filter(function (annotation) { return annotation.identifier === requirement.id; }); var strategy = determineStrategy(requirement, linkedAnnotations); strategy.execute(requirement, linkedAnnotations); }); return { requirements: requirements, annotations: annotations, }; }; exports.plugin = plugin;