diff options
| author | Kit Langton <[email protected]> | 2026-04-17 22:53:19 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-04-18 02:53:19 +0000 |
| commit | 24fb9b1296d7bb5942ef5690ee3a806856b18dae (patch) | |
| tree | c89c76683d0cdcb23cbae17bc08ff69b8b846319 /packages/sdk/js/script | |
| parent | 357301991624ae6c361350c1c1aca222268a6d5d (diff) | |
| download | opencode-24fb9b1296d7bb5942ef5690ee3a806856b18dae.tar.gz opencode-24fb9b1296d7bb5942ef5690ee3a806856b18dae.zip | |
fix: stop rewriting dev during release publish (#22982)
Diffstat (limited to 'packages/sdk/js/script')
| -rwxr-xr-x | packages/sdk/js/script/publish.ts | 37 |
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` |
