@@ -7,14 +7,14 @@ import { build, filesystem, GluegunPrompt, GluegunToolbox } from "gluegun"
77import { runTests } from "@vscode/test-electron"
88import { execa , parseCommandString } from "execa"
99
10- import { type Language , languages , IpcOrigin , IpcMessageType , TaskEventName } from "@benchmark/types"
10+ import { type ExerciseLanguage , exerciseLanguages , IpcOrigin , IpcMessageType , TaskEventName } from "@benchmark/types"
1111import { type Run , findRun , createRun , finishRun , createTask , Task , getTasks , updateTask } from "@benchmark/db"
1212import { IpcServer } from "@benchmark/ipc"
1313
1414import { __dirname , extensionDevelopmentPath , extensionTestsPath , exercisesPath } from "./paths.js"
1515import { getExercises } from "./exercises.js"
1616
17- const testCommands : Record < Language , { commands : string [ ] ; timeout ?: number ; cwd ?: string } > = {
17+ const testCommands : Record < ExerciseLanguage , { commands : string [ ] ; timeout ?: number ; cwd ?: string } > = {
1818 cpp : { commands : [ "cmake -G 'Unix\\ Makefiles' -DEXERCISM_RUN_ALL_TESTS=1 .." , "make" ] , cwd : "build" } , // timeout 15s bash -c "cd '$dir' && mkdir -p build && cd build && cmake -G 'Unix Makefiles' -DEXERCISM_RUN_ALL_TESTS=1 .. >/dev/null 2>&1 && make >/dev/null 2>&1"
1919 go : { commands : [ "go test" ] } , // timeout 15s bash -c "cd '$dir' && go test > /dev/null 2>&1"
2020 java : { commands : [ "./gradlew test" ] } , // timeout --foreground 15s bash -c "cd '$dir' && ./gradlew test > /dev/null 2>&1"
@@ -28,7 +28,7 @@ const run = async (toolbox: GluegunToolbox) => {
2828
2929 let { language, exercise } = config
3030
31- if ( ! [ undefined , ...languages , "all" ] . includes ( language ) ) {
31+ if ( ! [ undefined , ...exerciseLanguages , "all" ] . includes ( language ) ) {
3232 throw new Error ( `Language is invalid: ${ language } ` )
3333 }
3434
@@ -49,15 +49,15 @@ const run = async (toolbox: GluegunToolbox) => {
4949 } )
5050
5151 if ( language === "all" ) {
52- for ( const language of languages ) {
53- const exercises = getExercises ( ) [ language as Language ]
52+ for ( const language of exerciseLanguages ) {
53+ const exercises = getExercises ( ) [ language as ExerciseLanguage ]
5454
5555 await pMap ( exercises , ( exercise ) => createTask ( { runId : run . id , language, exercise } ) , {
5656 concurrency : 10 ,
5757 } )
5858 }
5959 } else if ( exercise === "all" ) {
60- const exercises = getExercises ( ) [ language as Language ]
60+ const exercises = getExercises ( ) [ language as ExerciseLanguage ]
6161 await pMap ( exercises , ( exercise ) => createTask ( { runId : run . id , language, exercise } ) , { concurrency : 10 } )
6262 } else {
6363 language = language || ( await askLanguage ( prompt ) )
@@ -166,17 +166,17 @@ const runExercise = async ({ run, task }: { run: Run; task: Task }) => {
166166}
167167
168168const askLanguage = async ( prompt : GluegunPrompt ) => {
169- const { language } = await prompt . ask < { language : Language } > ( {
169+ const { language } = await prompt . ask < { language : ExerciseLanguage } > ( {
170170 type : "select" ,
171171 name : "language" ,
172172 message : "Which language?" ,
173- choices : [ ...languages ] ,
173+ choices : [ ...exerciseLanguages ] ,
174174 } )
175175
176176 return language
177177}
178178
179- const askExercise = async ( prompt : GluegunPrompt , language : Language ) => {
179+ const askExercise = async ( prompt : GluegunPrompt , language : ExerciseLanguage ) => {
180180 const exercises = filesystem . subdirectories ( path . join ( exercisesPath , language ) )
181181
182182 if ( exercises . length === 0 ) {
0 commit comments