Created
July 6, 2022 16:53
-
-
Save captbaritone/3351af94fb0821b93e26e23fbbc0c4c5 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
'use strict'; | |
const {ROOT_DIR} = require('../../utils/config/index.js'); | |
var fs = require('fs'); | |
const OSS_DIR = `${ROOT_DIR}/xplat/js/RKJSModules/Libraries/Relay/oss`; | |
const COMPILER_TARGETS_FILE = `${ROOT_DIR}/fbcode/relay/oss/crates/relay-compiler/TARGETS`; | |
const COMPILER_CARGO_FILES = [ | |
`${ROOT_DIR}/fbcode/relay/oss/crates/relay-compiler/Cargo.toml`, | |
`${ROOT_DIR}/fbcode/relay/oss/Cargo.oss.lock`, | |
]; | |
function updateCompilerTargetFile(currentVersion, nextVersion) { | |
const text = fs.readFileSync(COMPILER_TARGETS_FILE, 'utf8'); | |
const withUpdatedVersion = text.replace( | |
`"version": "${currentVersion}"`, | |
`"version": "${nextVersion}"`, | |
); | |
fs.writeFileSync(COMPILER_TARGETS_FILE, withUpdatedVersion); | |
} | |
function updateCompilerCargoFiles(currentVersion, nextVersion) { | |
COMPILER_CARGO_FILES.forEach(file => { | |
const text = fs.readFileSync(file, 'utf8'); | |
const withUpdatedVersion = text.replace( | |
`name = "relay-compiler"\nversion = "${currentVersion}"`, | |
`name = "relay-compiler"\nversion = "${nextVersion}"`, | |
); | |
fs.writeFileSync(file, withUpdatedVersion); | |
}); | |
} | |
function getCurrentVersion() { | |
const file = `${OSS_DIR}/__github__/package.json`; | |
const packageJson = require(file); | |
return packageJson.version; | |
} | |
exports.command = 'update-version VERSION'; | |
exports.describe = 'Updates the version of relay across all package.json files'; | |
exports.handler = argv => { | |
const currentVersion = getCurrentVersion(); | |
const version = argv.VERSION; | |
if (!version || !/^\d+\.\d+\.\d+(\-[\d\w\.]+)?$/.test(version)) { | |
console.error( | |
`Invalid version '${version}'\n\n` + | |
'USAGE:\n' + | |
' js1 relay update-version 1.2.3\n' + | |
' js1 relay update-version 1.2.3-rc.1', | |
); | |
process.exit(1); | |
} | |
function updatePackageJson(packageJsonPath, updateVersion) { | |
var packageJson = require(packageJsonPath); | |
if (updateVersion) { | |
packageJson.version = version; | |
} | |
for (const dependenciesKey of [ | |
'dependencies', | |
'devDependencies', | |
'peerDependencies', | |
]) { | |
for (const dep in packageJson[dependenciesKey]) { | |
if (relayPackages.includes(dep)) { | |
packageJson[dependenciesKey][dep] = version; | |
} | |
} | |
} | |
fs.writeFileSync( | |
packageJsonPath, | |
JSON.stringify(packageJson, null, 2) + '\n', | |
'utf8', | |
); | |
} | |
const relayPackages = [ | |
'babel-plugin-relay', | |
'react-relay', | |
'relay-compiler', | |
'relay-runtime', | |
'relay-test-utils', | |
'relay-test-utils-internal', | |
]; | |
updatePackageJson(`${ROOT_DIR}/xplat/js/package.json`); | |
updatePackageJson(`${OSS_DIR}/__github__/package.json`, true); | |
for (const relayPackage of relayPackages) { | |
updatePackageJson(`${OSS_DIR}/${relayPackage}/package.json`, true); | |
} | |
updateCompilerTargetFile(currentVersion, version); | |
updateCompilerCargoFiles(currentVersion, version); | |
console.log( | |
'Updated package.json files, now run:\n' + | |
'\n' + | |
` cd ${ROOT_DIR}/xplat/js && yarn`, | |
); | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment