@soda-gql/config
v0.1.0
Published
Centralized configuration loader and helpers for soda-gql tooling.
Readme
@soda-gql/config
Configuration management for soda-gql tooling.
Installation
bun add -D @soda-gql/configUsage
Basic Configuration
Create a soda-gql.config.ts file in your project root:
import { defineConfig } from "@soda-gql/config";
export default defineConfig({
outdir: "./src/graphql-system",
include: ["./src/**/*.ts"],
schemas: {
default: {
schema: "./schema.graphql",
runtimeAdapter: "./src/graphql-system/runtime-adapter.ts",
scalars: "./src/graphql-system/scalars.ts",
},
},
});Multi-Schema Configuration
import { defineConfig } from "@soda-gql/config";
export default defineConfig({
outdir: "./src/graphql-system",
include: ["./src/**/*.ts"],
schemas: {
users: {
schema: "./schemas/users.graphql",
runtimeAdapter: "./src/graphql-system/users/runtime-adapter.ts",
scalars: "./src/graphql-system/users/scalars.ts",
},
products: {
schema: "./schemas/products.graphql",
runtimeAdapter: "./src/graphql-system/products/runtime-adapter.ts",
scalars: "./src/graphql-system/products/scalars.ts",
},
},
});Configuration Options
| Option | Type | Required | Description |
|--------|------|----------|-------------|
| outdir | string | Yes | Output directory for generated GraphQL system |
| include | string[] | Yes | Glob patterns for files to analyze |
| exclude | string[] | No | Glob patterns for files to exclude |
| schemas | object | Yes | Schema configurations (see below) |
| analyzer | "ts" \| "swc" | No | TypeScript analyzer to use (default: "ts") |
| graphqlSystemAliases | string[] | No | TSConfig path aliases for GraphQL system imports |
| styles.importExtension | boolean | No | Include .js extensions in generated imports |
Schema Configuration
Each schema entry requires:
| Option | Type | Description |
|--------|------|-------------|
| schema | string | Path to GraphQL schema file |
| runtimeAdapter | string | Path to runtime adapter module |
| scalars | string | Path to scalar definitions module |
Config File Formats
The following config file formats are supported (searched in order):
soda-gql.config.ts(recommended)soda-gql.config.mtssoda-gql.config.jssoda-gql.config.mjs
API Reference
defineConfig(config)
Type-safe configuration helper:
import { defineConfig } from "@soda-gql/config";
export default defineConfig({
// Configuration with full TypeScript support
});loadConfig(options?)
Programmatically load configuration:
import { loadConfig } from "@soda-gql/config";
const result = await loadConfig({
configPath: "./custom-config.ts", // optional
});
if (result.isOk()) {
console.log(result.value);
}Related Packages
- @soda-gql/cli - Command-line interface
- @soda-gql/codegen - Code generation engine
License
MIT
