codacy-seed
Version:
Library to create Codacy Tools in Typescript
30 lines • 1.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.withDefaultParameters = void 0;
const _1 = require(".");
function withDefaultParameters(codacyrc, specification) {
if (codacyrc.tools === undefined || (specification === null || specification === void 0 ? void 0 : specification.patterns) === undefined)
return codacyrc;
const toolsWithDefaults = codacyrc.tools.map((tool) => {
if (tool.patterns === undefined)
return tool;
const patternsWithDefaults = tool.patterns.map((pattern) => withDefaultParamentersForPattern(pattern, specification.patterns));
return new _1.Tool(tool.name, patternsWithDefaults);
});
return new _1.Codacyrc(codacyrc.files, toolsWithDefaults, codacyrc.options);
}
exports.withDefaultParameters = withDefaultParameters;
function withDefaultParamentersForPattern(pattern, specificationPatterns) {
const specificationPattern = specificationPatterns.find((specPattern) => specPattern.patternId === pattern.patternId);
const parameters = specificationPattern
? missingParameters(pattern, specificationPattern)
: pattern.parameters;
return new _1.Pattern(pattern.patternId, parameters);
}
function missingParameters(pattern, specificationPattern) {
return specificationPattern.parameters.map((specParameter) => {
const overrideParameter = pattern.parameters.find((param) => param.name === specParameter.name);
return (overrideParameter !== null && overrideParameter !== void 0 ? overrideParameter : new _1.Parameter(specParameter.name, specParameter.default));
});
}
//# sourceMappingURL=withDefaultParameters.js.map