Socket
Socket
Sign inDemoInstall

@lerna/collect-updates

Package Overview
Dependencies
5
Maintainers
2
Versions
83
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 3.13.3 to 3.14.0

lib/collect-packages.js

11

CHANGELOG.md

@@ -6,2 +6,13 @@ # Change Log

# [3.14.0](https://github.com/lerna/lerna/compare/v3.13.4...v3.14.0) (2019-05-14)
### Features
* **conventional-commits:** Add conventional prerelease/graduation ([#1991](https://github.com/lerna/lerna/issues/1991)) ([5d84b61](https://github.com/lerna/lerna/commit/5d84b61)), closes [#1433](https://github.com/lerna/lerna/issues/1433) [#1675](https://github.com/lerna/lerna/issues/1675)
## [3.13.3](https://github.com/lerna/lerna/compare/v3.13.2...v3.13.3) (2019-04-17)

@@ -8,0 +19,0 @@

71

collect-updates.js

@@ -7,10 +7,17 @@ "use strict";

const hasTags = require("./lib/has-tags");
const collectDependents = require("./lib/collect-dependents");
const getForcedPackages = require("./lib/get-forced-packages");
const collectPackages = require("./lib/collect-packages");
const getPackagesForOption = require("./lib/get-packages-for-option");
const makeDiffPredicate = require("./lib/make-diff-predicate");
module.exports = collectUpdates;
module.exports.collectPackages = collectPackages;
module.exports.getPackagesForOption = getPackagesForOption;
function collectUpdates(filteredPackages, packageGraph, execOpts, commandOptions) {
const forced = getForcedPackages(commandOptions.forcePublish);
const { forcePublish, conventionalCommits, conventionalGraduate } = commandOptions;
// If --conventional-commits and --conventional-graduate are both set, ignore --force-publish
const useConventionalGraduate = conventionalCommits && conventionalGraduate;
const forced = getPackagesForOption(useConventionalGraduate ? conventionalGraduate : forcePublish);
const packages =

@@ -47,43 +54,39 @@ filteredPackages.length === packageGraph.size

// "warn" might seem a bit loud, but it is appropriate for logging anything _forced_
log.warn("force-publish", forced.has("*") ? "all packages" : Array.from(forced.values()).join("\n"));
log.warn(
useConventionalGraduate ? "conventional-graduate" : "force-publish",
forced.has("*") ? "all packages" : Array.from(forced.values()).join("\n")
);
}
let candidates;
if (!committish || forced.has("*")) {
if (useConventionalGraduate) {
// --conventional-commits --conventional-graduate
if (forced.has("*")) {
log.info("", "Graduating all prereleased packages");
} else {
log.info("", "Graduating prereleased packages");
}
} else if (!committish || forced.has("*")) {
// --force-publish or no tag
log.info("", "Assuming all packages changed");
candidates = new Set(packages.values());
} else {
log.info("", `Looking for changed packages since ${committish}`);
candidates = new Set();
const hasDiff = makeDiffPredicate(committish, execOpts, commandOptions.ignoreChanges);
const needsBump =
!commandOptions.bump || commandOptions.bump.startsWith("pre")
? () => false
: /* skip packages that have not been previously prereleased */
node => node.prereleaseId;
packages.forEach((node, name) => {
if (forced.has(name) || needsBump(node) || hasDiff(node)) {
candidates.add(node);
}
return collectPackages(packages, {
onInclude: name => log.verbose("updated", name),
});
}
const dependents = collectDependents(candidates);
dependents.forEach(node => candidates.add(node));
log.info("", `Looking for changed packages since ${committish}`);
// The result should always be in the same order as the input
const updates = [];
const hasDiff = makeDiffPredicate(committish, execOpts, commandOptions.ignoreChanges);
const needsBump =
!commandOptions.bump || commandOptions.bump.startsWith("pre")
? () => false
: /* skip packages that have not been previously prereleased */
node => node.prereleaseId;
const isForced = (node, name) =>
(forced.has("*") || forced.has(name)) && (useConventionalGraduate ? node.prereleaseId : true);
packages.forEach((node, name) => {
if (candidates.has(node)) {
log.verbose("updated", name);
updates.push(node);
}
return collectPackages(packages, {
isCandidate: (node, name) => isForced(node, name) || needsBump(node) || hasDiff(node),
onInclude: name => log.verbose("updated", name),
});
return updates;
}
{
"name": "@lerna/collect-updates",
"version": "3.13.3",
"version": "3.14.0",
"description": "An internal Lerna tool",

@@ -41,3 +41,3 @@ "keywords": [

},
"gitHead": "1496beb6278b001074d970bdd5869bb1f958d998"
"gitHead": "39da145c67ea587457694f318f32f967b9d66ea9"
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc