From 62feac653014b6ea1f1528af9bdacbb6731ed5cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joe=CC=88l?= Date: Fri, 26 Mar 2021 17:29:07 +0100 Subject: [PATCH] test(client): measure zip size --- src/packages/client/.gitignore | 1 + .../huge-schema/huge-schema.bench.ts | 42 +++++++++++++++---- 2 files changed, 34 insertions(+), 9 deletions(-) diff --git a/src/packages/client/.gitignore b/src/packages/client/.gitignore index a2bb6bc4201e..143f9c16f221 100644 --- a/src/packages/client/.gitignore +++ b/src/packages/client/.gitignore @@ -30,3 +30,4 @@ write-test prisma-client-*.tgz *.tsbuildinfo pnpm-lock.yaml +*.zip diff --git a/src/packages/client/src/__tests__/benchmarks/huge-schema/huge-schema.bench.ts b/src/packages/client/src/__tests__/benchmarks/huge-schema/huge-schema.bench.ts index 704748c87790..2cfdf0dde474 100644 --- a/src/packages/client/src/__tests__/benchmarks/huge-schema/huge-schema.bench.ts +++ b/src/packages/client/src/__tests__/benchmarks/huge-schema/huge-schema.bench.ts @@ -40,25 +40,45 @@ suite console.log(String(event.target)) }) .on('complete', () => { - getSize('@prisma/client') - getSize('.prisma/client') - getSize('.prisma/client/index.d.ts') - getSize('.prisma/client/index.js') + getSize('./node_modules/@prisma/client') + getSize('./node_modules/.prisma/client') + getSize('./node_modules/.prisma/client/index.d.ts') + getSize('./node_modules/.prisma/client/index.js') // For GitHub CI - getSize('.prisma/client/query-engine-debian-openssl-1.1.x') + getSize('./node_modules/.prisma/client/query-engine-darwin') + + // Zip .prisma/client and @prisma/client and check size + execa.sync('rm', ['-rf', `./dotPlusAtPrismaClientFolder.zip`], { + stdout: 'pipe', + cwd: __dirname, + }) + execa.sync( + 'zip', + [ + '-r', + 'dotPlusAtPrismaClientFolder.zip', + './node_modules/.prisma/client', + './node_modules/@prisma/client', + ], + { + stdout: 'pipe', + cwd: __dirname, + }, + ) + getSize('./dotPlusAtPrismaClientFolder.zip') }) .run() const regex = new RegExp(/([\d]{1,99}([.]\d{1,99})?)(\w)/) -function getSize(packageName: string): { size: string; unit: string } { - // const listFiles = execa.sync('ls', ['-la', `./node_modules/${packageName}`], { +function getSize(targetPath: string): { size: string; unit: string } { + // const listFiles = execa.sync('ls', ['-la', `./node_modules/${targetPath}`], { // stdout: 'pipe', // cwd: __dirname, // }) // console.log(listFiles) - const output = execa.sync('du', ['-sh', `./node_modules/${packageName}`], { + const output = execa.sync('du', ['-sh', targetPath], { stdout: 'pipe', cwd: __dirname, }) @@ -66,6 +86,10 @@ function getSize(packageName: string): { size: string; unit: string } { const match = regex.exec(str) const pkgSize = { size: match[1], unit: match[3] } console.log( - `${packageName} size x ${pkgSize.size} ${pkgSize.unit}B ±0.00% (1 runs sampled)`, + `${targetPath.replace('./node_modules/', '').replace('./', '')} size x ${ + pkgSize.size + } ${pkgSize.unit}B ±0.00% (1 runs sampled)`, ) + + return pkgSize }