UNPKG

declapract

Version:

A tool to declaratively define best practices, maintainable evolve them, and scalably enforce them.

24 lines 1.35 kB
"use strict"; 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