From 682bdda3e54e935987ce9ba0960b007a7705fee2 Mon Sep 17 00:00:00 2001 From: lanyuanxiaoyao Date: Tue, 9 Jun 2026 18:23:52 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E6=B5=8B=E8=AF=95=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E6=94=B9=E4=B8=BA=E5=AF=BC=E5=85=A5=E6=BA=90=E7=A0=81?= =?UTF-8?q?=E5=87=BD=E6=95=B0=EF=BC=8C=E6=B7=BB=E5=8A=A0=20import.meta.mai?= =?UTF-8?q?n=20=E4=BF=9D=E6=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/release.ts | 14 ++++++++------ tests/scripts/release.test.ts | 28 +--------------------------- 2 files changed, 9 insertions(+), 33 deletions(-) diff --git a/scripts/release.ts b/scripts/release.ts index c3915d9..38b5a80 100644 --- a/scripts/release.ts +++ b/scripts/release.ts @@ -2,13 +2,13 @@ import { readFileSync, writeFileSync } from "node:fs"; import { createInterface } from "node:readline"; import { join } from "node:path"; -interface Semver { +export interface Semver { major: number; minor: number; patch: number; } -type BumpType = "major" | "minor" | "patch"; +export type BumpType = "major" | "minor" | "patch"; export function parseSemver(version: string): Semver { const parts = version.split("."); @@ -194,7 +194,9 @@ async function main(): Promise { console.log("[4/4] npm 发布完成"); } -main().catch((err: unknown) => { - console.error(err instanceof Error ? err.message : String(err)); - process.exit(1); -}); +if (import.meta.main) { + main().catch((err: unknown) => { + console.error(err instanceof Error ? err.message : String(err)); + process.exit(1); + }); +} diff --git a/tests/scripts/release.test.ts b/tests/scripts/release.test.ts index 6d9ae93..bbccaa5 100644 --- a/tests/scripts/release.test.ts +++ b/tests/scripts/release.test.ts @@ -1,31 +1,5 @@ import { describe, it, expect } from "bun:test"; - -function parseSemver(version: string): { major: number; minor: number; patch: number } { - const parts = version.split("."); - if (parts.length !== 3) { - throw new Error(`无效的版本号格式: ${version}`); - } - const [major, minor, patch] = parts.map((p) => { - const n = Number(p); - if (Number.isNaN(n) || !Number.isInteger(n) || n < 0) { - throw new Error(`无效的版本号格式: ${version}`); - } - return n; - }); - return { major: major!, minor: minor!, patch: patch! }; -} - -function bumpVersion(current: string, type: "major" | "minor" | "patch"): string { - const semver = parseSemver(current); - switch (type) { - case "major": - return `${semver.major + 1}.0.0`; - case "minor": - return `${semver.major}.${semver.minor + 1}.0`; - case "patch": - return `${semver.major}.${semver.minor}.${semver.patch + 1}`; - } -} +import { parseSemver, bumpVersion } from "../../scripts/release"; describe("parseSemver", () => { it("解析标准版本号 1.2.3", () => {