Skip to content

Commit 242f949

Browse files
committed
Extract assertProjectTarballSizeDoesNotExceedLimit
1 parent a22d9bf commit 242f949

File tree

3 files changed

+18
-8
lines changed

3 files changed

+18
-8
lines changed

packages/eas-cli/src/build/build.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import { collectMetadataAsync } from './metadata';
3535
import { printDeprecationWarnings } from './utils/printBuildInfo';
3636
import {
3737
LocalFile,
38+
assertProjectTarballSizeDoesNotExceedLimit,
3839
makeProjectMetadataFileAsync,
3940
makeProjectTarballAsync,
4041
maybeWarnAboutProjectTarballSize,
@@ -277,10 +278,7 @@ async function uploadProjectAsync<TPlatform extends Platform>(
277278
const projectTarball = await makeProjectTarballAsync(ctx.vcsClient);
278279

279280
maybeWarnAboutProjectTarballSize(projectTarball.size);
280-
281-
if (projectTarball.size > 2 * 1024 * 1024 * 1024) {
282-
throw new Error('Project archive is too big. Maximum allowed size is 2GB.');
283-
}
281+
assertProjectTarballSizeDoesNotExceedLimit(projectTarball.size);
284282

285283
projectTarballPath = projectTarball.path;
286284
const [bucketKey, { metadataLocation }] = await Promise.all([

packages/eas-cli/src/build/utils/repository.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,20 @@ export function maybeWarnAboutProjectTarballSize(size: number): void {
183183
);
184184
}
185185

186+
const MAX_ALLOWED_PROJECT_TARBALL_SIZE =
187+
2 /* GiB */ * 1024 /* MiB */ * 1024 /* KiB */ * 1024; /* B */
188+
export function assertProjectTarballSizeDoesNotExceedLimit(size: number): void {
189+
if (size <= MAX_ALLOWED_PROJECT_TARBALL_SIZE) {
190+
return;
191+
}
192+
193+
throw new Error(
194+
`Project archive is too big. Maximum allowed size is ${formatBytes(
195+
MAX_ALLOWED_PROJECT_TARBALL_SIZE
196+
)}.`
197+
);
198+
}
199+
186200
enum ShouldCommitChanges {
187201
Yes,
188202
ShowDiffFirst,

packages/eas-cli/src/project/uploadAccountScopedProjectSourceAsync.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import chalk from 'chalk';
22
import fs from 'node:fs';
33

44
import {
5+
assertProjectTarballSizeDoesNotExceedLimit,
56
makeProjectTarballAsync,
67
maybeWarnAboutProjectTarballSize,
78
} from '../build/utils/repository';
@@ -40,10 +41,7 @@ export async function uploadAccountScopedProjectSourceAsync({
4041
projectTarballPath = projectTarball.path;
4142

4243
maybeWarnAboutProjectTarballSize(projectTarball.size);
43-
44-
if (projectTarball.size > 2 * 1024 * 1024 * 1024) {
45-
throw new Error('Project archive is too big. Maximum allowed size is 2GB.');
46-
}
44+
assertProjectTarballSizeDoesNotExceedLimit(projectTarball.size);
4745

4846
const projectArchiveBucketKey = await uploadAccountScopedFileAtPathToGCSAsync(graphqlClient, {
4947
accountId,

0 commit comments

Comments
 (0)