INNER CODE UNIT · TypeScript

getExercise

bryllim/workout-guide · packages/workout-guide/src/index.ts:35

export function getExercise(idOrSlug: string) {
  return exercisesById.get(idOrSlug) ?? exercisesBySlug.get(idOrSlug) ?? null;
}

function matchesFilter(value: string, filter?: string | readonly string[]) {
  if (filter === undefined) return true;
  const values = Array.isArray(filter) ? filter : [filter];
  return values.some((candidate) => normalizeSearchText(candidate) === normalizeSearchText(value));
}

export function searchExercises(query = '', filters: ExerciseSearchFilters = {}) {
  const normalizedQuery = normalizeSearchText(query);
  const tokens = normalizedQuery ? normalizedQuery.split(' ') : [];

  return exercises.filter((exercise) => {
    if (!matchesFilter(exercise.equipment, filters.equipment)) return false;
    if (!matchesFilter(exercise.primaryMuscle, filters.primaryMuscle)) return false;
    if (!matchesFilter(exercise.exerciseType, filters.exerciseType)) return false;

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…