38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
import {readFileSync, writeFileSync, readdirSync} from "fs"
|
|
import {join} from "path"
|
|
|
|
// Read the root package.json to get the version
|
|
const rootPackage = JSON.parse(readFileSync("package.json", "utf8"))
|
|
const version = rootPackage.version
|
|
|
|
if (!version) {
|
|
console.error("No version found in root package.json")
|
|
process.exit(1)
|
|
}
|
|
|
|
// Get all directories in packages/
|
|
const packagesDir = "packages"
|
|
const packages = readdirSync(packagesDir, {withFileTypes: true})
|
|
.filter(dirent => dirent.isDirectory())
|
|
.map(dirent => dirent.name)
|
|
|
|
// Update each package.json
|
|
for (const pkg of packages) {
|
|
const packageJsonPath = join(packagesDir, pkg, "package.json")
|
|
|
|
try {
|
|
const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf8"))
|
|
|
|
// Update the package version
|
|
packageJson.version = version
|
|
|
|
// Write back to file with proper formatting
|
|
writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2) + "\n")
|
|
console.log(`Updated ${packageJsonPath}`)
|
|
} catch (error) {
|
|
console.error(`Error processing ${packageJsonPath}:`, error)
|
|
}
|
|
}
|
|
|
|
console.log("Version update complete!")
|