npm package: @fireflyjs/core
Description: ODM for FireStore
Latest version: 0.0.5

<!-- # fireflyjs-core -->

<!-- [![LinkedIn][linkedin-shield]][linkedin-url] -->

<!-- PROJECT LOGO -->
<br />
<p align="center">
  <a href="https://github.com/FireflyJS/fireflyjs-core">
    <img src="https://user-images.githubusercontent.com/51146347/130316345-b68999ff-8eb5-4620-bf04-bc9eef91e2c6.png" alt="Logo" width="80" height="80">
  </a>

  <h3 align="center">FireflyJS</h3>

  <p align="center">
    The only ODM you will ever need for Firestore.
    <br />
<!--     <a href="https://github.com/othneildrew/Best-README-Template"><strong>Explore the docs »</strong></a> -->
    <br />
<!--     <br /> -->
<!--     <a href="https://github.com/othneildrew/Best-README-Template">View Demo</a> -->
<!--     · -->
    <a href="https://github.com/FireflyJS/fireflyjs-core/issues">Report Bug</a>
    ·
    <a href="https://github.com/FireflyJS/fireflyjs-core/issues">Request Feature</a>
  </p>
</p>

[![GitHub issues](https://img.shields.io/github/issues/FireflyJS/fireflyjs-core?logo=github)](https://github.com/Saurav-Shrivastav/covaccinate/issues)
![Size](https://github-size-badge.herokuapp.com/FireflyJS/fireflyjs-core.svg)

<!-- [![Website shields.io](https://img.shields.io/website-up-down-green-red/http/shields.io.svg)](http://shields.io/) -->

[![Pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/Saurav-Shrivastav/covaccinate/blob/master/.pre-commit-config.yaml)
[![License](https://img.shields.io/github/license/FireflyJS/fireflyjs-core)](https://github.com/FireflyJS/fireflyjs-core/blob/main/LICENSE)

<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->

[![All Contributors](https://img.shields.io/badge/all_contributors-2-orange.svg?style=flat-square)](#contributors-)

<!-- ALL-CONTRIBUTORS-BADGE:END -->

<!-- TABLE OF CONTENTS -->
<details open="open">
  <summary>Table of Contents</summary>
  <ol>
    <li>
      <a href="#about-the-project">About The Project</a>
    </li>
    <li>
      <a href="#features">Features</a>
      </li>
    <li>
      <a href="#getting-started">Getting Started</a>
<!--       <ul>
        <li><a href="#prerequisites">Prerequisites</a></li>
        <li><a href="#installation">Installation</a></li>
      </ul> -->
    </li>
    <li><a href="#documentation">Documentation</a></li>
<!--     <li><a href="#roadmap">Roadmap</a></li> -->
    <li><a href="#contributing">Contributing</a></li>
    <li><a href="#contributors">Contributors</a></li>    
<!--     <li><a href="#license">License</a></li> -->
<!--     <li><a href="#contact">Contact</a></li> -->
<!--     <li><a href="#acknowledgements">Acknowledgements</a></li> -->
  </ol>
</details>

<!-- ABOUT THE PROJECT -->

## About The Project

[![Product Name Screen Shot][product-screenshot]](https://example.com)

FireflyJS is an object document model(ODM) library for Firestore. It aims to ease the process of developing applications using Firestore by providing robust validation of data, exposing a multitude of ways to query, add, etc.

### Built With

- [TypeScript](https://www.typescriptlang.org/)
- [Jest](https://jestjs.io/)
- [Firebase](https://firebase.google.com/)

<!-- FEATURES -->

## Features

- Define a schema for your data and add a multitude of operations before adding data to the database.
- Written completely in TypeScript. Get intelligent intellisense and speed up your development workflow.
- Easy to pick up, with a syntax inspired from popular libraries like [Mongoose](https://github.com/Automattic/mongoose) and [Yup](https://github.com/jquense/yup).
- Query data like a pro! With methods like `findById`, `findOne`, etc.
- Add and update data made easy and safe with proper validation, data transformation according to your defined schema and much more!

<!-- GETTING STARTED -->

## Getting Started

Coming Soon!

For now, you can refer [__tests__](https://github.com/FireflyJS/fireflyjs-core/tree/main/src/__tests__) for usage and examples as we are still developing the npm package.

<!-- DOCUMENTATION -->

## Documentation

Inline documentation for all methods is available in the codebase. Documentation website is in the works. Stay Tuned :)

<!-- CONTRIBUTING -->

## Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are **greatly appreciated**.

1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

[contributors-shield]: https://img.shields.io/github/contributors/othneildrew/Best-README-Template.svg?style=for-the-badge
[contributors-url]: https://github.com/FireflyJS/fireflyjs-core/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/othneildrew/Best-README-Template.svg?style=for-the-badge
[forks-url]: https://github.com/FireflyJS/fireflyjs-core/network/members
[stars-shield]: https://img.shields.io/github/stars/othneildrew/Best-README-Template.svg?style=for-the-badge
[stars-url]: https://github.com/FireflyJS/fireflyjs-core/stargazers
[issues-shield]: https://img.shields.io/github/issues/othneildrew/Best-README-Template.svg?style=for-the-badge
[issues-url]: https://github.com/FireflyJS/fireflyjs-core/issues
[license-shield]: https://img.shields.io/github/license/othneildrew/Best-README-Template.svg?style=for-the-badge
[license-url]: https://github.com/othneildrew/Best-README-Template/blob/master/LICENSE.txt
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555

<!-- [linkedin-url]: https://linkedin.com/in/othneildrew -->

[product-screenshot]: https://user-images.githubusercontent.com/51146347/130316345-b68999ff-8eb5-4620-bf04-bc9eef91e2c6.png

## Contributors

Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):

<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
  <tr>
    <td align="center"><a href="https://aniket.codes/"><img src="https://avatars.githubusercontent.com/u/51146347?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Aniket Biswas</b></sub></a><br /><a href="https://github.com/FireflyJS/fireflyjs-core/commits?author=aniketbiswas21" title="Code">💻</a> <a href="https://github.com/FireflyJS/fireflyjs-core/commits?author=aniketbiswas21" title="Documentation">📖</a> <a href="#maintenance-aniketbiswas21" title="Maintenance">🚧</a></td>
    <td align="center"><a href="https://github.com/Aryaman1706"><img src="https://avatars.githubusercontent.com/u/56519273?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Aryaman Grover</b></sub></a><br /><a href="https://github.com/FireflyJS/fireflyjs-core/commits?author=Aryaman1706" title="Code">💻</a> <a href="https://github.com/FireflyJS/fireflyjs-core/commits?author=Aryaman1706" title="Documentation">📖</a> <a href="#maintenance-Aryaman1706" title="Maintenance">🚧</a></td>
  </tr>
</table>

<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->

<!-- ALL-CONTRIBUTORS-LIST:END -->

This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!