UNPKG

renovate

Version:

Automated dependency updates. Flexible so you don't need to be.

63 lines 2.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.extractPackageFile = extractPackageFile; const logger_1 = require("../../../logger"); const regex_1 = require("../../../util/regex"); const modules_1 = require("./modules"); const util_1 = require("./util"); const dependencyBlockExtractionRegex = (0, regex_1.regEx)(/^\s*(?<type>[a-z_]+)\s+{\s*$/); const contentCheckList = ['terraform {']; const includeBlockCheck = (0, regex_1.regEx)(/include\s*(?:".*")?\s*\{/); function extractPackageFile(content, packageFile) { logger_1.logger.trace({ content }, `terragrunt.extractPackageFile(${packageFile})`); if (!(0, util_1.checkFileContainsDependency)(content, contentCheckList)) { if (content.match(includeBlockCheck)) { return { deps: [] }; } return null; } let deps = []; try { const lines = content.split(regex_1.newlineRegex); for (let lineNumber = 0; lineNumber < lines.length; lineNumber += 1) { const line = lines[lineNumber]; const terragruntDependency = dependencyBlockExtractionRegex.exec(line); if (terragruntDependency?.groups) { logger_1.logger.trace(`Matched ${terragruntDependency.groups.type} on line ${lineNumber}`); const tfDepType = (0, util_1.getTerragruntDependencyType)(terragruntDependency.groups.type); let result = null; switch (tfDepType) { case 'terraform': { result = (0, modules_1.extractTerragruntModule)(lineNumber, lines); break; } /* istanbul ignore next */ default: logger_1.logger.trace(`Could not identify TerragruntDependencyType ${terragruntDependency.groups.type} on line ${lineNumber}.`); break; } if (result) { lineNumber = result.lineNumber; deps = deps.concat(result.dependencies); result = null; } } } } catch (err) /* istanbul ignore next */ { logger_1.logger.debug({ err, packageFile }, 'Error extracting terragrunt plugins'); } deps.forEach((dep) => { // TODO #22198 switch (dep.managerData.terragruntDependencyType) { case 'terraform': (0, modules_1.analyseTerragruntModule)(dep); break; /* istanbul ignore next */ default: } delete dep.managerData; }); return { deps }; } //# sourceMappingURL=extract.js.map