Skip to main content
Version: Next (2.x)

Configuration Reference

Every configurable knob is set via defineConfig in baeta.ts. This page is the reference for the minimum setup, see Getting started → Configuration.

GraphQL options

Only schemas is required. Everything else has a sensible default:

import { defineConfig } from "@baeta/cli";

export default defineConfig({
graphql: {
// Glob pattern(s) to locate GraphQL schema files (required)
schemas: ["src/**/*.gql"],

// Root directory where GraphQL modules are defined (default: "src/modules")
modulesDir: "src/modules",

// Output path for generated type files (default: "${modulesDir}/../__generated__/")
typesDir: "src/__generated__",

// Filename for the generated module definition file (default: "typedef")
moduleDefinitionName: "typedef",

// File extension for generated imports (default: ".ts")
// Set to ".js" for bundler compatibility or false to omit
importExtension: ".ts",

// Options for generated files
fileOptions: {
// Add lint-disable comments at the top of generated files.
enableLintHeaders: { eslint: true, biomeV1: true },
},
},
});

For the full type signatures, see GeneratorOptions and FileOptions.

Plugins

Plugins extend the build process — code generation, watchers, command execution, etc. Order matters: the Gitignore plugin must run first, others are mostly order-independent.

import { defineConfig } from "@baeta/cli";
import { federationPlugin } from "@baeta/plugin-federation";
import { prismaPlugin } from "@baeta/plugin-prisma";

export default defineConfig({
graphql: {
schemas: ["src/**/*.gql"],
},
plugins: [
federationPlugin(),
prismaPlugin({ prismaSchema: "schema.prisma" }),
],
});

For the full list, see Plugins.