@getcircuit/firestore-types v15.17.15
@getcircuit/firestore-types
A workaround to allow us to override Firestore types in our projects. Its default exports are client-side Firestore types.
Rationale
When we aim to share model types between the client and server Firestore, we hit a snag: The types related to Firestore References in our @getcircuit/schema
package are based on client Firestore types. However, when these types are consumed in server-side projects (like Engine), it leads to type discrepancies and errors. This package serves as an intermediary to bridge this gap and provides a mechanism to override the Firestore types to the appropriate ones for the given context (client or server).
Usage in @getcircuit/schema
Instead of pulling the types directly from the firebase
package, our schema package pulls them from this package instead. This allows us to override the types in a consuming project.
Overriding types in a consuming project
Take this firestore-types.d.ts
file for Engine as an example:
declare module '@getcircuit/firestore-types' {
export type Timestamp = import('@google-cloud/firestore').Timestamp;
export type GeoPoint = import('@google-cloud/firestore').GeoPoint;
export type DocumentReference<T = any> =
import('@google-cloud/firestore').DocumentReference<T>;
export type CollectionReference<T = any> =
import('@google-cloud/firestore').CollectionReference<T>;
export type Query<T = any> = import('@google-cloud/firestore').Query<T>;
export type QuerySnapshot<T = any> =
import('@google-cloud/firestore').QuerySnapshot<T>;
export type DocumentSnapshot<T = any> =
import('@google-cloud/firestore').DocumentSnapshot<T>;
}
Note: use
import()
instead of import expressions otherwise the original types will not be overridden.
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago