rose
is a PostgreSQL query builder and row mapper for TypeScript.
To get started, please read the online documentation:
https://laurence-myers.github.io/rose/
rose
has the following goals:
- To provide a type-safe interface between your TypeScript application and the PostgreSQL query language.
- To mimic the SQL syntax as closely as possible using a Domain Specific Language (DSL)
- To support custom queries beyond basic CRUD. This includes:
- Joining arbitrary tables, including sub-selects
- Common table expressions
- "Upserts" (
INSERT ... ON CONFLICT ...
) - Transactions
- Composite primary keys
- To allow dynamically composing queries, or pre-compiled queries.
- To treat your database as the source of truth for your data schema.
- Avoid concatenating strings at all costs.
This is the core library you import into your application. It provides the query building and row mapping functionality.
This introspects your database schema and generates "metamodel" code.
This generates the online documentation. Code examples are tested against the real codebase.
This is a demonstration of how you can use rose
in your application.
cd rose
yarn publish:npm
cd ../rose-docs
yarn publish:npm
Increment the version
in each project's package.json