Skip to content

Instantly share code, notes, and snippets.

@marcodejongh
Created June 13, 2018 12:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save marcodejongh/fa2bc1ebb7845af0119c6748d8c26750 to your computer and use it in GitHub Desktop.
Save marcodejongh/fa2bc1ebb7845af0119c6748d8c26750 to your computer and use it in GitHub Desktop.
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