🔥
FIRE-REPO This library is an implementation of the firebase repository pattern and some helpers to facilitate the work of developers using firebase. - (ts projects only)
npm i fire-repo
Table of Contents
Installation
Only you need download the code and install the dependencies running the command npm install
.
Libraries
The used libraries are:
Project structure
-
📁 .github
: Contains the github actions configurations. -
📁 example
: Contains the example of usage from library.- ts
configuration.ts
: Example of configuration. - ts
index.ts
: Example of usage.
- ts
-
📁 helpers
: Contains the helpers of library.- ts
fire-file.helper.ts
: Helper to work with firebase files. - ts
fire-mapping.helper.ts
: Helper to mapping the firebase data. - ts
index.ts
: Export the helpers.
- ts
-
📁 models
: Contains the models of library- ts
base.model.ts
: Base model.
- ts
-
📁 repositories
: Contains the repositories of library📁 implementations
: Contains the implementations of repositories.📁 interfaces
: Contains the interfaces of library.- ts
index.ts
: Export the interfaces. - ts
read.interface.ts
: Interface to read data. - ts
write.interface.ts
: Interface to write data.
- ts
📁 types
: Contains the types of library.- ts
filter.type.ts
: Type to filter data. - ts
index.ts
: Export the types.
- ts
-
📁 test
📁 helpers
: Contains the test of helpers.📁 repositories
: Contains the test of repositories
Use
For use the library in you project you need install the fire-repo library running the command npm i fire-repo
and import the library in your project.
import { FireRepository } from "fire-repo";
import { BaseModel } from "fire-repo";
Create your model extending the base model.
class User extends BaseModel {
name: string;
email: string;
}
Create your service class for work with the repository and manage the entity and data.
class UserService extends FireRepository<User> {
constructor() {
/**
* @param {initializeApp} firebaseConfiguration firebase configuration
* @param {string} collection firebase collection "/test"
*/
super(firebaseConfiguration, collection);
}
}
Methods
-
add
: Create a new entity. -
update
: Update an entity. -
deleteEntity
: Delete an entity. -
remove
: Applied the soft delete a entity. -
getAll
: Get all entities. -
getOne
: Get One entity. -
getDocId
: Get the document id. -
getCollection
: Get the collection.
Helpers
-
fileUpload
: Upload a file to firebase storage. -
removeFile
: Remove a file from firebase storage. -
toEntityArray
: Convert an array of firebase data to an array of entities. -
getFormateadFirebaseData
: Format the retrieved data from firebase. (Date - timestamp)
Contribution
If you want to contribute to the library you can create a branch in the repository and send a pull request. Remember create great unit tests and documentation updates.
Branches
Remember usage this structure:
feature/[name]
fix/[name]
bug/[name]
Report an issuer
If you have an issue or a problem with the library you can report it in the issues