squirrel

Functions

pub fn exit(n: Int) -> Nil
pub fn main() -> Nil

🐿️ Performs code generation for your Gleam project.

squirrel is not configurable and will discover the queries to generate code for by relying on a conventional project’s structure:

  • squirrel first looks for all directories called sql under the src directory of your Gleam project, and reads all the *.sql files in there (in glob terms src/**/sql/*.sql).
  • Each *.sql file must contain a single query as it is turned into a Gleam function with the same name.
  • All functions coming from the same sql directory will be grouped under a Gleam file called sql.gleam at the same level: given a src/$PATH/sql directory, you’ll end up with a generated src/$PATH/sql.gleam file.

⚠️ In order to generate type safe code, squirrel has to connect to your Postgres database. To know what host, user, etc. values to use when connecting, it will read the DATABASE_URL env variable that has to be a valid connection string with the following format:

postgres://user:password@host:port/database

If a DATABASE_URL variable is not set, Squirrel will instead read your Postgres env variables and use the following defaults if one is not set:

  • PGHOST: "localhost"
  • PGPORT: 5432
  • PGUSER: "root"
  • PGDATABASE: the name of your Gleam project
  • PGPASSWORD: ""

⚠️ The generated code relies on the gleam_pgo and decode packages to work, so make sure to add those as dependencies to your project.

Search Document