UNPKG

renovate

Version:

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

55 lines (54 loc) 1.46 kB
import { logger } from "../../../logger/index.js"; import { ProtoToolsFile } from "./schema.js"; import { protoTooling } from "./upgradeable-tooling.js"; //#region lib/modules/manager/proto/extract.ts /** * Version aliases that cannot be updated via semver. */ const versionAliases = new Set([ "latest", "stable", "canary", "nightly" ]); function extractPackageFile(content, packageFile) { logger.trace(`proto.extractPackageFile(${packageFile})`); const parsed = ProtoToolsFile.safeParse(content); if (!parsed.success) { logger.debug({ err: parsed.error, packageFile }, "Error parsing proto .prototools file."); return null; } const { versions } = parsed.data; const deps = []; for (const [toolName, version] of Object.entries(versions)) deps.push(createDependency(toolName, version)); return deps.length ? { deps } : null; } function createDependency(name, version) { if (versionAliases.has(version)) return { depName: name, currentValue: version, skipReason: "unsupported-version" }; const config = getToolConfig(name); if (!config) return { depName: name, currentValue: version, skipReason: "unsupported-datasource" }; return { depName: name, currentValue: version, ...config }; } function getToolConfig(toolName) { const toolDefinition = protoTooling[toolName]; if (!toolDefinition) return null; return toolDefinition.config; } //#endregion export { extractPackageFile }; //# sourceMappingURL=extract.js.map