apollo-datasource-firestore
Version:
An Apollo DataSource for Firestore
34 lines (33 loc) • 1.91 kB
TypeScript
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);
}