@scaleway/changesets-renovate
Version:
Automatically create changesets for Renovate and pnpm catalogs
26 lines (25 loc) • 957 B
JavaScript
import { readFile } from "node:fs/promises";
import fg from "fast-glob";
import { load } from "js-yaml";
var { globSync } = fg;
function shouldIgnorePackage(packageName, ignoredPackages) {
return ignoredPackages.some((ignoredPackage) => {
if (ignoredPackage.endsWith("*")) return packageName.startsWith(ignoredPackage.slice(0, -1));
return packageName === ignoredPackage;
});
}
async function getChangesetIgnoredPackages() {
return JSON.parse(await readFile(".changeset/config.json", "utf8")).ignore ?? [];
}
async function getPackagesNames(files) {
const ignoredPackages = await getChangesetIgnoredPackages();
const packages = [];
const promises = files.map(async (file) => {
const data = JSON.parse(await readFile(file, "utf8"));
if (shouldIgnorePackage(data.name, ignoredPackages)) return;
if (!data.workspaces && data.version) packages.push(data.name);
});
await Promise.all(promises);
return packages;
}
export { getPackagesNames };