1.3.2 • Published 3 years ago

gybson v1.3.2

Weekly downloads
114
License
-
Repository
github
Last release
3 years ago

Image of logo

npm GitHub tag TravisCI Build Status Star on GitHub Github last commit Pull Requests Welcome

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.

Why Gybson?

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.

Knex

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.


Key features

IDE Auto-completion

You can maximise developer efficiency with auto-completion in any IDE.

Image of demo

Type-safe

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.

Auto-generated

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.

GraphQL optimized

Gybson uses dataloader under the hood to batch and cache (de-dupe) database requests to minimise round trips.


A simple example

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';
 }
*/
1.3.2

3 years ago

1.3.1

3 years ago

1.2.2

3 years ago

1.3.0

3 years ago

1.2.1

3 years ago

1.2.0

3 years ago

1.1.0

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago

0.9.0

3 years ago

0.8.1

3 years ago

0.8.0

3 years ago

0.7.2

3 years ago

0.7.1

4 years ago

0.7.0

4 years ago

0.6.4

4 years ago

0.6.3

4 years ago

0.6.2

4 years ago

0.6.1

4 years ago

0.5.1

4 years ago

0.5.0

4 years ago

0.4.0

4 years ago

0.3.0

4 years ago

0.2.1

4 years ago

0.2.0

4 years ago

0.1.7

4 years ago

0.1.5

4 years ago

0.1.4

4 years ago

0.1.3

4 years ago

0.1.2

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago