UNPKG

npm-ws-tools

Version:

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

66 lines 2.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.updateDependencies = exports.bumpVersions = void 0; 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:* versions for (const ws of [root, ...workspaces]) { updateAllDepsVersions(ws, versionsMap); } for (const ws of workspaces) { ws.save(); } } root.save(); } exports.bumpVersions = bumpVersions; 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]; } } } } 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(); } } exports.updateDependencies = updateDependencies; //# sourceMappingURL=bump.js.map