Package Exports
- firelordjs
- firelordjs/dist/src/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (firelordjs) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
FirelordJS çç«åJS
FirelordJS is the only library that capable of providing insane type safety while exposing almost all the API of the original Firestore SDK.
FirelordJS has:
- The lowest learning curve (API is nearly identical to the original API).
- The lowest technical debt (easiest to revert to the original API).
- The best type safety**.
- The only library that capable of type against runtime errors.
- Possibly also the smallest.
It is what you are looking at: the Master of Fire.
Support @firebase/rules-unit-testing
What is tested:
- Development code: check correctness
- Built code: check compiler setting
- Published code are all tested in CI: check package.json entry point
** I am confident it is the best. If you found something better, I will buy you 10 cups of coffee and 100 cups of coffee if you can create something better.
Contribution
(The lower it goes, the harder it is)
For starter, you can refactor files in
src/typesfolder, especiallysrc/types/queryConstraintLimitation.ts.Simplify type logic and remove dead code.
Utilizing the latest Typescript feature, like extends Constraints on infer Type Variables to reduce code length.
Improve tests.
You can also work on the documentation.
You can help to implement the exact same type logics for NodeJS Admin version, the admin version is still using the old logics.
Note that there is no V9 for admin, so we need to rewrite the runtime wrapper for it to looks like V9. We must reuse the type logics and tests code for consistency.
Looking for a challenge? Then you can try to implement
mandatory field type:- It is a special type that assign (with union) to object member.
- Members with such type become
requiredeven inupdateoperations(all members in update operations are partial by default).
Practical usage is something like
updatedAtmember that keep track of document last updated time.Basically just turn an optional member into a required member but due to inner complexity, this is not going to be easy.
If you want to work on this, come to me first to discuss the implementation strategy, I will provide all information you need to carry out this commit.
Or just spread the word. ð
Related Projects
- Firelord - Typescript wrapper for Firestore Admin
- Firelordrn - Typescript wrapper for Firestore React Native
- FireLaw - Write Firestore security rule with Typescript, utilizing Firelord type engine.
- FireCall - Helper Function to write easier and safer Firebase onCall function.