tracey-cli
Version:
A markdown-based requirements tool
27 lines (26 loc) • 1.13 kB
JavaScript
;
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;