summaryrefslogtreecommitdiffhomepage
path: root/packages/sdk/js/script
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2026-02-18 20:40:35 -0500
committerDax Raad <[email protected]>2026-02-18 20:43:50 -0500
commit3a416f6f33254e541de05cb2d661bdc0d010dd9e (patch)
tree5bb71dae4c72ae48008da01595cf415c21219cde /packages/sdk/js/script
parent11a37834c2afd5a1ba88f8417701472234caaa3a (diff)
downloadopencode-3a416f6f33254e541de05cb2d661bdc0d010dd9e.tar.gz
opencode-3a416f6f33254e541de05cb2d661bdc0d010dd9e.zip
sdk: fix nested exports transformation in publish script
The publish script now recursively transforms export paths to handle nested export objects. This ensures all SDK entry points are correctly mapped to their compiled dist/ locations and type definitions when publishing to npm.
Diffstat (limited to 'packages/sdk/js/script')
-rwxr-xr-xpackages/sdk/js/script/publish.ts21
1 files changed, 15 insertions, 6 deletions
diff --git a/packages/sdk/js/script/publish.ts b/packages/sdk/js/script/publish.ts
index 46dd42b70..c21f06230 100755
--- a/packages/sdk/js/script/publish.ts
+++ b/packages/sdk/js/script/publish.ts
@@ -6,15 +6,24 @@ import { $ } from "bun"
const dir = new URL("..", import.meta.url).pathname
process.chdir(dir)
-const pkg = await import("../package.json").then((m) => m.default)
+const pkg = (await import("../package.json").then((m) => m.default)) as {
+ exports: Record<string, string | object>
+}
const original = JSON.parse(JSON.stringify(pkg))
-for (const [key, value] of Object.entries(pkg.exports)) {
- const file = value.replace("./src/", "./dist/").replace(".ts", "")
- pkg.exports[key] = {
- import: file + ".js",
- types: file + ".d.ts",
+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",
+ }
+ }
}
}
+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`