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