✅ Expressive AND high-level query builder ✅ TypeScript support ✅ SQL databases: ✅ PostgreSQL ✅ SQLite ✅ MySQL ✅ MariaDB ⬜ SQL Server ⬜ Oracle ✅ Navigation properties ✅ Codegen free ✅ Surprise free, all queries produce 100% SQL ✅ Raw SQL ⬜ Migrations ⬜ Transactions
To execute query against a database you need a connector. There are many ready to use connectors that wrap existing NodeJS drivers:
Any query starts from a table or a raw sql. We will talk more about raw queries later, for now the basic usage looks like this:
For methods like .filter or .map you pass a callback which returns an expression. Expression represents a condition or operation you wish to do. Expressions are build using methods like .add or .eq:
We can't use native operators like + or === because JavaScript doesn't support operator overloading. You can find full list of supported expression operations here.