Find the cost of adding an npm package to your app's bundle size teardown.kelinci.dev
14
fork

Configure Feed

Select the types of activity you want to include in your feed.

refactor: minor nits

Mary 782b3d9f 2b38a199

+21 -14
+18 -11
src/npm/lib/bundler.ts
··· 1 - import { getUtf8Length } from '@atcute/uint8array'; 1 + import { encodeUtf8, getUtf8Length } from '@atcute/uint8array'; 2 2 import { rolldown } from '@rolldown/browser'; 3 3 import { memfs } from '@rolldown/browser/experimental'; 4 4 ··· 18 18 * get compressed size using a compression stream. 19 19 */ 20 20 async function getCompressedSize(code: string, format: CompressionFormat): Promise<number> { 21 - const stream = new Blob([code]).stream(); 22 - const compressed = stream.pipeThrough(new CompressionStream(format)); 23 - const reader = compressed.getReader(); 21 + const { readable, writable } = new CompressionStream(format); 22 + 23 + { 24 + const writer = writable.getWriter(); 25 + writer.write(encodeUtf8(code)); 26 + writer.close(); 27 + } 24 28 25 29 let size = 0; 26 - while (true) { 27 - const { done, value } = await reader.read(); 28 - if (done) { 29 - break; 30 + { 31 + const reader = readable.getReader(); 32 + while (true) { 33 + const { done, value: chunk } = await reader.read(); 34 + if (done) { 35 + break; 36 + } 37 + 38 + size += chunk.byteLength; 30 39 } 31 - 32 - size += value.byteLength; 33 40 } 34 41 35 42 return size; ··· 114 121 } 115 122 } 116 123 117 - const encoded = new TextEncoder().encode(code); 124 + const encoded = encodeUtf8(code); 118 125 const compressed = zstdWasm.compress(encoded); 119 126 120 127 return compressed.byteLength;
+3 -3
src/npm/lib/resolve.ts
··· 131 131 } 132 132 133 133 // prefer non-deprecated versions (pnpm behavior) 134 - const nonDeprecated = validVersions.filter((v) => !versions[v].deprecated); 135 - if (nonDeprecated.length > 0) { 136 - return versions[nonDeprecated[0]]; 134 + const nonDeprecated = validVersions.find((v) => !versions[v].deprecated); 135 + if (nonDeprecated !== undefined) { 136 + return versions[nonDeprecated]; 137 137 } 138 138 139 139 // fall back to deprecated if no alternatives