Created
June 13, 2018 12:32
-
-
Save marcodejongh/fa2bc1ebb7845af0119c6748d8c26750 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
const execSync = require("child_process").execSync; | |
const writeFileSync = require("fs").writeFileSync; | |
const resolve = require("path").resolve; | |
function getDependencyInfo(dependency) { | |
return JSON.parse(execSync(`yarn info --json ${dependency}`)); | |
} | |
/** | |
upgradeCommonDependencies is only needed when using this script for dependencies shipped from the | |
atlaskit repo. The atlaskit repo auto-bumps all it's modules to use the latest versions, so when we're accepting | |
a version we want to make sure all the common dependencies are upgraded as well | |
*/ | |
function upgradeCommonDependencies( | |
target, | |
sourceDependencies = {}, | |
sourceDevDependencies = {} | |
) { | |
const updatedTarget = { ...target }; | |
Object.keys(target) | |
.filter(key => key.startsWith("@atlaskit/")) | |
.forEach(key => { | |
if (sourceDependencies[key]) { | |
updatedTarget[key] = sourceDependencies[key]; | |
} else if (sourceDevDependencies[key]) { | |
updatedTarget[key] = sourceDevDependencies[key]; | |
} | |
}); | |
return updatedTarget; | |
} | |
const packageJsonPath = resolve(process.cwd(), "./package.json"); | |
console.log("Updating editor-core & renderer & shared dependencies"); | |
const packageJson = require(packageJsonPath); | |
const { | |
data: { dependencies, devDependencies, version } | |
} = getDependencyInfo( | |
packageJson.devDependencies["@atlaskit/editor-core-latest"].replace( | |
"npm:", | |
"" | |
) | |
); | |
if (packageJson.devDependencies["@atlaskit/editor-core"]) { | |
packageJson.devDependencies["@atlaskit/editor-core"] = version; | |
} | |
if (packageJson.dependencies["@atlaskit/editor-core"]) { | |
packageJson.dependencies["@atlaskit/editor-core"] = version; | |
} | |
packageJson.devDependencies = upgradeCommonDependencies( | |
packageJson.devDependencies, | |
dependencies | |
); | |
packageJson.dependencies = upgradeCommonDependencies( | |
packageJson.dependencies, | |
dependencies | |
); | |
writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2)); | |
console.log("Updated package.json now running yarn to update lock"); | |
execSync("yarn"); | |
console.log("All done! 🎉"); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment