@typeheim/orm-on-fire
Version:
Firestore ORM
25 lines (24 loc) • 1.36 kB
TypeScript
import { EntityPersister } from './EntityPersister';
import { AsyncStream, ReactivePromise, StatefulSubject } from '@typeheim/fire-rx';
import { ChangedEntities } from '../Data/ChangedEntities';
import { EntityQuery } from '../Persistence/EntityQuery';
import { EntityType, FilterFunction } from '../Contracts';
import { CollectionQuery } from '../Persistence/CollectionQuery';
import { QueryFactory } from '../Persistence/QueryFactory';
import { EntityStream } from '../Data/EntityStream';
export declare class Collection<Entity> {
protected queryFactory: QueryFactory<Entity>;
protected persister: EntityPersister<Entity>;
constructor(queryFactory: QueryFactory<Entity>, persister: EntityPersister<Entity>);
static of<Entity>(entity: EntityType<Entity>): Collection<Entity>;
static groupOf<Entity>(entity: EntityType<Entity>): Collection<Entity>;
all(): CollectionQuery<Entity>;
one(id: string): EntityQuery<Entity>;
new(id?: string): ReactivePromise<Entity>;
save(entity: Entity): ReactivePromise<void>;
remove(entity: Entity): ReactivePromise<void>;
filter(filterFunction: FilterFunction<Entity>): CollectionQuery<Entity>;
changes(): EntityStream<ChangedEntities<Entity>>;
forEach(callback: ((value: Entity) => void)): AsyncStream<any>;
clean(): StatefulSubject<unknown>;
}