From 941ffd4171ed66b07c41d650af027d5313088d73 Mon Sep 17 00:00:00 2001 From: Djobbo Date: Thu, 25 Apr 2024 03:20:33 +0200 Subject: [PATCH] correctly update local deps publish dev --- scripts/publish-dev.ts | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/scripts/publish-dev.ts b/scripts/publish-dev.ts index babb831..706f5b0 100755 --- a/scripts/publish-dev.ts +++ b/scripts/publish-dev.ts @@ -23,6 +23,20 @@ const logBoxed = (msg: string) => { } const newLine = () => console.log() +const updateLocalDeps = (deps: Record, newVersion: string) => + Object.fromEntries( + Object.entries(deps || {}).map(([dep, ver]) => [ + dep, + [ + PLACEHOLDER_VERSION, + `workspace:${PLACEHOLDER_VERSION}`, + `workspace:*`, + ].includes(typeof ver === "string" ? ver : "") + ? newVersion + : ver, + ]), + ) + const [, , packageName, packageFolder, ...args] = process.argv if (!packageName) { @@ -124,9 +138,19 @@ logInfo( const packageJsonPath = packageFolder + "/package.json" if (!dryRun) { - await $`sed -i "s/workspace:${PLACEHOLDER_VERSION}/${newDevVersion}/g" ${packageJsonPath}` - await $`sed -i "s/workspace:\*/${newDevVersion}/g" ${packageJsonPath}` - await $`sed -i "s/${PLACEHOLDER_VERSION}/${newDevVersion}/g" ${packageJsonPath}` + const packageJson = await import(packageJsonPath) + packageJson.version = newDevVersion + + packageJson.dependencies = updateLocalDeps( + packageJson.dependencies, + newDevVersion, + ) + packageJson.devDependencies = updateLocalDeps( + packageJson.devDependencies, + newDevVersion, + ) + + await Bun.write(packageJsonPath, JSON.stringify(packageJson, null, 2)) } else { logInfo(`Dry run: Would have updated version to ${newDevVersion}`) }