in experimenter/experimenter/nimbus-ui/src/components/PageHome/filterExperiments.ts [306:394]
export function filterExperiments(
experiments: getAllExperiments_experiments[],
filterState: FilterValue,
) {
let filteredExperiments = [...experiments];
for (const key of filterValueKeys) {
// Verbose switch that seems to make types happier
switch (key) {
case "owners":
filteredExperiments = filterExperimentsByOptions<"owners">(
filterState[key],
experimentFilters[key],
filteredExperiments,
);
break;
case "applications":
filteredExperiments = filterExperimentsByOptions<"applications">(
filterState[key],
experimentFilters[key],
filteredExperiments,
);
break;
case "allFeatureConfigs":
filteredExperiments = filterExperimentsByOptions<"allFeatureConfigs">(
filterState[key],
experimentFilters[key],
filteredExperiments,
);
break;
case "firefoxVersions":
filteredExperiments = filterExperimentsByOptions<"firefoxVersions">(
filterState[key],
experimentFilters[key],
filteredExperiments,
);
break;
case "channels":
filteredExperiments = filterExperimentsByOptions<"channels">(
filterState[key],
experimentFilters[key],
filteredExperiments,
);
break;
case "types":
filteredExperiments = filterExperimentsByOptions<"types">(
filterState[key],
experimentFilters[key],
filteredExperiments,
);
break;
case "projects":
filteredExperiments = filterExperimentsByOptions<"projects">(
filterState[key],
experimentFilters[key],
filteredExperiments,
);
break;
case "targetingConfigs":
filteredExperiments = filterExperimentsByOptions<"targetingConfigs">(
filterState[key],
experimentFilters[key],
filteredExperiments,
);
break;
case "takeaways":
filteredExperiments = filterExperimentsByOptions<"takeaways">(
filterState[key],
experimentFilters[key],
filteredExperiments,
);
break;
case "qaStatus":
filteredExperiments = filterExperimentsByOptions<"qaStatus">(
filterState[key],
experimentFilters[key],
filteredExperiments,
);
break;
case "subscribers":
filteredExperiments = filterExperimentsByOptions<"subscribers">(
filterState[key],
experimentFilters[key],
filteredExperiments,
);
break;
}
}
return filteredExperiments;
}