declapract
Version:
A tool to declaratively define best practices, maintainable evolve them, and scalably enforce them.
71 lines • 3.45 kB
JavaScript
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
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 = (_a) => __awaiter(void 0, [_a], void 0, function* ({ 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
;