renovate
Version:
Automated dependency updates. Flexible so you don't need to be.
61 lines • 1.89 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.supportedRulesRegex = void 0;
exports.extractDepsFromFragmentData = extractDepsFromFragmentData;
exports.extractDepsFromFragment = extractDepsFromFragment;
exports.extract = extract;
const zod_1 = require("zod");
const regex_1 = require("../../../../util/regex");
const docker_1 = require("./docker");
const git_1 = require("./git");
const go_1 = require("./go");
const http_1 = require("./http");
const maven_1 = require("./maven");
const oci_1 = require("./oci");
const Target = zod_1.z.union([
docker_1.DockerTarget,
oci_1.OciTarget,
git_1.GitTarget,
go_1.GoTarget,
http_1.HttpTarget,
maven_1.MavenTarget,
]);
/**
* Gather all rule names supported by Renovate in order to speed up parsing
* by filtering out other syntactically correct rules we don't support yet.
*/
const supportedRules = [
...docker_1.dockerRules,
...oci_1.ociRules,
...git_1.gitRules,
...go_1.goRules,
...http_1.httpRules,
...maven_1.mavenRules,
];
exports.supportedRulesRegex = (0, regex_1.regEx)(`^(?:${supportedRules.join('|')})$`);
function extractDepsFromFragmentData(fragmentData) {
const res = Target.safeParse(fragmentData);
if (!res.success) {
return [];
}
return res.data;
}
function extractDepsFromFragment(fragment) {
const fragmentData = extract(fragment);
return extractDepsFromFragmentData(fragmentData);
}
function extract(fragment) {
if (fragment.type === 'string') {
return fragment.value;
}
if (fragment.type === 'record') {
const { children } = fragment;
const result = {};
for (const [key, value] of Object.entries(children)) {
result[key] = extract(value);
}
return result;
}
return fragment.children.map(extract);
}
//# sourceMappingURL=index.js.map