UNPKG

apollo-datasource-firestore

Version:
34 lines (33 loc) 1.91 kB
import { type KeyValueCache } from '@apollo/utils.keyvaluecache'; import type { CollectionReference, PartialWithFieldValue, Query, WithFieldValue } from '@google-cloud/firestore'; import { type Logger, type LibraryFields } from './helpers'; import { type CachedMethods, type FindArgs } from './cache'; export interface FirestoreDataSourceOptions { logger?: Logger; cache?: KeyValueCache; } export type QueryFindArgs = FindArgs; export declare class FirestoreDataSource<TData extends LibraryFields> implements CachedMethods<TData> { collection: CollectionReference<TData>; logger?: Logger; findOneById: CachedMethods<TData>['findOneById']; findManyByIds: CachedMethods<TData>['findManyByIds']; deleteFromCacheById: CachedMethods<TData>['deleteFromCacheById']; primeLoader: CachedMethods<TData>['primeLoader']; dataLoader: CachedMethods<TData>['dataLoader']; cache: CachedMethods<TData>['cache']; cachePrefix: CachedMethods<TData>['cachePrefix']; reviver: () => never; replacer: () => never; /** * * @param query * @param options */ findManyByQuery(queryFunction: (collection: CollectionReference<TData>) => Query<TData>, { ttl }?: QueryFindArgs): Promise<TData[]>; createOne(newDoc: (WithFieldValue<Omit<TData, keyof LibraryFields>> & Pick<LibraryFields, 'id'> & Partial<Omit<LibraryFields, 'id'>>) | Omit<WithFieldValue<TData>, keyof LibraryFields>, { ttl }?: QueryFindArgs): Promise<TData | undefined>; deleteOne(id: string): Promise<FirebaseFirestore.WriteResult>; updateOne(data: (WithFieldValue<Omit<TData, keyof LibraryFields>> & Pick<TData, 'id'> & Partial<Omit<LibraryFields, 'id'>>)): Promise<TData | undefined>; updateOnePartial(id: string, data: PartialWithFieldValue<TData>): Promise<TData | undefined>; constructor(collection: CollectionReference<TData>, options?: FirestoreDataSourceOptions); }