UNPKG

@scaleway/changesets-renovate

Version:

Automatically create changesets for Renovate and pnpm catalogs

39 lines (38 loc) 1.11 kB
import { readFile } from "node:fs/promises"; import fg from "fast-glob"; import "js-yaml"; const { 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() { const changesetConfig = JSON.parse( await readFile(".changeset/config.json", "utf8") ); return changesetConfig.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 { getChangesetIgnoredPackages, getPackagesNames, shouldIgnorePackage };