2026-03-13 14:36:18 -06:00
|
|
|
#!/usr/bin/env node
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Synchronize platform package versions with the root package version.
|
|
|
|
|
*
|
|
|
|
|
* Reads version from root package.json, writes it to all platform
|
|
|
|
|
* package.json files and updates optionalDependencies in root package.json.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
const fs = require("fs");
|
|
|
|
|
const path = require("path");
|
|
|
|
|
|
|
|
|
|
const rootDir = path.resolve(__dirname, "..", "..");
|
|
|
|
|
const npmDir = path.resolve(__dirname, "..", "npm");
|
|
|
|
|
|
|
|
|
|
const rootPkgPath = path.join(rootDir, "package.json");
|
|
|
|
|
const rootPkg = JSON.parse(fs.readFileSync(rootPkgPath, "utf-8"));
|
|
|
|
|
const version = rootPkg.version;
|
|
|
|
|
|
|
|
|
|
console.log(`[sync-platform-versions] Syncing to version ${version}`);
|
|
|
|
|
|
|
|
|
|
const platformPackages = [
|
|
|
|
|
"darwin-arm64",
|
|
|
|
|
"darwin-x64",
|
|
|
|
|
"linux-x64-gnu",
|
|
|
|
|
"linux-arm64-gnu",
|
|
|
|
|
"win32-x64-msvc",
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
// Update each platform package.json
|
|
|
|
|
for (const platform of platformPackages) {
|
|
|
|
|
const pkgPath = path.join(npmDir, platform, "package.json");
|
|
|
|
|
if (!fs.existsSync(pkgPath)) {
|
|
|
|
|
console.warn(` Skipping ${platform}: ${pkgPath} not found`);
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf-8"));
|
|
|
|
|
if (pkg.version !== version) {
|
|
|
|
|
console.log(` ${platform}: ${pkg.version} -> ${version}`);
|
|
|
|
|
pkg.version = version;
|
|
|
|
|
fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + "\n");
|
|
|
|
|
} else {
|
|
|
|
|
console.log(` ${platform}: already ${version}`);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Update optionalDependencies in root package.json
|
|
|
|
|
let rootChanged = false;
|
|
|
|
|
const optDeps = rootPkg.optionalDependencies || {};
|
|
|
|
|
for (const platform of platformPackages) {
|
2026-03-13 14:46:57 -06:00
|
|
|
const depName = `@gsd-build/engine-${platform}`;
|
2026-03-13 14:36:18 -06:00
|
|
|
if (optDeps[depName] && optDeps[depName] !== version) {
|
|
|
|
|
console.log(` root optionalDependencies ${depName}: ${optDeps[depName]} -> ${version}`);
|
|
|
|
|
optDeps[depName] = version;
|
|
|
|
|
rootChanged = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (rootChanged) {
|
|
|
|
|
rootPkg.optionalDependencies = optDeps;
|
|
|
|
|
fs.writeFileSync(rootPkgPath, JSON.stringify(rootPkg, null, 2) + "\n");
|
|
|
|
|
console.log(" Updated root package.json optionalDependencies");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
console.log("[sync-platform-versions] Done.");
|