firesage
Version:
🔥 Extremely High Precision Typescript Wrapper for Firestore Web, Providing Unparalleled Type Safe and Dev Experience
41 lines (37 loc) • 3.94 kB
TypeScript
import { MetaType, IsValidID, GetNumberOfSlash, ErrorNumberOfForwardSlashIsNotEqual, DocumentReference, CollectionReference, Query, FirestoreAndFirestoreTesting } from './types';
/**
Gets a FirelordReference instance that refers to the doc, collection, and collectionGroup at the specified absolute path.
@param firestore
Optional. A reference to the Firestore database. If no value is provided, default Firestore instance is used.
@param path
A slash-separated full path to a collection.
@returns
DocumentReference, CollectionReference and CollectionGroupReference instance.
*/
export declare const getFirelord: <T extends MetaType>(firestore?: FirestoreAndFirestoreTesting) => <CollectionPath extends T["collectionPath"] = T["collectionPath"]>(collectionPath: CollectionPath extends never ? CollectionPath : import("./types").GetNumberOfInvalidCharacter<CollectionPath, "/", []> extends import("./types").GetNumberOfInvalidCharacter<T["collectionPath"], "/", []> ? IsValidID<CollectionPath, "Collection", "Path"> : `Error: ${import("./types").GetNumberOfInvalidCharacter<CollectionPath, "/", []> extends infer T_1 ? T_1 extends import("./types").GetNumberOfInvalidCharacter<CollectionPath, "/", []> ? T_1 extends 0 ? "You need to assert your value for documentId() as const, eg: ( 'a/b/c' as const ) or else the forward slash count would be 0" : "Invalid query, forward slash count mismatched" : never : never}, current count is ${import("./types").GetNumberOfInvalidCharacter<CollectionPath, "/", []>}, need ${import("./types").GetNumberOfInvalidCharacter<T["collectionPath"], "/", []>}.`) => Readonly<{
doc: {
<DocumentId extends T["docID"]>(documentID: DocumentId extends never ? DocumentId : DocumentId extends IsValidID<DocumentId, "Document", "ID"> ? T["docID"] : IsValidID<DocumentId, "Document", "ID">): DocumentReference<T>;
<DocumentId_1 extends T["docID"]>(firestore: FirestoreAndFirestoreTesting, documentID: DocumentId_1 extends never ? DocumentId_1 : DocumentId_1 extends IsValidID<DocumentId_1, "Document", "ID"> ? T["docID"] : IsValidID<DocumentId_1, "Document", "ID">): DocumentReference<T>;
};
collection: (firestore?: FirestoreAndFirestoreTesting) => CollectionReference<T>;
collectionGroup: (firestore?: FirestoreAndFirestoreTesting) => Query<T>;
}>;
export declare type FirelordRef<T extends MetaType> = Readonly<{
doc: {
<DocumentId extends T['docID']>(documentID: DocumentId extends never ? DocumentId : DocumentId extends IsValidID<DocumentId, 'Document', 'ID'> ? T['docID'] : IsValidID<DocumentId, 'Document', 'ID'>): DocumentReference<T>;
<DocumentId extends T['docID']>(firestore: FirestoreAndFirestoreTesting, documentID: DocumentId extends never ? DocumentId : DocumentId extends IsValidID<DocumentId, 'Document', 'ID'> ? T['docID'] : IsValidID<DocumentId, 'Document', 'ID'>): DocumentReference<T>;
};
collection: (firestore?: FirestoreAndFirestoreTesting) => CollectionReference<T>;
collectionGroup: (firestore?: FirestoreAndFirestoreTesting) => Query<T>;
}>;
export { Timestamp, GeoPoint, Bytes, getFirestore, terminate, initializeFirestore, loadBundle, clearIndexedDbPersistence, connectFirestoreEmulator, disableNetwork, enableIndexedDbPersistence, enableMultiTabIndexedDbPersistence, enableNetwork, onSnapshotsInSync, namedQuery, waitForPendingWrites, CACHE_SIZE_UNLIMITED, } from 'firebase/firestore';
export * from './batch';
export * from './transaction';
export * from './fieldValue';
export * from './fieldPath';
export * from './onSnapshot';
export * from './operations';
export * from './queryClauses';
export { query } from './refs';
export * from './equal';
export type { MetaType, MetaTypeCreator, ServerTimestamp, DeleteField, PossiblyReadAsUndefined, DocumentReference, CollectionReference, Query, DocumentSnapshot, QuerySnapshot, QueryDocumentSnapshot, } from './types';