From f9e18fa6c47b6d1ecd3e67bb209c7f5245e791ce Mon Sep 17 00:00:00 2001 From: Paul Sherman Date: Thu, 31 Jan 2019 13:04:11 -0600 Subject: [PATCH] fix(publish): Skip private package lookup (#1905) --- .../__fixtures__/public-private/LICENSE | 3 +++ .../__fixtures__/public-private/lerna.json | 3 +++ .../__fixtures__/public-private/package.json | 4 ++++ .../packages/package-1/package.json | 4 ++++ .../packages/package-2/package.json | 5 +++++ .../get-unpublished-packages.test.js | 20 +++++++++++++++++++ .../publish/lib/get-unpublished-packages.js | 5 ++++- 7 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 commands/publish/__tests__/__fixtures__/public-private/LICENSE create mode 100644 commands/publish/__tests__/__fixtures__/public-private/lerna.json create mode 100644 commands/publish/__tests__/__fixtures__/public-private/package.json create mode 100644 commands/publish/__tests__/__fixtures__/public-private/packages/package-1/package.json create mode 100644 commands/publish/__tests__/__fixtures__/public-private/packages/package-2/package.json diff --git a/commands/publish/__tests__/__fixtures__/public-private/LICENSE b/commands/publish/__tests__/__fixtures__/public-private/LICENSE new file mode 100644 index 0000000000..de4d3b4095 --- /dev/null +++ b/commands/publish/__tests__/__fixtures__/public-private/LICENSE @@ -0,0 +1,3 @@ +Copyright (c) 2018 Tester McPerson + +ABC License diff --git a/commands/publish/__tests__/__fixtures__/public-private/lerna.json b/commands/publish/__tests__/__fixtures__/public-private/lerna.json new file mode 100644 index 0000000000..1587a66968 --- /dev/null +++ b/commands/publish/__tests__/__fixtures__/public-private/lerna.json @@ -0,0 +1,3 @@ +{ + "version": "1.0.0" +} diff --git a/commands/publish/__tests__/__fixtures__/public-private/package.json b/commands/publish/__tests__/__fixtures__/public-private/package.json new file mode 100644 index 0000000000..d9659f8eb7 --- /dev/null +++ b/commands/publish/__tests__/__fixtures__/public-private/package.json @@ -0,0 +1,4 @@ +{ + "name": "licenses", + "version": "0.0.0-monorepo" +} diff --git a/commands/publish/__tests__/__fixtures__/public-private/packages/package-1/package.json b/commands/publish/__tests__/__fixtures__/public-private/packages/package-1/package.json new file mode 100644 index 0000000000..8eb2fba205 --- /dev/null +++ b/commands/publish/__tests__/__fixtures__/public-private/packages/package-1/package.json @@ -0,0 +1,4 @@ +{ + "name": "package-1", + "version": "1.0.0" +} diff --git a/commands/publish/__tests__/__fixtures__/public-private/packages/package-2/package.json b/commands/publish/__tests__/__fixtures__/public-private/packages/package-2/package.json new file mode 100644 index 0000000000..7f3763b5eb --- /dev/null +++ b/commands/publish/__tests__/__fixtures__/public-private/packages/package-2/package.json @@ -0,0 +1,5 @@ +{ + "name": "package-2", + "version": "1.0.0", + "private": true +} diff --git a/commands/publish/__tests__/get-unpublished-packages.test.js b/commands/publish/__tests__/get-unpublished-packages.test.js index 29882d6c60..fe15121b17 100644 --- a/commands/publish/__tests__/get-unpublished-packages.test.js +++ b/commands/publish/__tests__/get-unpublished-packages.test.js @@ -68,3 +68,23 @@ Array [ ] `); }); + +test("getUnpublishedPackages with private package", async () => { + const cwd = await initFixture("public-private"); + const packages = await getPackages(cwd); + const packageGraph = new PackageGraph(packages); + + const opts = new Map(); + const pkgs = await getUnpublishedPackages(packageGraph, opts); + + expect(pkgs).toMatchInlineSnapshot(` +Array [ + PackageGraphNode { + "externalDependencies": Map {}, + "localDependencies": Map {}, + "localDependents": Map {}, + "name": "package-1", + }, +] +`); +}); diff --git a/commands/publish/lib/get-unpublished-packages.js b/commands/publish/lib/get-unpublished-packages.js index 4e5cbf2b8d..fe83bd9047 100644 --- a/commands/publish/lib/get-unpublished-packages.js +++ b/commands/publish/lib/get-unpublished-packages.js @@ -11,6 +11,9 @@ function getUnpublishedPackages(packageGraph, opts) { let chain = Promise.resolve(); + // don't bother attempting to get the packument for private packages + const graphNodesToCheck = Array.from(packageGraph.values()).filter(({ pkg }) => !pkg.private); + const mapper = pkg => getPackument(pkg.name, opts).then( packument => { @@ -24,7 +27,7 @@ function getUnpublishedPackages(packageGraph, opts) { } ); - chain = chain.then(() => pMap(packageGraph.values(), mapper, { concurrency: 4 })); + chain = chain.then(() => pMap(graphNodesToCheck, mapper, { concurrency: 4 })); return chain.then(results => results.filter(Boolean)); }