From 843772614c48419bdf210872ec2c5c0612fe4591 Mon Sep 17 00:00:00 2001 From: L4Ph <4ranci0ne@gmail.com> Date: Mon, 23 Dec 2024 23:08:37 +0900 Subject: [PATCH] add version.ts --- bun.lockb | Bin 130665 -> 131370 bytes package.json | 6 ++++-- version.ts | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 version.ts diff --git a/bun.lockb b/bun.lockb index ef90ef2b83e33630973e7d65b7ab11cae95698e9..df109b3fa88cf291c5ee45aa5bf35ff2306098e5 100755 GIT binary patch delta 19404 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 XwRLzv9^O-mCYxFN%@tp<>#hDDX`mdy delta 19204 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

`8P_4ys#8}O7bovb0>gnJ{-zH+k0+=Y7+z7_YT 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 diff --git a/package.json b/package.json index 5f1c25d..cdcc1e2 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "narrow", + "name": "tawri", "version": "0.1.1", "description": "", "type": "module", @@ -13,7 +13,7 @@ "tauri": "tauri", "lint": "biome lint", "format": "biome format --write", - "bump": "bunx tauri-version patch" + "version": "bun run version.ts" }, "license": "MIT", "dependencies": { @@ -43,8 +43,10 @@ "@tailwindcss/typography": "^0.5.15", "@types/bun": "latest", "@types/node": "^22.10.2", + "@types/semver": "^7.5.8", "autoprefixer": "^10.4.20", "postcss": "^8.4.49", + "semver": "^7.6.3", "svelte": "^5.15.0", "svelte-check": "^4.1.1", "tailwindcss": "^3.4.17", diff --git a/version.ts b/version.ts new file mode 100644 index 0000000..71c8b65 --- /dev/null +++ b/version.ts @@ -0,0 +1,51 @@ +import { fail } from "node:assert"; +import { $ } from "bun"; +import { type ReleaseType, inc, valid as isValidVersion } from "semver"; + +const path = "./package.json"; +const variants: ReleaseType[] = [ + "major", + "premajor", + "minor", + "preminor", + "patch", + "prepatch", + "prerelease", +]; + +const isValidTarget = (subject: string): subject is ReleaseType => + (variants as string[]).includes(subject); + +const isDirty = async () => (await $`git status --porcelain`.quiet()).text(); + +const target = Bun.argv.pop(); +const json = await Bun.file(path).json(); +const { version: current } = json; + +if (!isValidVersion(current)) + throw new Error(`Invalid current version ${current}`); + +if (await isDirty()) + throw new Error( + "There are uncommitted changes. Commit them before releasing.", + ); + +const desired = isValidVersion(target) + ? target + : target && isValidTarget(target) + ? inc(current, target, "beta", "1") + : fail("invalid target version"); + +if (!desired) throw new Error("Failed to bump"); +console.debug(current, "—>", desired); + +await Bun.write( + path, + JSON.stringify(Object.assign(json, { version: desired }), null, 2), +); + +await $`git add ${path}`; +await $`git commit -m v${desired}`; +await $`git tag v${desired}`; +await $`git push`; +await $`git push --tags`; \ No newline at end of file