Named queries
Named .eel files are the primary way apps consume Eelden Lang (sqlc-like). Inline templates are an escape hatch.
eel
use schema "../demo_schema.eel"
query ListUsers() {
users |> select { id, name, email, active, balance, status }
}
query GetPaid(min_balance: Money<usd>) {
users
|> filter status == .paid && balance >= ${min_balance}
|> select { name, balance }
}Declared params bind ${name} holes in the body. Types are checked against the schema registry (including use schema paths relative to the queries file).
Config
examples/eelden.config.json:
json
{
"schemas": ["demo_schema.eel"],
"queries": ["queries/**/*.eel"],
"outDir": "generated"
}Codegen
bash
# from clients/typescript after npm run build
node bin/eelden-codegen.mjs --config ../../examples/eelden.config.jsonOr, once on your PATH:
bash
eelden-codegen --config eelden.config.jsonEmits typed TypeScript functions that return EeldenQuery<TRows> values for an EeldenExecutor to run.
CLI typecheck
bash
cargo run -p eelden-cli -- typecheck-queries examples/demo_schema.eel examples/queries/users.eelExample layout
| Path | Role |
|---|---|
examples/demo_schema.eel | Schema |
examples/queries/users.eel | Named queries |
examples/eelden.config.json | Codegen config |