(state, buildOrder, reportQueue)
| 124798 | !ts.isIncrementalCompilation(config.options); |
| 124799 | } |
| 124800 | function getNextInvalidatedProject(state, buildOrder, reportQueue) { |
| 124801 | if (!state.projectPendingBuild.size) |
| 124802 | return undefined; |
| 124803 | if (isCircularBuildOrder(buildOrder)) |
| 124804 | return undefined; |
| 124805 | if (state.currentInvalidatedProject) { |
| 124806 | // Only if same buildOrder the currentInvalidated project can be sent again |
| 124807 | return ts.arrayIsEqualTo(state.currentInvalidatedProject.buildOrder, buildOrder) ? |
| 124808 | state.currentInvalidatedProject : |
| 124809 | undefined; |
| 124810 | } |
| 124811 | var options = state.options, projectPendingBuild = state.projectPendingBuild; |
| 124812 | for (var projectIndex = 0; projectIndex < buildOrder.length; projectIndex++) { |
| 124813 | var project = buildOrder[projectIndex]; |
| 124814 | var projectPath = toResolvedConfigFilePath(state, project); |
| 124815 | var reloadLevel = state.projectPendingBuild.get(projectPath); |
| 124816 | if (reloadLevel === undefined) |
| 124817 | continue; |
| 124818 | if (reportQueue) { |
| 124819 | reportQueue = false; |
| 124820 | reportBuildQueue(state, buildOrder); |
| 124821 | } |
| 124822 | var config = parseConfigFile(state, project, projectPath); |
| 124823 | if (!config) { |
| 124824 | reportParseConfigFileDiagnostic(state, projectPath); |
| 124825 | projectPendingBuild.delete(projectPath); |
| 124826 | continue; |
| 124827 | } |
| 124828 | if (reloadLevel === ts.ConfigFileProgramReloadLevel.Full) { |
| 124829 | watchConfigFile(state, project, projectPath, config); |
| 124830 | watchExtendedConfigFiles(state, projectPath, config); |
| 124831 | watchWildCardDirectories(state, project, projectPath, config); |
| 124832 | watchInputFiles(state, project, projectPath, config); |
| 124833 | watchPackageJsonFiles(state, project, projectPath, config); |
| 124834 | } |
| 124835 | else if (reloadLevel === ts.ConfigFileProgramReloadLevel.Partial) { |
| 124836 | // Update file names |
| 124837 | config.fileNames = ts.getFileNamesFromConfigSpecs(config.options.configFile.configFileSpecs, ts.getDirectoryPath(project), config.options, state.parseConfigFileHost); |
| 124838 | ts.updateErrorForNoInputFiles(config.fileNames, project, config.options.configFile.configFileSpecs, config.errors, ts.canJsonReportNoInputFiles(config.raw)); |
| 124839 | watchInputFiles(state, project, projectPath, config); |
| 124840 | watchPackageJsonFiles(state, project, projectPath, config); |
| 124841 | } |
| 124842 | var status = getUpToDateStatus(state, config, projectPath); |
| 124843 | verboseReportProjectStatus(state, project, status); |
| 124844 | if (!options.force) { |
| 124845 | if (status.type === ts.UpToDateStatusType.UpToDate) { |
| 124846 | reportAndStoreErrors(state, projectPath, ts.getConfigFileParsingDiagnostics(config)); |
| 124847 | projectPendingBuild.delete(projectPath); |
| 124848 | // Up to date, skip |
| 124849 | if (options.dry) { |
| 124850 | // In a dry build, inform the user of this fact |
| 124851 | reportStatus(state, ts.Diagnostics.Project_0_is_up_to_date, project); |
| 124852 | } |
| 124853 | continue; |
| 124854 | } |
| 124855 | if (status.type === ts.UpToDateStatusType.UpToDateWithUpstreamTypes) { |
| 124856 | reportAndStoreErrors(state, projectPath, ts.getConfigFileParsingDiagnostics(config)); |
| 124857 | return createUpdateOutputFileStampsProject(state, project, projectPath, config, buildOrder); |
no test coverage detected
searching dependent graphs…