UNPKG

npm-ws-tools

Version:

Command line tools for working with npm workspaces. Includes version bumping and dependencies version update

61 lines 1.87 kB
export function bumpVersions(root, version, depMod) { if (depMod === undefined) { depMod = "^"; } if (!version) { const versions = root.content.managed_versions; version = versions.bump; } if (!version) { version = "minor"; // default bump strategy } if (!root.isRoot) { console.log("Not a root package: " + root.file); process.exit(1); } const workspaces = root.projects; const versionsMap = {}; for (const ws of workspaces) { ws.version = version; versionsMap[ws.name] = depMod + ws.version; } root.version = version; if (!root.isPnpmRoot) { // pnpm uses workspace:* for (const ws of [root, ...workspaces]) { updateAllDepsVersions(ws, versionsMap); } } for (const ws of workspaces) { ws.save(); } root.save(); } function updateAllDepsVersions(pkg, versionsMap) { updateDepsVersions(pkg, versionsMap, "dependencies"); updateDepsVersions(pkg, versionsMap, "devDependencies"); updateDepsVersions(pkg, versionsMap, "optionalDependencies"); updateDepsVersions(pkg, versionsMap, "peerDependencies"); updateDepsVersions(pkg, versionsMap, "bundleDependencies"); } function updateDepsVersions(pkg, versionsMap, depsKey) { const deps = pkg.content[depsKey]; if (deps) { for (const dep in deps) { if (versionsMap[dep]) { deps[dep] = versionsMap[dep]; } } } } export function updateDependencies(root, versionsMap) { if (!root.isRoot) { console.log("Not a root package: " + root.file); process.exit(1); } const workspaces = root.projects; for (const ws of [root, ...workspaces]) { updateAllDepsVersions(ws, versionsMap); ws.save(); } } //# sourceMappingURL=bump.js.map