Roo-Code/evals/apps/cli/src/exercises.ts
Chris Estreich d15f813514
Evals (#2238)
* Evals

* Remove redundant line

* Fix tsc error

* Disable debug mode

* Add option to kill run
2025-04-02 16:49:41 -07:00

31 lines
910 B
TypeScript

import * as path from "path"
import * as fs from "fs"
import { filesystem } from "gluegun"
import { type ExerciseLanguage, exerciseLanguages } from "@evals/types"
import { exercisesPath } from "./paths.js"
let exercisesByLanguage: Record<ExerciseLanguage, string[]> | null = null
export const getExercises = () => {
if (exercisesByLanguage !== null) {
return exercisesByLanguage
}
const getLanguageExercises = (language: ExerciseLanguage) =>
fs.existsSync(path.resolve(exercisesPath, language))
? filesystem
.subdirectories(path.resolve(exercisesPath, language))
.map((exercise) => path.basename(exercise))
.filter((exercise) => !exercise.startsWith("."))
: []
exercisesByLanguage = exerciseLanguages.reduce(
(collect, language) => ({ ...collect, [language]: getLanguageExercises(language) }),
{} as Record<ExerciseLanguage, string[]>,
)
return exercisesByLanguage
}