Skip to content

Commit 5980411

Browse files
committed
Dont create program for composite projects to find default project
1 parent c937666 commit 5980411

File tree

1,064 files changed

+17488
-21074
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,064 files changed

+17488
-21074
lines changed

src/compiler/commandLineParser.ts

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3242,13 +3242,25 @@ function shouldReportNoInputFiles(fileNames: string[], canJsonReportNoInutFiles:
32423242
return fileNames.length === 0 && canJsonReportNoInutFiles && (!resolutionStack || resolutionStack.length === 0);
32433243
}
32443244

3245+
/** @internal */
3246+
export function isSolutionConfig(config: ParsedCommandLine) {
3247+
return !config.fileNames.length &&
3248+
hasProperty(config.raw, "references");
3249+
}
3250+
32453251
/** @internal */
32463252
export function canJsonReportNoInputFiles(raw: any) {
32473253
return !hasProperty(raw, "files") && !hasProperty(raw, "references");
32483254
}
32493255

32503256
/** @internal */
3251-
export function updateErrorForNoInputFiles(fileNames: string[], configFileName: string, configFileSpecs: ConfigFileSpecs, configParseDiagnostics: Diagnostic[], canJsonReportNoInutFiles: boolean) {
3257+
export function updateErrorForNoInputFiles(
3258+
fileNames: string[],
3259+
configFileName: string,
3260+
configFileSpecs: ConfigFileSpecs,
3261+
configParseDiagnostics: Diagnostic[],
3262+
canJsonReportNoInutFiles: boolean,
3263+
) {
32523264
const existingErrors = configParseDiagnostics.length;
32533265
if (shouldReportNoInputFiles(fileNames, canJsonReportNoInutFiles)) {
32543266
configParseDiagnostics.push(getErrorForNoInputFiles(configFileSpecs, configFileName));
@@ -3952,7 +3964,8 @@ export function matchesExclude(
39523964
);
39533965
}
39543966

3955-
function matchesExcludeWorker(
3967+
/** @internal */
3968+
export function matchesExcludeWorker(
39563969
pathToCheck: string,
39573970
excludeSpecs: readonly string[] | undefined,
39583971
useCaseSensitiveFileNames: boolean,

src/compiler/tsbuildPublic.ts

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ import {
7979
isIncrementalBuildInfo,
8080
isIncrementalCompilation,
8181
isPackageJsonInfo,
82+
isSolutionConfig,
8283
loadWithModeAwareCache,
8384
maybeBind,
8485
missingFileModifiedTime,
@@ -1223,7 +1224,13 @@ function getNextInvalidatedProjectCreateInfo<T extends BuilderProgram>(
12231224
else if (updateLevel === ProgramUpdateLevel.RootNamesAndUpdate) {
12241225
// Update file names
12251226
config.fileNames = getFileNamesFromConfigSpecs(config.options.configFile!.configFileSpecs!, getDirectoryPath(project), config.options, state.parseConfigFileHost);
1226-
updateErrorForNoInputFiles(config.fileNames, project, config.options.configFile!.configFileSpecs!, config.errors, canJsonReportNoInputFiles(config.raw));
1227+
updateErrorForNoInputFiles(
1228+
config.fileNames,
1229+
project,
1230+
config.options.configFile!.configFileSpecs!,
1231+
config.errors,
1232+
canJsonReportNoInputFiles(config.raw),
1233+
);
12271234
watchInputFiles(state, project, projectPath, config);
12281235
watchPackageJsonFiles(state, project, projectPath, config);
12291236
}
@@ -1448,11 +1455,7 @@ function checkConfigFileUpToDateStatus<T extends BuilderProgram>(state: Solution
14481455

14491456
function getUpToDateStatusWorker<T extends BuilderProgram>(state: SolutionBuilderState<T>, project: ParsedCommandLine, resolvedPath: ResolvedConfigFilePath): UpToDateStatus {
14501457
// Container if no files are specified in the project
1451-
if (!project.fileNames.length && !canJsonReportNoInputFiles(project.raw)) {
1452-
return {
1453-
type: UpToDateStatusType.ContainerOnly,
1454-
};
1455-
}
1458+
if (isSolutionConfig(project)) return { type: UpToDateStatusType.ContainerOnly };
14561459

14571460
// Fast check to see if reference projects are upto date and error free
14581461
let referenceStatuses;

src/compiler/watchPublic.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -925,7 +925,15 @@ export function createWatchProgram<T extends BuilderProgram>(host: WatchCompiler
925925

926926
updateLevel = ProgramUpdateLevel.Update;
927927
rootFileNames = getFileNamesFromConfigSpecs(compilerOptions.configFile!.configFileSpecs!, getNormalizedAbsolutePath(getDirectoryPath(configFileName), currentDirectory), compilerOptions, parseConfigFileHost, extraFileExtensions);
928-
if (updateErrorForNoInputFiles(rootFileNames, getNormalizedAbsolutePath(configFileName, currentDirectory), compilerOptions.configFile!.configFileSpecs!, configFileParsingDiagnostics!, canConfigFileJsonReportNoInputFiles)) {
928+
if (
929+
updateErrorForNoInputFiles(
930+
rootFileNames,
931+
getNormalizedAbsolutePath(configFileName, currentDirectory),
932+
compilerOptions.configFile!.configFileSpecs!,
933+
configFileParsingDiagnostics!,
934+
canConfigFileJsonReportNoInputFiles,
935+
)
936+
) {
929937
hasChangedConfigFileParsingErrors = true;
930938
}
931939

0 commit comments

Comments
 (0)