From 44b8935997ea1db76abe62e826963da7227c1701 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kh=E1=BA=A3i?= Date: Sun, 22 Sep 2024 07:37:50 +0700 Subject: [PATCH] fix(listing): `--json` shows wrong `private` (#8541) close #8519 --- .changeset/famous-tigers-protect.md | 7 +++++ reviewing/list/src/index.ts | 1 + reviewing/plugin-commands-listing/src/list.ts | 1 + .../plugin-commands-listing/test/json.ts | 31 +++++++++++++++++++ 4 files changed, 40 insertions(+) create mode 100644 .changeset/famous-tigers-protect.md create mode 100644 reviewing/plugin-commands-listing/test/json.ts diff --git a/.changeset/famous-tigers-protect.md b/.changeset/famous-tigers-protect.md new file mode 100644 index 0000000000..81843758e7 --- /dev/null +++ b/.changeset/famous-tigers-protect.md @@ -0,0 +1,7 @@ +--- +"@pnpm/plugin-commands-listing": patch +"@pnpm/list": patch +"pnpm": patch +--- + +Fix issue where `pnpm list --json pkg` shows `"private": false` for a private package [#8519](https://github.com/pnpm/pnpm/issues/8519). diff --git a/reviewing/list/src/index.ts b/reviewing/list/src/index.ts index 375a5ac3fe..2732dca225 100644 --- a/reviewing/list/src/index.ts +++ b/reviewing/list/src/index.ts @@ -87,6 +87,7 @@ export async function searchForPackages ( return { name: entryPkg.name, version: entryPkg.version, + private: entryPkg.private, path: projectPath, ...buildDependenciesHierarchy, diff --git a/reviewing/plugin-commands-listing/src/list.ts b/reviewing/plugin-commands-listing/src/list.ts index 2750fcae67..f060bfe032 100644 --- a/reviewing/plugin-commands-listing/src/list.ts +++ b/reviewing/plugin-commands-listing/src/list.ts @@ -133,6 +133,7 @@ export type ListCommandOptions = Pick { + test.each([ + [undefined, false], + [false, false], + [true, true], + ])('%s -> %s', async (given, expected) => { + prepare({ + name: 'root', + version: '0.0.0', + private: given, + }) + + const output = await list.handler({ + ...DEFAULT_OPTS, + dir: process.cwd(), + json: true, + }, ['root']) + + expect(JSON.parse(output)).toStrictEqual([{ + name: 'root', + version: '0.0.0', + private: expected, + path: expect.any(String), + }]) + }) +})