declapract
Version:
A tool to declaratively define best practices, maintainable evolve them, and scalably enforce them.
24 lines • 1.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getDesiredPractices = void 0;
const error_fns_1 = require("@ehmpathy/error-fns");
const getDesiredPractices = ({ config, filter, }) => {
// grab the selected use case's practices
const usecase = config.declared.useCases.find((thisUseCase) => thisUseCase.name === config.scope.usecase) ?? null;
if (!usecase && config.scope.usecase)
throw new error_fns_1.UnexpectedCodePathError('requested usecase was not declared on config', { usecase: config.scope.usecase });
// declare the practices
const practicesChosen = [
...(usecase?.practices ?? []),
...(config.scope.practices ?? []).map((practiceName) => config.declared.practices.find((practice) => practice.name === practiceName) ??
error_fns_1.UnexpectedCodePathError.throw('requested practice was not declared on config', { practiceName })),
];
// filter the practices
const practicesFiltered = practicesChosen.filter((practice) => filter?.practiceNames
? filter?.practiceNames.includes(practice.name) // if practice.name filter was defined, ensure practice.name is included
: true);
// return those
return practicesFiltered;
};
exports.getDesiredPractices = getDesiredPractices;
//# sourceMappingURL=getScopedPractices.js.map