47 lines
1.2 KiB
JavaScript
47 lines
1.2 KiB
JavaScript
const fs = require("fs")
|
|
const path = require("path")
|
|
|
|
const MONOREPO_ROOT = "packages"
|
|
|
|
const packages = getPackages()
|
|
|
|
function getPackages() {
|
|
if (fs.existsSync(MONOREPO_ROOT)) {
|
|
return fs.readdirSync(MONOREPO_ROOT).map(pkg => path.join(MONOREPO_ROOT, pkg))
|
|
} else {
|
|
return ["./"]
|
|
}
|
|
}
|
|
|
|
function pinDeps(dependencies) {
|
|
for (let dependency in dependencies) {
|
|
if (dependency.startsWith("@budibase")) {
|
|
dependencies[dependency] = dependencies[dependency].replace("^", "")
|
|
}
|
|
}
|
|
return dependencies
|
|
}
|
|
|
|
// iterate over the monorepo packages
|
|
for (let pkgPath of packages) {
|
|
// only directories
|
|
if (fs.statSync(pkgPath).isDirectory()) {
|
|
// get the package JSON file
|
|
const pkgJsonPath = path.join(pkgPath, "package.json")
|
|
if (!fs.existsSync(pkgJsonPath)) {
|
|
continue
|
|
}
|
|
const pkgJson = JSON.parse(fs.readFileSync(pkgJsonPath))
|
|
|
|
|
|
// find any budibase dependencies, and pin them
|
|
pkgJson.dependencies = pinDeps(pkgJson.dependencies)
|
|
pkgJson.devDependencies = pinDeps(pkgJson.devDependencies)
|
|
|
|
// update the package JSON files
|
|
fs.writeFileSync(pkgJsonPath, JSON.stringify(pkgJson, null, 2))
|
|
}
|
|
}
|
|
|
|
console.log("Pinned dev versions for budibase packages successfully.")
|