Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/glebbash/nestjs-fireorm
Nest.js Fireorm module
https://github.com/glebbash/nestjs-fireorm
Last synced: about 2 months ago
JSON representation
Nest.js Fireorm module
- Host: GitHub
- URL: https://github.com/glebbash/nestjs-fireorm
- Owner: glebbash
- License: mit
- Created: 2021-04-05T10:32:01.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-03-27T16:32:38.000Z (9 months ago)
- Last Synced: 2024-10-12T20:40:09.733Z (2 months ago)
- Language: TypeScript
- Homepage: https://glebbash.github.io/nestjs-fireorm
- Size: 902 KB
- Stars: 15
- Watchers: 2
- Forks: 10
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
NestJS Fireorm
Wrapper for NestJS / Fireorm[![Source](https://img.shields.io/badge/source-github-informational)](https://github.com/glebbash/nestjs-fireorm)
[![Deploy](https://github.com/glebbash/nestjs-fireorm/actions/workflows/build.yml/badge.svg)](https://github.com/glebbash/nestjs-fireorm/actions)
[![Coverage Status](https://coveralls.io/repos/github/glebbash/nestjs-fireorm/badge.svg?branch=master)](https://coveralls.io/github/glebbash/nestjs-fireorm?branch=master)`nestjs-fireorm` is a tiny [Nest.js][] [Fireorm][] module.
> Fireorm 🔥 is a tiny wrapper on top of firestore that makes life easier when dealing with a
> Firestore database.This module makes it easier to deal with Firestore database when using Nest.js!
**docs**: https://glebbash.github.io/nestjs-fireorm/
---
Let's get started!
```sh
npm i nestjs-fireorm
```This module is based on [Fireorm]. The [FireORM documentation][fireorm-docs] is a great resource to
understand how `nestjs-fireorm` works. You'll need to add `nestjs-fireorm` to your root module,
which you can do like this:```typescript
import { Module } from '@nestjs/common';
import { FireormModule } from 'nestjs-fireorm';@Module({
imports: [
FireormModule.forRoot({
fireormSettings: { validateModels: true },
}),
],
})
export class AppModule {}
```_There are other examples, which you can find in our repository [app.module.ts][app-module]._
To improve developer readability, we suggest using the same semantics as defined in [Nest's
documentation on database][nest-db]. Like, when creating a User type, we suggest using the name
`user.entity.ts`:```typescript
import { Collection } from 'fireorm';@Collection()
export class UserEntity {
id!: string;
}
```Read more about [Fireorm's core concepts][fireorm-core] on how _entities_ should be defined.
Entities has to be imported in your module, and we expose a simple method to do this, which looks like
this:```typescript
import { Module } from '@nestjs/common';
import { FireormModule } from 'nestjs-fireorm';
import { User } from './entities/user.entity';@Module({
imports: [FireormModule.forFeature([User])],
})
export class AppModule {}
```We'll need to inject the [repository]. `nestjs-fireorm` comes with a special `InjectRepository`
function, which is used like this:```typescript
import { InjectRepository } from 'nestjs-fireorm';constructor(
@InjectRepository(User)
private users: BaseFirestoreRepository
) {}
```[fireorm]: https://fireorm.js.org
[fireorm-docs]: https://fireorm.js.org/
[fireorm-core]: https://fireorm.js.org/#/Core_Concepts
[fireorm-repository]: https://fireorm.js.org/#/Core_Concepts?id=fireorm-repositories
[nest.js]: https://nestjs.com
[nest-db]: https://docs.nestjs.com/techniques/database
[app-module]: https://github.com/glebbash/nestjs-fireorm/blob/master/example/src/app.module.ts## Documentation
Apart from this README, you can find examples of using the library in the following places:
- [Example usage][]
[example usage]: https://github.com/glebbash/nestjs-fireorm/tree/master/example
Bootstrapped with: [create-ts-lib-gh](https://github.com/glebbash/create-ts-lib-gh)
This project is [MIT Licensed](LICENSE).