@@ -32804,6 +32804,7 @@ var ts;
32804
32804
var diagnosticsProducingTypeChecker;
32805
32805
var noDiagnosticsTypeChecker;
32806
32806
var classifiableNames;
32807
+ var programSizeLimitExceeded = -1;
32807
32808
var programSizeForNonTsFiles = 0;
32808
32809
var skipDefaultLib = options.noLib;
32809
32810
var supportedExtensions = ts.getSupportedExtensions(options);
@@ -32876,6 +32877,9 @@ var ts;
32876
32877
verifyCompilerOptions();
32877
32878
ts.programTime += new Date().getTime() - start;
32878
32879
return program;
32880
+ function exceedProgramSizeLimit() {
32881
+ return !options.disableSizeLimit && programSizeForNonTsFiles === programSizeLimitExceeded;
32882
+ }
32879
32883
function getCommonSourceDirectory() {
32880
32884
if (typeof commonSourceDirectory === "undefined") {
32881
32885
if (options.rootDir && checkSourceFilesBelongToPath(files, options.rootDir)) {
@@ -33327,8 +33331,10 @@ var ts;
33327
33331
diagnosticArgument = [fileName, "'" + supportedExtensions.join("', '") + "'"];
33328
33332
}
33329
33333
else if (!findSourceFile(fileName, ts.toPath(fileName, currentDirectory, getCanonicalFileName), isDefaultLib, refFile, refPos, refEnd)) {
33330
- diagnostic = ts.Diagnostics.File_0_not_found;
33331
- diagnosticArgument = [fileName];
33334
+ if (ts.hasTypeScriptFileExtension(fileName) || !exceedProgramSizeLimit()) {
33335
+ diagnostic = ts.Diagnostics.File_0_not_found;
33336
+ diagnosticArgument = [fileName];
33337
+ }
33332
33338
}
33333
33339
else if (refFile && host.getCanonicalFileName(fileName) === host.getCanonicalFileName(refFile.fileName)) {
33334
33340
diagnostic = ts.Diagnostics.A_file_cannot_have_a_reference_to_itself;
@@ -33339,13 +33345,17 @@ var ts;
33339
33345
var nonTsFile = options.allowNonTsExtensions && findSourceFile(fileName, ts.toPath(fileName, currentDirectory, getCanonicalFileName), isDefaultLib, refFile, refPos, refEnd);
33340
33346
if (!nonTsFile) {
33341
33347
if (options.allowNonTsExtensions) {
33342
- diagnostic = ts.Diagnostics.File_0_not_found;
33343
- diagnosticArgument = [fileName];
33348
+ if (!exceedProgramSizeLimit()) {
33349
+ diagnostic = ts.Diagnostics.File_0_not_found;
33350
+ diagnosticArgument = [fileName];
33351
+ }
33344
33352
}
33345
33353
else if (!ts.forEach(supportedExtensions, function (extension) { return findSourceFile(fileName + extension, ts.toPath(fileName + extension, currentDirectory, getCanonicalFileName), isDefaultLib, refFile, refPos, refEnd); })) {
33346
- diagnostic = ts.Diagnostics.File_0_not_found;
33347
- fileName += ".ts";
33348
- diagnosticArgument = [fileName];
33354
+ if (!exceedProgramSizeLimit()) {
33355
+ diagnostic = ts.Diagnostics.File_0_not_found;
33356
+ fileName += ".ts";
33357
+ diagnosticArgument = [fileName];
33358
+ }
33349
33359
}
33350
33360
}
33351
33361
}
@@ -33374,7 +33384,8 @@ var ts;
33374
33384
}
33375
33385
return file_1;
33376
33386
}
33377
- if (!options.disableSizeLimit && programSizeForNonTsFiles === -1) {
33387
+ var isNonTsFile = !ts.hasTypeScriptFileExtension(fileName);
33388
+ if (isNonTsFile && exceedProgramSizeLimit()) {
33378
33389
return undefined;
33379
33390
}
33380
33391
var file = host.getSourceFile(fileName, options.target, function (hostErrorMessage) {
@@ -33385,7 +33396,7 @@ var ts;
33385
33396
fileProcessingDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_read_file_0_Colon_1, fileName, hostErrorMessage));
33386
33397
}
33387
33398
});
33388
- if (!options.disableSizeLimit && file && file.text && !ts.hasTypeScriptFileExtension(file.fileName) ) {
33399
+ if (isNonTsFile && !options.disableSizeLimit && file && file.text) {
33389
33400
programSizeForNonTsFiles += file.text.length;
33390
33401
if (programSizeForNonTsFiles > ts.maxProgramSizeForNonTsFiles) {
33391
33402
var commonSourceDirectory_1 = getCommonSourceDirectory();
@@ -33394,7 +33405,7 @@ var ts;
33394
33405
rootLevelDirectory += ts.directorySeparator;
33395
33406
}
33396
33407
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Too_many_JavaScript_files_in_the_project_Consider_specifying_the_exclude_setting_in_project_configuration_to_limit_included_source_folders_The_likely_folder_to_exclude_is_0_To_disable_the_project_size_limit_set_the_disableSizeLimit_compiler_option_to_true, rootLevelDirectory));
33397
- programSizeForNonTsFiles = -1 ;
33408
+ programSizeForNonTsFiles = programSizeLimitExceeded ;
33398
33409
return undefined;
33399
33410
}
33400
33411
}
0 commit comments