in packages/react/src/store/selectors/tableSelectors.ts [188:230]
portedProjects: portedProjects(
solutionDetails.data,
solutionToSolutionDetails,
solutionToPortingProjects[solutionDetails.data.solutionFilePath]
),
totalProjects: solutionDetails.data.projects.length || 0,
incompatiblePackages: nugetCompatibility == null ? undefined : nugetCompatibility[1] - nugetCompatibility[0],
totalPackages: nugetCompatibility == null ? undefined : nugetCompatibility[1],
incompatibleApis:
nugetCompatibility == null || apiCompatibility == null
? undefined
: apiCompatibility[1] - apiCompatibility[0],
totalApis: nugetCompatibility == null || apiCompatibility == null ? undefined : apiCompatibility[1],
buildErrors: buildErrors,
portingActions: portingActions,
failed: false
} as DashboardTableData;
})
.filter((r): r is DashboardTableData => r != null);
}
);
export const selectProjectTableData = createCachedSelector(
selectApiAnalysis,
selectNugetPackages,
selectCurrentSolutionDetails,
selectCurrentSolutionPath,
selectPortingProjectsInSolution,
selectTargetFramework,
(apiAnalysis, nugetPackages, solutionDetails, solutionFilePath, portingProjects, targetFramework) => {
if (!isLoaded(solutionDetails)) {
return [];
}
return solutionDetails.data.projects.map<TableData>(project => {
const projectToApiAnalysis = apiAnalysis[solutionFilePath];
const apis = getCompatibleApi(
solutionDetails,
projectToApiAnalysis,
project.projectFilePath,
null,
targetFramework
);
return {