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.
This commit is contained in:
Dax Raad
2026-02-18 20:40:35 -05:00
parent 11a37834c2
commit 3a416f6f33

View File

@@ -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)) {
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", "")
pkg.exports[key] = {
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`