UNPKG

renovate

Version:

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

67 lines 2.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.extractPackageFile = extractPackageFile; const tslib_1 = require("tslib"); const logger_1 = require("../../../logger"); const array_1 = require("../../../util/array"); const yaml_1 = require("../../../util/yaml"); const orb_1 = require("../../datasource/orb"); const npmVersioning = tslib_1.__importStar(require("../../versioning/npm")); const extract_1 = require("../dockerfile/extract"); const schema_1 = require("./schema"); function extractDefinition(definition, config) { const deps = []; for (const [key, orb] of Object.entries(definition.orbs ?? {})) { if (typeof orb === 'string') { const [packageName, currentValue] = orb.split('@'); deps.push({ depName: key, packageName, depType: 'orb', currentValue, versioning: npmVersioning.id, datasource: orb_1.OrbDatasource.id, }); } else { deps.push(...extractDefinition(orb, config)); } } // extract environments const environments = [ Object.values(definition.executors ?? {}), Object.values(definition.jobs ?? {}), ].flat(); for (const job of environments) { for (const dockerElement of (0, array_1.coerceArray)(job.docker)) { deps.push({ ...(0, extract_1.getDep)(dockerElement.image, true, config?.registryAliases), depType: 'docker', }); } } return deps; } function extractPackageFile(content, packageFile, config) { const deps = []; try { const parsed = (0, yaml_1.parseSingleYaml)(content, { customSchema: schema_1.CircleCiFile, }); deps.push(...extractDefinition(parsed, config)); for (const alias of (0, array_1.coerceArray)(parsed.aliases)) { deps.push({ ...(0, extract_1.getDep)(alias.image, true, config?.registryAliases), depType: 'docker', }); } } catch (err) /* istanbul ignore next */ { logger_1.logger.debug({ err, packageFile }, 'Error extracting circleci images'); } if (!deps.length) { return null; } return { deps }; } //# sourceMappingURL=extract.js.map