in packages/react/src/store/selectors/tableSelectors.ts [396:430]
portability: getPercent(compatibleApis.values[0], compatibleApis.values[1]),
portabilityNumber: getPercentNumber(compatibleApis.values[0], compatibleApis.values[1]),
isProjectPage: project != null
} as SourceFile;
});
}
)((_state, locationPathname) => locationPathname);
export const selectNugetTableData = createCachedSelector(
selectCurrentSolutionApiAnalysis,
selectNugetPackages,
selectProjects,
getProjectIfExists,
selectTargetFramework,
(apiAnalysis, packageToPackageAnalysisResult, projects, project, targetFramework) => {
if (!isLoaded(projects) || (project != null && !isLoaded(project))) {
return [];
}
const selectedProjects = project != null ? [project.data] : projects.data;
const fileApiFrequency = selectedProjects
.flatMap(project => (project.projectFilePath == null ? [] : apiAnalysis[project.projectFilePath]))
.reduce<{ [packageVersion: string]: { file: number; api: number; sourceFilesList: string[]; apiSet: Set<string> } }>((agg, current) => {
if (!isLoaded(current) || current.data.sourceFileAnalysisResults == null) {
return agg;
}
current.data.sourceFileAnalysisResults.forEach(sourceFileAnalysisResult => {
const packageVersionsInFile = new Set<string>();
sourceFileAnalysisResult.apiAnalysisResults.forEach(apiResult => {
if (
apiResult == null ||
apiResult?.codeEntityDetails == null ||
apiResult?.codeEntityDetails?.package == null ||
apiResult?.codeEntityDetails?.package?.packageId == null ||
apiResult?.codeEntityDetails?.package?.version == null
) {