declapract
Version:
A tool to declaratively define best practices, maintainable evolve them, and scalably enforce them.
62 lines • 2.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.filterPracticeEvaluationsFromPlans = void 0;
const type_fns_1 = require("type-fns");
const domain_1 = require("../../../domain");
const getRequiredActionForFile_1 = require("./getRequiredActionForFile");
const filterPracticeEvaluationsFromPlans = async ({ plans, filter, }) => {
// define initial set of plans
let filteredPlans = plans;
// apply practice name filter, if asked for
if (filter.byPracticeNames)
filteredPlans = filteredPlans
.map((plan) => {
const filteredEvaluations = plan.evaluations.filter((evaluation) => filter.byPracticeNames.includes(evaluation.practice.name));
if (!filteredEvaluations.length)
return null;
return new domain_1.FileActionPlan({
path: plan.path,
evaluations: filteredEvaluations,
action: (0, getRequiredActionForFile_1.getRequiredActionForFile)({
evaluations: filteredEvaluations,
}),
});
})
.filter(type_fns_1.isPresent);
// apply file path filter, if asked for
if (filter.byFilePaths)
filteredPlans = filteredPlans
.map((plan) => {
const filteredEvaluations = plan.evaluations.filter((evaluation) => filter.byFilePaths.includes(evaluation.path));
if (!filteredEvaluations.length)
return null;
return new domain_1.FileActionPlan({
path: plan.path,
evaluations: filteredEvaluations,
action: (0, getRequiredActionForFile_1.getRequiredActionForFile)({
evaluations: filteredEvaluations,
}),
});
})
.filter(type_fns_1.isPresent);
// apply fixable filter, if asked for
if (filter.byFixable)
filteredPlans = filteredPlans
.map((plan) => {
const filteredEvaluations = plan.evaluations.filter(domain_1.isFixablePractice);
if (!filteredEvaluations.length)
return null;
return new domain_1.FileActionPlan({
path: plan.path,
evaluations: filteredEvaluations,
action: (0, getRequiredActionForFile_1.getRequiredActionForFile)({
evaluations: filteredEvaluations,
}),
});
})
.filter(type_fns_1.isPresent);
// return the final set of filtered plans
return filteredPlans;
};
exports.filterPracticeEvaluationsFromPlans = filterPracticeEvaluationsFromPlans;
//# sourceMappingURL=filterPracticeEvaluationsFromPlans.js.map