summaryrefslogtreecommitdiffhomepage
path: root/packages/plugin/script
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2026-04-18 12:31:59 -0400
committerDax Raad <[email protected]>2026-04-18 12:32:23 -0400
commit5eaef6b758cbfb683deadb8d440a420c3c1ee1f8 (patch)
tree44ed60450e987d9cbee29954911f1d0b47860d72 /packages/plugin/script
parentc5c38cad9c444070fa3b18d569fa75eb2ab40407 (diff)
downloadopencode-5eaef6b758cbfb683deadb8d440a420c3c1ee1f8.tar.gz
opencode-5eaef6b758cbfb683deadb8d440a420c3c1ee1f8.zip
release: avoid package.json drift during publish
Diffstat (limited to 'packages/plugin/script')
-rwxr-xr-xpackages/plugin/script/publish.ts36
1 files changed, 21 insertions, 15 deletions
diff --git a/packages/plugin/script/publish.ts b/packages/plugin/script/publish.ts
index de129918c..fea8c7230 100755
--- a/packages/plugin/script/publish.ts
+++ b/packages/plugin/script/publish.ts
@@ -11,22 +11,28 @@ async function published(name: string, version: string) {
}
await $`bun tsc`
-const pkg = await import("../package.json").then(
- (m) => m.default as { name: string; version: string; exports: Record<string, string> },
-)
-const original = JSON.parse(JSON.stringify(pkg))
+const originalText = await Bun.file("package.json").text()
+const pkg = JSON.parse(originalText) as {
+ name: string
+ version: string
+ exports: Record<string, string>
+}
if (await published(pkg.name, pkg.version)) {
console.log(`already published ${pkg.name}@${pkg.version}`)
- process.exit(0)
-}
-for (const [key, value] of Object.entries(pkg.exports)) {
- const file = value.replace("./src/", "./dist/").replace(".ts", "")
- // @ts-ignore
- pkg.exports[key] = {
- import: file + ".js",
- types: file + ".d.ts",
+} else {
+ for (const [key, value] of Object.entries(pkg.exports)) {
+ const file = value.replace("./src/", "./dist/").replace(".ts", "")
+ // @ts-ignore
+ pkg.exports[key] = {
+ import: file + ".js",
+ types: file + ".d.ts",
+ }
+ }
+ await Bun.write("package.json", JSON.stringify(pkg, null, 2))
+ try {
+ await $`bun pm pack`
+ await $`npm publish *.tgz --tag ${Script.channel} --access public`
+ } finally {
+ await Bun.write("package.json", originalText)
}
}
-await Bun.write("package.json", JSON.stringify(pkg, null, 2))
-await $`bun pm pack && npm publish *.tgz --tag ${Script.channel} --access public`
-await Bun.write("package.json", JSON.stringify(original, null, 2))