renovate
Version:
Automated dependency updates. Flexible so you don't need to be.
64 lines (63 loc) • 1.96 kB
JavaScript
import { regEx } from "../../../util/regex.js";
import { logger } from "../../../logger/index.js";
import { parseSingleYaml } from "../../../util/yaml.js";
import { GoDatasource } from "../../datasource/go/index.js";
import { OCBConfig } from "./schema.js";
import { isNullOrUndefined } from "@sindresorhus/is";
//#region lib/modules/manager/ocb/extract.ts
function extractPackageFile(content, packageFile, _config) {
let definition = null;
try {
const yaml = parseSingleYaml(content);
const parsed = OCBConfig.safeParse(yaml);
if (!parsed.success) {
logger.trace({
packageFile,
error: parsed.error
}, "Failed to parse OCB schema");
return null;
}
definition = parsed.data;
} catch (error) {
logger.debug({
packageFile,
error
}, "OCB manager failed to parse file as YAML");
return null;
}
const deps = [];
if (definition.dist.otelcol_version) deps.push({
datasource: GoDatasource.id,
depType: "collector",
depName: "go.opentelemetry.io/collector",
currentValue: definition.dist.otelcol_version,
extractVersion: "^v(?<version>\\S+)"
});
deps.push(...processModule(definition.connectors, "connectors"));
deps.push(...processModule(definition.exporters, "exports"));
deps.push(...processModule(definition.extensions, "extensions"));
deps.push(...processModule(definition.processors, "processors"));
deps.push(...processModule(definition.providers, "providers"));
deps.push(...processModule(definition.receivers, "receivers"));
return {
packageFileVersion: definition.dist.version,
deps
};
}
function processModule(module, depType) {
const deps = [];
if (isNullOrUndefined(module)) return deps;
for (const element of module) {
const [depName, currentValue] = element.gomod.trim().split(regEx(/\s+/));
deps.push({
datasource: GoDatasource.id,
depType,
depName,
currentValue
});
}
return deps;
}
//#endregion
export { extractPackageFile };
//# sourceMappingURL=extract.js.map