Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/joist-orm/joist-orm
a TypeScript ORM for Postgres
https://github.com/joist-orm/joist-orm
dataloader nodejs orm postgresql typescript unitofwork
Last synced: 2 days ago
JSON representation
a TypeScript ORM for Postgres
- Host: GitHub
- URL: https://github.com/joist-orm/joist-orm
- Owner: joist-orm
- Created: 2020-02-02T23:24:07.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2024-10-29T15:03:48.000Z (2 months ago)
- Last Synced: 2024-10-29T15:19:08.581Z (2 months ago)
- Topics: dataloader, nodejs, orm, postgresql, typescript, unitofwork
- Language: TypeScript
- Homepage: https://joist-orm.io/
- Size: 29.6 MB
- Stars: 279
- Watchers: 13
- Forks: 18
- Open Issues: 138
-
Metadata Files:
- Readme: README.markdown
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
- awesome-list - joist-ts
README
[![npm](https://img.shields.io/npm/v/joist-orm)](https://www.npmjs.com/package/joist-orm)
[![CircleCI](https://circleci.com/gh/joist-orm/joist-orm.svg?style=svg)](https://circleci.com/gh/joist-orm/joist-orm)## Joist
An opinionated ORM for TypeScript/node/postgres.
### Goals
- Schema-driven code generation (continually-generated classes w/the getter/setter/relation boilerplate)
- Guaranteed N+1 safe (pervasive use of Facebook's [dataloader](https://github.com/graphql/dataloader)
- All relations are async/await (with an ergonomic, type-safe escape hatch)
- Great performance (all `SELECT`/`INSERT`/`UPDATE` operations are bulk)
- Fast tests (for downstream projects, baseline is 10-20ms/test case)
- Unit of Work (navigate between entities as a consistent graph)### Documentation
See [joist-orm.io](https://joist-orm.io) for documentation.
### Building Joist
For contributing to Joist itself, after checkout:
- Run `yarn install`
- Run `yarn build` or `yarn build -w` to compile all packages
- Run `yarn db` to boot up a Docker postgres instance w/the integration test schema.
- Run `yarn test` to run the tests.
- Prior to committing your changes, run `yarn workspaces run format`### License
MIT