From 0ecb92249cd21bcaddc437405367399ff2aba402 Mon Sep 17 00:00:00 2001
From: Patrick Kollitsch <davidsneighbourdev+gh@gmail.com>
Date: Fri, 24 Apr 2026 05:53:31 +0000
Subject: [PATCH] build: rework release configuration

---
 tsconfig.json  |   42 +++++++++-----------
 .release-it.ts |   33 +++++++++-------
 2 files changed, 38 insertions(+), 37 deletions(-)

diff --git a/.release-it.ts b/.release-it.ts
index 0eb8572..befe35f 100644
--- a/.release-it.ts
+++ b/.release-it.ts
@@ -12,14 +12,14 @@
 			encoding: "utf8",
 			stdio: ["ignore", "pipe", "pipe"],
 		}).trim();
-	} catch (error: unknown) {
+	} catch (error) {
 		console.error("Failed to determine the current Git branch.");
 		console.error(error);
 		process.exit(1);
 	}
 }
 
-function isPreReleaseRun(argv: string[]): boolean {
+function hasPreReleaseFlag(argv: string[]): boolean {
 	return argv.some((argument) => {
 		return (
 			argument === "--preRelease" ||
@@ -30,30 +30,29 @@
 	});
 }
 
-const currentBranch = getCurrentBranch();
-const preReleaseRun = isPreReleaseRun(process.argv);
+const branch = getCurrentBranch();
+const isPreRelease = hasPreReleaseFlag(process.argv);
 
-if (preReleaseRun && currentBranch !== "development") {
+if (isPreRelease && branch !== "development") {
 	console.error(
-		`Pre-releases are only allowed on "development". Current branch: "${currentBranch}".`,
+		`Pre-releases are only allowed from "development". Current branch: "${branch}".`,
 	);
 	process.exit(1);
 }
 
-if (!preReleaseRun && currentBranch !== "main") {
+if (!isPreRelease && branch !== "main") {
 	console.error(
-		`Stable releases are only allowed on "main". Current branch: "${currentBranch}".`,
+		`Stable releases are only allowed from "main". Current branch: "${branch}".`,
 	);
 	process.exit(1);
 }
 
-const config = {
-	npm: {
-		publish: false,
-	},
+const config: Config = {
 	git: {
 		requireCleanWorkingDir: true,
-		requireBranch: currentBranch,
+		requireUpstream: true,
+		requireCommits: true,
+		requireBranch: branch,
 		commit: true,
 		commitMessage: "chore(release): v${version}",
 		commitArgs: ["--no-verify"],
@@ -63,7 +62,13 @@
 		pushArgs: ["--follow-tags"],
 	},
 	github: {
-		release: false,
+		release: true,
+		releaseName: "v${version}",
+		skipChecks: true,
+		tokenRef: "GITHUB_TOKEN_CONTENT_PRIVATE",
+	},
+	npm: {
+		publish: false,
 	},
 	plugins: {
 		"@release-it/conventional-changelog": {
diff --git a/tsconfig.json b/tsconfig.json
index 2f0d8c9..0d5a35b 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,24 +1,20 @@
 {
-  "compilerOptions": {
-    "module": "nodenext",
-    "target": "esnext",
-    "types": [
-      "node"
-    ],
-    "sourceMap": true,
-    "declaration": true,
-    "declarationMap": true,
-    "noUncheckedIndexedAccess": true,
-    "exactOptionalPropertyTypes": true,
-    "strict": true,
-    "jsx": "react-jsx",
-    "verbatimModuleSyntax": true,
-    "isolatedModules": true,
-    "noUncheckedSideEffectImports": true,
-    "moduleDetection": "force",
-    "skipLibCheck": true,
-  },
-  "include": [
-    "scripts/**/*",
-  ],
-}
\ No newline at end of file
+	"compilerOptions": {
+		"module": "nodenext",
+		"target": "esnext",
+		"types": ["node"],
+		"sourceMap": true,
+		"declaration": true,
+		"declarationMap": true,
+		"noUncheckedIndexedAccess": true,
+		"exactOptionalPropertyTypes": true,
+		"strict": true,
+		"jsx": "react-jsx",
+		"verbatimModuleSyntax": true,
+		"isolatedModules": true,
+		"noUncheckedSideEffectImports": true,
+		"moduleDetection": "force",
+		"skipLibCheck": true
+	},
+	"include": ["**/*.ts", "scripts/**/*"]
+}

--
Gitblit v1.10.0