renovate
Version:
Automated dependency updates. Flexible so you don't need to be.
52 lines • 1.77 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.extractPackageFile = extractPackageFile;
const tslib_1 = require("tslib");
const upath_1 = tslib_1.__importDefault(require("upath"));
const logger_1 = require("../../../logger");
const array_1 = require("../../../util/array");
const string_1 = require("../../../util/string");
const url_1 = require("../../../util/url");
function extractPackageFile(content, packageFile) {
logger_1.logger.trace({ packageFile }, 'jsonnet-bundler.extractPackageFile()');
if (packageFile.includes('vendor/')) {
return null;
}
const deps = [];
let jsonnetFile;
try {
jsonnetFile = JSON.parse(content);
}
catch {
logger_1.logger.debug({ packageFile }, `Invalid JSON`);
return null;
}
for (const dependency of (0, array_1.coerceArray)(jsonnetFile.dependencies)) {
const dep = extractDependency(dependency);
if (dep) {
deps.push(dep);
}
}
if (!deps.length) {
return null;
}
return { deps };
}
function extractDependency(dependency) {
if (!dependency.source.git) {
return null;
}
const gitRemote = (0, url_1.parseUrl)(dependency.source.git.remote);
if (!gitRemote) {
logger_1.logger.debug({ dependency }, 'Invalid Git remote URL');
return null;
}
const depName = upath_1.default.join(gitRemote.host, gitRemote.pathname.replace(/\.git$/, ''), (0, string_1.coerceString)(dependency.source.git.subdir));
return {
depName,
packageName: dependency.source.git.remote,
currentValue: dependency.version,
managerData: { subdir: dependency.source.git.subdir },
};
}
//# sourceMappingURL=extract.js.map