From 5d833d1e2e8bed9502639b636ab23d056c43760a Mon Sep 17 00:00:00 2001 From: Shigma Date: Fri, 24 Jan 2025 00:01:48 +0800 Subject: [PATCH] feat(core): skip up-to-date packages --- packages/core/src/plugins/publish.ts | 29 ++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/packages/core/src/plugins/publish.ts b/packages/core/src/plugins/publish.ts index c001d5f..e655349 100644 --- a/packages/core/src/plugins/publish.ts +++ b/packages/core/src/plugins/publish.ts @@ -84,21 +84,21 @@ export function apply(ctx: Context) { await ctx.yakumo.save(path) })) } - } else { - let progress = 0 - spinner.start(`Loading workspaces (0/${paths.length})`) - paths = (await Promise.all(paths.map(async (path) => { - const meta = ctx.yakumo.workspaces[path] - spinner.text = `Loading workspaces (${++progress}/${paths.length})` - const version = await getVersion(meta.name, isNext(meta.version)) - if (gt(meta.version, version)) return path - return null! // workaround silly strictNullChecks - }))).filter(Boolean) - spinner.succeed() } + let progress = 0, skipped = 0 + spinner.start(`Loading workspaces (0/${paths.length})`) + paths = (await Promise.all(paths.map(async (path) => { + const meta = ctx.yakumo.workspaces[path] + spinner.text = `Loading workspaces (${++progress}/${paths.length})` + const version = await getVersion(meta.name, isNext(meta.version)) + if (gt(meta.version, version)) return path + skipped += 1 + return null! // workaround silly strictNullChecks + }))).filter(Boolean) + spinner.succeed() const total = paths.length - if (!argv.debug) spinner.start(`Publishing packages (0/${total})`) + if (!argv.debug && total > 0) spinner.start(`Publishing packages (0/${total})`) let completed = 0, failed = 0 await (argv.debug ? serial : parallel)(paths, async (path) => { @@ -125,10 +125,11 @@ export function apply(ctx: Context) { } }) + const skippedText = skipped ? `, ${skipped} skipped` : '' if (failed) { - spinner.fail(`Published ${total - failed} packages, ${failed} failed.`) + spinner.fail(`Published ${total - failed} packages, ${failed} failed${skippedText}.`) } else { - spinner.succeed(`Published ${total} packages.`) + spinner.succeed(`Published ${total} packages${skippedText}.`) } }, { boolean: ['debug'],