summaryrefslogtreecommitdiffhomepage
path: root/packages/sdk/js/script
diff options
context:
space:
mode:
authorDax <[email protected]>2025-07-31 01:00:29 -0400
committerGitHub <[email protected]>2025-07-31 01:00:29 -0400
commit33cef075d228e80aefb44671ec68e1989c2855a8 (patch)
treed43a5c1bcc40d4d938eacccfd923c80301706cf1 /packages/sdk/js/script
parentb09ebf464552f3899120b22c7a8572669000a554 (diff)
downloadopencode-33cef075d228e80aefb44671ec68e1989c2855a8.tar.gz
opencode-33cef075d228e80aefb44671ec68e1989c2855a8.zip
ci: new publish method (#1451)
Diffstat (limited to 'packages/sdk/js/script')
-rwxr-xr-xpackages/sdk/js/script/generate.ts41
-rw-r--r--packages/sdk/js/script/publish.ts24
2 files changed, 65 insertions, 0 deletions
diff --git a/packages/sdk/js/script/generate.ts b/packages/sdk/js/script/generate.ts
new file mode 100755
index 000000000..3f864682e
--- /dev/null
+++ b/packages/sdk/js/script/generate.ts
@@ -0,0 +1,41 @@
+#!/usr/bin/env bun
+
+const dir = new URL("..", import.meta.url).pathname
+process.chdir(dir)
+
+import { $ } from "bun"
+import fs from "fs/promises"
+import path from "path"
+
+console.log("=== Generating JS SDK ===")
+console.log()
+
+import { createClient } from "@hey-api/openapi-ts"
+
+await fs.rm(path.join(dir, "src/gen"), { recursive: true, force: true })
+await $`bun run ../../opencode/src/index.ts generate > openapi.json`
+
+await createClient({
+ input: "./openapi.json",
+ output: "./src/gen",
+ plugins: [
+ {
+ name: "@hey-api/typescript",
+ exportFromIndex: false,
+ },
+ {
+ name: "@hey-api/sdk",
+ instance: "OpencodeClient",
+ exportFromIndex: false,
+ auth: false,
+ },
+ {
+ name: "@hey-api/client-fetch",
+ exportFromIndex: false,
+ baseUrl: "http://localhost:4096",
+ },
+ ],
+})
+
+await $`rm -rf dist`
+await $`bun tsc`
diff --git a/packages/sdk/js/script/publish.ts b/packages/sdk/js/script/publish.ts
new file mode 100644
index 000000000..39407f633
--- /dev/null
+++ b/packages/sdk/js/script/publish.ts
@@ -0,0 +1,24 @@
+#!/usr/bin/env bun
+
+const dir = new URL("..", import.meta.url).pathname
+process.chdir(dir)
+
+import { $ } from "bun"
+
+const version = process.env["OPENCODE_VERSION"]
+if (!version) {
+ throw new Error("OPENCODE_VERSION is required")
+}
+
+await import("./generate")
+
+const snapshot = process.env["OPENCODE_SNAPSHOT"] === "true"
+
+await $`bun pm version --allow-same-version --no-git-tag-version ${version}`
+if (snapshot) {
+ await $`bun publish --tag snapshot`
+}
+if (!snapshot) {
+ await $`bun publish`
+}
+await $`bun pm version 0.0.0 --no-git-tag-version`