Skip to content

defineConfig()

Viteval provides flexible configuration options to customize evaluation behavior, performance, and output.

Import

ts
import { defineConfig } from 'viteval/config'

Configuration File

Create a viteval.config.ts file in your project root:

ts
// viteval.config.ts
import { defineConfig } from 'viteval/config'

export default defineConfig({
  reporter: 'console',
  eval: {
    include: ['src/**/*.eval.ts'],
    setupFiles: ['./viteval.setup.ts'],
    timeout: 100000 // 100 seconds (default)
  }
})

Configuration Options

Provider Configuration

provider

Configure API providers for LLM access:

ts
export default defineConfig({
  provider: {
    openai: {
      apiKey: process.env.OPENAI_API_KEY,
      project: 'my-project',
      organization: 'my-org'
    }
  }
})

Or provide a client directly:

ts
import { OpenAI } from 'openai'

export default defineConfig({
  provider: {
    openai: {
      client: new OpenAI({ apiKey: process.env.OPENAI_API_KEY })
    }
  }
})

Evaluation Configuration

eval.include

  • Type: string[]
  • Default: undefined

Glob patterns to include evaluation files:

ts
export default defineConfig({
  eval: {
    include: [
      'src/**/*.eval.ts',
      'tests/**/*.eval.ts'
    ]
  }
})

eval.exclude

  • Type: string[]
  • Default: undefined

Glob patterns to exclude:

ts
export default defineConfig({
  eval: {
    exclude: [
      '**/*.draft.eval.ts',
      'src/experimental/**'
    ]
  }
})

eval.setupFiles

  • Type: string[]
  • Default: undefined

Setup files to run before evaluations:

ts
export default defineConfig({
  eval: {
    setupFiles: ['./viteval.setup.ts']
  }
})

eval.timeout

  • Type: number
  • Default: 100000 (100 seconds)

Timeout for individual evaluations (in milliseconds):

ts
export default defineConfig({
  eval: {
    timeout: 300000 // 5 minutes
  }
})

Server Configuration

server.sourcemap

  • Type: boolean | 'inline'
  • Default: undefined

Configure sourcemap generation:

ts
export default defineConfig({
  server: {
    sourcemap: true
  }
})

server.deps

Configure dependency handling:

ts
export default defineConfig({
  server: {
    deps: {
      inline: ['some-package'],
      external: ['external-package']
    }
  }
})

Dependencies Configuration

deps.interopDefault

  • Type: boolean
  • Default: true

Whether to use the interopDefault plugin:

ts
export default defineConfig({
  deps: {
    interopDefault: false
  }
})

deps.optimizer

Configure dependency optimization:

ts
export default defineConfig({
  deps: {
    optimizer: {
      include: ['some-package']
    }
  }
})