MCPcopy Create free account
hub / github.com/TanStack/cli / main

Function main

scripts/generate-semantic-changeset.mjs:167–214  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

165}
166
167async function main() {
168 const pendingChangesets = await getPendingChangesetFiles()
169 if (pendingChangesets.length > 0) {
170 console.log(`Found ${pendingChangesets.length} authored changeset(s); skipping semantic fallback.`)
171 return
172 }
173
174 const baseSha = getBaseSha()
175 const commits = parseCommitRecords(baseSha)
176 const releaseCommits = commits
177 .filter((commit) => !commit.subject.startsWith(RELEASE_COMMIT_PREFIX))
178 .map((commit) => ({ ...commit, bump: getCommitBump(commit) }))
179 .filter((commit) => Boolean(commit.bump))
180
181 if (releaseCommits.length === 0) {
182 console.log('No semantic commits eligible for release; skipping generated changeset.')
183 return
184 }
185
186 const packages = await getPublishablePackages()
187 if (packages.length === 0) {
188 console.log('No publishable workspace packages found; skipping generated changeset.')
189 return
190 }
191
192 const changedFiles = getChangedFiles(baseSha)
193 const targetPackages = getTargetPackageNames(changedFiles, packages)
194 if (targetPackages.length === 0) {
195 console.log('No affected publishable packages detected; skipping generated changeset.')
196 return
197 }
198
199 let bump = null
200 for (const commit of releaseCommits) {
201 bump = mergeBump(bump, commit.bump)
202 }
203
204 if (!bump) {
205 console.log('Unable to determine bump level; skipping generated changeset.')
206 return
207 }
208
209 const fileName = await writeChangesetFile(targetPackages, bump, releaseCommits)
210
211 console.log(
212 `Generated ${fileName} (${bump}) for ${targetPackages.length} package(s) based on semantic commits.`,
213 )
214}
215
216main().catch((error) => {
217 console.error(error)

Callers 1

Calls 10

getPendingChangesetFilesFunction · 0.85
getBaseShaFunction · 0.85
parseCommitRecordsFunction · 0.85
getCommitBumpFunction · 0.85
getPublishablePackagesFunction · 0.85
getChangedFilesFunction · 0.85
getTargetPackageNamesFunction · 0.85
mergeBumpFunction · 0.85
writeChangesetFileFunction · 0.85
logMethod · 0.80

Tested by

no test coverage detected