From eadf0e505228376acb5e600ee275c6388bc71eb4 Mon Sep 17 00:00:00 2001 From: Zoltan Kochan Date: Sun, 5 Sep 2021 02:02:59 +0300 Subject: [PATCH] perf: accept gzip, deflate encoding from the registry (#3745) ref #3738 --- .changeset/loud-peas-yawn.md | 6 ++++++ .changeset/strong-coats-occur.md | 6 ++++++ packages/fetch/src/fetchFromRegistry.ts | 2 +- packages/fetching-types/src/index.ts | 1 + packages/npm-resolver/src/fetch.ts | 1 + 5 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 .changeset/loud-peas-yawn.md create mode 100644 .changeset/strong-coats-occur.md diff --git a/.changeset/loud-peas-yawn.md b/.changeset/loud-peas-yawn.md new file mode 100644 index 0000000000..0d3a4285ec --- /dev/null +++ b/.changeset/loud-peas-yawn.md @@ -0,0 +1,6 @@ +--- +"@pnpm/fetch": minor +"@pnpm/fetching-types": minor +--- + +New optional option added: compress. diff --git a/.changeset/strong-coats-occur.md b/.changeset/strong-coats-occur.md new file mode 100644 index 0000000000..9a1c784dd2 --- /dev/null +++ b/.changeset/strong-coats-occur.md @@ -0,0 +1,6 @@ +--- +"@pnpm/npm-resolver": patch +--- + +The metadata file should be requested in compressed state. + diff --git a/packages/fetch/src/fetchFromRegistry.ts b/packages/fetch/src/fetchFromRegistry.ts index 66614cba82..5f61f79f6d 100644 --- a/packages/fetch/src/fetchFromRegistry.ts +++ b/packages/fetch/src/fetchFromRegistry.ts @@ -43,7 +43,7 @@ export default function ( const response = await fetch(urlObject, { agent, // if verifying integrity, node-fetch must not decompress - compress: false, + compress: opts?.compress ?? false, headers, redirect: 'manual', retry: opts?.retry, diff --git a/packages/fetching-types/src/index.ts b/packages/fetching-types/src/index.ts index 6ad89e6b87..be6e469bb9 100644 --- a/packages/fetching-types/src/index.ts +++ b/packages/fetching-types/src/index.ts @@ -7,6 +7,7 @@ export type FetchFromRegistry = ( url: string, opts?: { authHeaderValue?: string + compress?: boolean retry?: RetryTimeoutOptions timeout?: number } diff --git a/packages/npm-resolver/src/fetch.ts b/packages/npm-resolver/src/fetch.ts index b7e85f3f90..66f9dbba0f 100644 --- a/packages/npm-resolver/src/fetch.ts +++ b/packages/npm-resolver/src/fetch.ts @@ -54,6 +54,7 @@ export default async function fromRegistry ( try { response = await fetch(uri, { authHeaderValue, + compress: true, retry: fetchOpts.retry, timeout: fetchOpts.timeout, }) as RegistryResponse