( pkg: WorkspacePackage, target: string, preid: string, rootDir: string, )
| 82 | } |
| 83 | |
| 84 | /** Query published prerelease state for one package at a target version */ |
| 85 | export async function getPublishedPrereleaseState( |
| 86 | pkg: WorkspacePackage, |
| 87 | target: string, |
| 88 | preid: string, |
| 89 | rootDir: string, |
| 90 | ): Promise<PublishedPrereleaseState> { |
| 91 | if (usesNpmRegistry(pkg)) { |
| 92 | const versions = await fetchPublishedVersions(pkg.name, pkg.bumpy?.registry); |
| 93 | return { |
| 94 | counters: extractPrereleaseCounters(versions, target, preid), |
| 95 | stablePublished: versions.includes(target), |
| 96 | }; |
| 97 | } |
| 98 | // Non-npm packages (custom publish command / skipNpmPublish) — derive from git tags, |
| 99 | // matching how the stable flow tracks their published-ness. |
| 100 | const tagVersions = listTags(`${pkg.name}@${target}-${preid}.*`, { cwd: rootDir }).map((t) => |
| 101 | t.slice(pkg.name.length + 1), |
| 102 | ); |
| 103 | return { |
| 104 | counters: extractPrereleaseCounters(tagVersions, target, preid), |
| 105 | stablePublished: listTags(`${pkg.name}@${target}`, { cwd: rootDir }).length > 0, |
| 106 | }; |
| 107 | } |
| 108 | |
| 109 | export interface ChannelReleasePlanResult { |
no test coverage detected
searching dependent graphs…