Gybson is a type-safe, auto-generated Node.js query client (light-weight ORM) for working with SQL databases in Typescript.
Optimized for super fast lazy loading, using batching and caching, it's perfect for GraphQL apps.
Gybson is built on top of trusted open-source projects:
Gybson works with MySQL and PostgreSQL databases.
Gybson was created to make working with relational databases in Typescript as productive as possible.
Just run gybson generate
and you have a fully type-safe database client created for your exact schema.
Gybson is built on top of the very popular SQL query builder Knex.
GybsonClient wraps a Knex client instance so it is very easy to integrate into apps already using Knex.
You can maximise developer efficiency with auto-completion in any IDE.
Gybson comes with automated type safety out of the box so you know exactly what data goes in and out of your database. Clean, usable types are generated directly from your database schema.
Unlike most ORMs you don't have to define complex types and relations in code. You can get started using Gybson in 5 minutes and work with plain JavaScript objects.
Gybson uses dataloader under the hood to batch and cache (de-dupe) database requests to minimise round trips.
If your schema is defined as
CREATE TABLE users (
id INT AUTO_INCREMENT;
username: VARCHAR NOT NULL;
password: VARCHAR NOT NULL;
last_logon: Date;
)
You can query:
const id = await gybson.users.insert({
values: {
username: 'name',
password: 'secret',
last_logon: new Date(),
},
});
const user = await gybson.users.loadOne({
where: {
id,
},
});
console.log(user);
/*
{
user_id: 1;
username: 'name';
password: 'secret';
last_logon: '2020-10-21T09:00:00';
}
*/