summaryrefslogtreecommitdiffhomepage
path: root/packages/sdk/js/script
diff options
context:
space:
mode:
authorKit Langton <[email protected]>2026-04-17 22:53:19 -0400
committerGitHub <[email protected]>2026-04-18 02:53:19 +0000
commit24fb9b1296d7bb5942ef5690ee3a806856b18dae (patch)
treec89c76683d0cdcb23cbae17bc08ff69b8b846319 /packages/sdk/js/script
parent357301991624ae6c361350c1c1aca222268a6d5d (diff)
downloadopencode-24fb9b1296d7bb5942ef5690ee3a806856b18dae.tar.gz
opencode-24fb9b1296d7bb5942ef5690ee3a806856b18dae.zip
fix: stop rewriting dev during release publish (#22982)
Diffstat (limited to 'packages/sdk/js/script')
-rwxr-xr-xpackages/sdk/js/script/publish.ts37
1 files changed, 24 insertions, 13 deletions
diff --git a/packages/sdk/js/script/publish.ts b/packages/sdk/js/script/publish.ts
index ea5c5d634..b5e1211fc 100755
--- a/packages/sdk/js/script/publish.ts
+++ b/packages/sdk/js/script/publish.ts
@@ -7,24 +7,35 @@ import { fileURLToPath } from "url"
const dir = fileURLToPath(new URL("..", import.meta.url))
process.chdir(dir)
+async function published(name: string, version: string) {
+ return (await $`npm view ${name}@${version} version`.nothrow()).exitCode === 0
+}
+
const pkg = (await import("../package.json").then((m) => m.default)) as {
- exports: Record<string, string | object>
+ name: string
+ version: string
+ exports: Record<string, unknown>
}
const original = JSON.parse(JSON.stringify(pkg))
-function transformExports(exports: Record<string, string | object>) {
- for (const [key, value] of Object.entries(exports)) {
- if (typeof value === "object" && value !== null) {
- transformExports(value as Record<string, string | object>)
- } else if (typeof value === "string") {
- const file = value.replace("./src/", "./dist/").replace(".ts", "")
- exports[key] = {
- import: file + ".js",
- types: file + ".d.ts",
+function transformExports(exports: Record<string, unknown>) {
+ return Object.fromEntries(
+ Object.entries(exports).map(([key, value]) => {
+ if (typeof value === "string") {
+ const file = value.replace("./src/", "./dist/").replace(".ts", "")
+ return [key, { import: file + ".js", types: file + ".d.ts" }]
}
- }
- }
+ if (typeof value === "object" && value !== null && !Array.isArray(value)) {
+ return [key, transformExports(value)]
+ }
+ return [key, value]
+ }),
+ )
+}
+if (await published(pkg.name, pkg.version)) {
+ console.log(`already published ${pkg.name}@${pkg.version}`)
+ process.exit(0)
}
-transformExports(pkg.exports)
+pkg.exports = transformExports(pkg.exports)
await Bun.write("package.json", JSON.stringify(pkg, null, 2))
await $`bun pm pack`
await $`npm publish *.tgz --tag ${Script.channel} --access public`