Command-line interface for soda-gql
npm install @soda-gql/cli

Command-line interface for soda-gql zero-runtime GraphQL code generation.
``bash`
bun add -D @soda-gql/cli @soda-gql/config
Create a soda-gql.config.ts file in your project root:
`typescript
import { defineConfig } from "@soda-gql/config";
export default defineConfig({
outdir: "./src/graphql-system",
include: ["./src/*/.ts"],
schemas: {
default: {
schema: "./schema.graphql",
inject: "./src/graphql-system/default.inject.ts",
},
},
});
`
#### Generate GraphQL System
`bash`
bun run soda-gql codegen schema
This command:
1. Reads your GraphQL schema
2. Generates type-safe GraphQL system module
3. Outputs to the directory specified in outdir
#### Scaffold Templates
For first-time setup, generate inject template with scalar and adapter definitions:
`bash`
bun run soda-gql codegen schema --emit-inject-template ./src/graphql-system/default.inject.ts
#### Generate from .graphql Files
Convert existing .graphql operation files to soda-gql compat pattern:
`bash`
bun run soda-gql codegen graphql --input "src/*/.graphql"
This generates TypeScript files alongside input files using the compat API pattern, allowing gradual migration from traditional .graphql files.
Options:
| Option | Description |
|--------|-------------|
| --config | Path to config file |--schema
| | Schema name (required if multiple schemas configured) |--input
| | Glob pattern for .graphql files (repeatable) |--suffix
| | Output file suffix (default: .compat.ts) |
Example:
`bashGenerate compat files from all .graphql files in src/
bun run soda-gql codegen graphql --input "src/*/.graphql"
$3
| Option | Description |
|--------|-------------|
|
--config | Path to config file (auto-discovered if not specified) |
| --emit-inject-template | Generate scaffold template for scalars and adapter definitions |
| --format | Output format: human (default) or json |$3
The CLI automatically searches for configuration files in the following order:
1.
soda-gql.config.ts
2. soda-gql.config.mts
3. soda-gql.config.js
4. soda-gql.config.mjsExample Workflow
`bash
1. Install dependencies
bun add @soda-gql/core @soda-gql/runtime
bun add -D @soda-gql/cli @soda-gql/config2. Create config file
cat > soda-gql.config.ts << 'EOF'
import { defineConfig } from "@soda-gql/config";export default defineConfig({
outdir: "./src/graphql-system",
include: ["./src/*/.ts"],
schemas: {
default: {
schema: "./schema.graphql",
inject: "./src/graphql-system/default.inject.ts",
},
},
});
EOF
3. Generate templates (first-time only)
bun run soda-gql codegen schema --emit-inject-template ./src/graphql-system/default.inject.ts4. Generate GraphQL system
bun run soda-gql codegen schema
``- @soda-gql/config - Configuration management
- @soda-gql/codegen - Code generation engine
- @soda-gql/core - Core types and utilities
MIT