renovate
Version:
Automated dependency updates. Flexible so you don't need to be.
79 lines • 2.68 kB
JavaScript
;
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 yaml_1 = require("../../../util/yaml");
const helm_1 = require("../../datasource/helm");
function extractPackageFile(content, packageFile, config) {
let deps = [];
// TODO: fix type
let doc;
try {
doc = (0, yaml_1.parseSingleYaml)(content); // TODO #9610
}
catch {
logger_1.logger.debug({ packageFile }, `Failed to parse helm requirements.yaml`);
return null;
}
if (!(doc && is_1.default.array(doc.dependencies))) {
logger_1.logger.debug({ packageFile }, `requirements.yaml has no dependencies`);
return null;
}
deps = doc.dependencies.map((dep) => {
let currentValue; // Remove when #9610 has been implemented
switch (typeof dep.version) {
case 'number':
currentValue = String(dep.version);
break;
case 'string':
currentValue = dep.version;
}
const res = {
depName: dep.name,
currentValue,
};
if (!res.depName) {
res.skipReason = 'invalid-name';
return res;
}
if (!res.currentValue) {
res.skipReason = 'invalid-version';
return res;
}
if (!dep.repository) {
res.skipReason = 'no-repository';
return res;
}
res.registryUrls = [dep.repository];
if (dep.repository.startsWith('@') || dep.repository.startsWith('alias:')) {
const repoWithPrefixRemoved = dep.repository.slice(dep.repository[0] === '@' ? 1 : 6);
const alias = config.registryAliases?.[repoWithPrefixRemoved];
if (alias) {
res.registryUrls = [alias];
return res;
}
res.skipReason = 'placeholder-url';
}
else {
try {
const url = new URL(dep.repository);
if (url.protocol === 'file:') {
res.skipReason = 'local-dependency';
}
}
catch (err) {
logger_1.logger.debug({ err, packageFile, url: dep.repository }, 'Error parsing url');
res.skipReason = 'invalid-url';
}
}
return res;
});
const res = {
deps,
datasource: helm_1.HelmDatasource.id,
};
return res;
}
//# sourceMappingURL=extract.js.map