From bf87a72c45b624082aee0f7641f773cb0e852700 Mon Sep 17 00:00:00 2001 From: Timeless0911 <1604889533@qq.com> Date: Tue, 15 Oct 2024 13:03:02 +0800 Subject: [PATCH] chore: update --- .pnpmfile.cjs | 11 +++++++++++ package.json | 5 +++-- pnpm-lock.yaml | 14 ++++++++++++++ scripts/generateReleasePr.mjs | 26 ++++++++++++++++++-------- 4 files changed, 46 insertions(+), 10 deletions(-) create mode 100644 .pnpmfile.cjs diff --git a/.pnpmfile.cjs b/.pnpmfile.cjs new file mode 100644 index 00000000..26f21d8c --- /dev/null +++ b/.pnpmfile.cjs @@ -0,0 +1,11 @@ +module.exports = { + hooks: { + readPackage: (pkg) => { + if (pkg.name === 'zx') { + // zx use "@types/node": ">=20" as optionalDependencies, which may bring some unexpected updates in other packages + delete pkg.optionalDependencies['@types/node']; + } + return pkg; + }, + }, +}; diff --git a/package.json b/package.json index 7c8ce591..cd7776ac 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "changeset": "changeset", "check-dependency-version": "check-dependency-version-consistency .", "check-spell": "pnpx cspell", - "generate-release-pr": "npx zx scripts/generateReleasePr.mjs", + "generate-release-pr": "zx scripts/generateReleasePr.mjs", "lint": "biome check . --diagnostic-level=warn && pnpm run check-spell", "prebundle": "nx run-many -t prebundle", "prepare": "pnpm run build && simple-git-hooks", @@ -55,7 +55,8 @@ "prettier-plugin-packagejson": "^2.5.3", "simple-git-hooks": "^2.11.1", "typescript": "^5.6.3", - "vitest": "^2.1.2" + "vitest": "^2.1.2", + "zx": "^8.1.9" }, "packageManager": "pnpm@9.9.0", "engines": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a00f07fa..ca3a04e8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,8 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +pnpmfileChecksum: sirncs5aff6cpwccwwvtlwwvli + importers: .: @@ -53,6 +55,9 @@ importers: vitest: specifier: ^2.1.2 version: 2.1.2(@types/node@18.19.39)(terser@5.31.6) + zx: + specifier: ^8.1.9 + version: 8.1.9 examples/express-plugin: devDependencies: @@ -4809,6 +4814,11 @@ packages: zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + zx@8.1.9: + resolution: {integrity: sha512-UHuLHphHmsBYKkAchkSrEN4nzDyagafqC9HUxtc1J7eopaScW6H9dsLJ1lmkAntnLtDTGoM8fa+jrJrXiIfKFA==} + engines: {node: '>= 12.17.0'} + hasBin: true + snapshots: '@alloc/quick-lru@5.2.0': {} @@ -9588,3 +9598,7 @@ snapshots: yocto-queue@1.1.1: {} zwitch@2.0.4: {} + + zx@8.1.9: + optionalDependencies: + '@types/fs-extra': 11.0.4 diff --git a/scripts/generateReleasePr.mjs b/scripts/generateReleasePr.mjs index c5199392..d30df290 100644 --- a/scripts/generateReleasePr.mjs +++ b/scripts/generateReleasePr.mjs @@ -2,14 +2,11 @@ import fs from 'node:fs/promises'; import path from 'node:path'; +import { parseArgs } from 'node:util'; import { $, chalk } from 'zx'; -// Exit when error $.verbose = false; -const args = process.argv.slice(2); -const bumpTypeArgs = args.find((arg) => arg.startsWith('--type=')); - async function getCurrentVersion() { const packageJsonPath = path.join( process.cwd(), @@ -56,20 +53,33 @@ async function main() { const currentVersion = await getCurrentVersion(); console.log(chalk.blue(`Current version: ${currentVersion}`)); - // 2. Determine bump type - const bumpType = bumpTypeArgs ? bumpTypeArgs.split('=')[1] : 'patch'; + // 2. Determine bump type and next release version + const options = { + type: { + type: 'string', + short: 't', + default: 'patch', + }, + }; + const args = process.argv.slice(3); + const { values } = parseArgs({ args, options }); + + const bumpType = values.type; if (!['major', 'minor', 'patch'].includes(bumpType)) { console.error('Invalid bump type. Please select major, minor, or patch.'); process.exit(1); } + console.log(chalk.blue(`Bump type: ${bumpType}`)); + const nextVersion = await getNextVersion(currentVersion, bumpType); - const branchName = `release-v${nextVersion}`; + console.log(chalk.blue(`Next version: ${nextVersion}`)); + // 3. Create and switch to new branch + const branchName = `release-v${nextVersion}`; console.log(chalk.blue(`Creating branch: ${branchName}`)); - // 3. Create and switch to new branch await $`git checkout -b ${branchName}`; // 4. Generate changeset file