UNPKG

@lerna/publish

Version:

Publish packages in the current project

103 lines (102 loc) 5.12 kB
var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var collect_updates_exports = {}; __export(collect_updates_exports, { collectPackages: () => import_collect_packages.collectPackages, collectUpdates: () => collectUpdates, getPackagesForOption: () => import_get_packages_for_option.getPackagesForOption }); module.exports = __toCommonJS(collect_updates_exports); var import_npmlog = __toESM(require("npmlog")); var import_describe_ref = require("../describe-ref"); var import_collect_packages = require("./collect-packages"); var import_get_packages_for_option = require("./get-packages-for-option"); var import_has_tags = require("./has-tags"); var import_make_diff_predicate = require("./make-diff-predicate"); function collectUpdates(filteredPackages, packageGraph, execOpts, commandOptions) { const { forcePublish, conventionalCommits, conventionalGraduate, excludeDependents } = commandOptions; const useConventionalGraduate = conventionalCommits && conventionalGraduate; const forced = (0, import_get_packages_for_option.getPackagesForOption)(useConventionalGraduate ? conventionalGraduate : forcePublish); const packages = filteredPackages.length === packageGraph.size ? packageGraph : new Map(filteredPackages.map(({ name }) => [name, packageGraph.get(name)])); let committish = commandOptions.since; if ((0, import_has_tags.hasTags)(execOpts)) { const { sha, refCount, lastTagName } = (0, import_describe_ref.describeRefSync)(execOpts, commandOptions.includeMergedTags); if (refCount === "0" && forced.size === 0 && !committish) { import_npmlog.default.notice("", "Current HEAD is already released, skipping change detection."); return []; } if (commandOptions.canary) { committish = `${sha}^..${sha}`; } else if (!committish) { committish = lastTagName; } } if (forced.size) { import_npmlog.default.warn( useConventionalGraduate ? "conventional-graduate" : "force-publish", forced.has("*") ? "all packages" : Array.from(forced.values()).join("\n") ); } if (useConventionalGraduate) { if (forced.has("*")) { import_npmlog.default.info("", "Graduating all prereleased packages"); } else { import_npmlog.default.info("", "Graduating prereleased packages"); } } else if (!committish || forced.has("*")) { import_npmlog.default.info("", "Assuming all packages changed"); return (0, import_collect_packages.collectPackages)(packages, { onInclude: (name) => import_npmlog.default.verbose("updated", name), excludeDependents }); } import_npmlog.default.info("", `Looking for changed packages since ${committish}`); const hasDiff = (0, import_make_diff_predicate.makeDiffPredicate)(committish, execOpts, commandOptions.ignoreChanges); const needsBump = !commandOptions.bump || commandOptions.bump.startsWith("pre") ? () => false : ( /* skip packages that have not been previously prereleased */ // TODO: refactor to address type issues // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore (node) => node.prereleaseId ); const isForced = (node, name) => (forced.has("*") || forced.has(name)) && (useConventionalGraduate ? node.prereleaseId : true); return (0, import_collect_packages.collectPackages)(packages, { // TODO: refactor to address type issues // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore isCandidate: (node, name) => isForced(node, name) || needsBump(node) || hasDiff(node), onInclude: (name) => import_npmlog.default.verbose("updated", name), excludeDependents }); } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { collectPackages, collectUpdates, getPackagesForOption });