UNPKG

@typeheim/orm-on-fire

Version:
25 lines (24 loc) 1.36 kB
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>; }