UNPKG

renovate

Version:

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

39 lines 1.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.extractPackageFile = extractPackageFile; const tslib_1 = require("tslib"); const is_1 = tslib_1.__importDefault(require("@sindresorhus/is")); const logger_1 = require("../../../logger"); const extractors_1 = require("./extractors"); const hcl = tslib_1.__importStar(require("./hcl")); const util_1 = require("./util"); async function extractPackageFile(content, packageFile, config) { logger_1.logger.trace({ content }, `terraform.extractPackageFile(${packageFile})`); const passedExtractors = []; for (const extractor of extractors_1.resourceExtractors) { if ((0, util_1.checkFileContainsDependency)(content, extractor.getCheckList())) { passedExtractors.push(extractor); } } if (!passedExtractors.length) { logger_1.logger.debug({ packageFile }, 'preflight content check has not found any relevant content'); return null; } logger_1.logger.trace({ packageFile }, `preflight content check passed for extractors: [${passedExtractors .map((value) => value.constructor.name) .toString()}]`); const dependencies = []; const hclMap = await hcl.parseHCL(content, packageFile); if (is_1.default.nullOrUndefined(hclMap)) { logger_1.logger.debug({ packageFile }, 'failed to parse HCL file'); return null; } const locks = await (0, util_1.extractLocksForPackageFile)(packageFile); for (const extractor of passedExtractors) { const deps = extractor.extract(hclMap, locks, config); dependencies.push(...deps); } dependencies.forEach((value) => delete value.managerData); return dependencies.length ? { deps: dependencies } : null; } //# sourceMappingURL=extract.js.map