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: 'default',
  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'],
    },
  },
});