sync-version.js 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. #!/usr/bin/env node
  2. const fs = require("fs");
  3. const path = require("path");
  4. const ROOT = path.resolve(__dirname, "..");
  5. const CORE_PKG = path.join(ROOT, "packages/core/package.json");
  6. const core = JSON.parse(fs.readFileSync(CORE_PKG, "utf8"));
  7. const version = core.version;
  8. console.log(`Canonical version (from @json-render/core): ${version}`);
  9. const packagesDir = path.join(ROOT, "packages");
  10. let updated = 0;
  11. for (const dir of fs.readdirSync(packagesDir)) {
  12. const pkgPath = path.join(packagesDir, dir, "package.json");
  13. if (!fs.existsSync(pkgPath)) continue;
  14. const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf8"));
  15. if (!pkg.name || !pkg.name.startsWith("@json-render/")) continue;
  16. if (pkg.version === version) continue;
  17. console.log(` ${pkg.name}: ${pkg.version} -> ${version}`);
  18. pkg.version = version;
  19. fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + "\n");
  20. updated++;
  21. }
  22. if (updated === 0) {
  23. console.log("All @json-render/* packages are already in sync.");
  24. } else {
  25. console.log(`Updated ${updated} package(s).`);
  26. }