UNPKG

946 BTypeScriptView Raw
1import { Entity } from '../../model';
2import { EntityCrudRepository } from '../../repositories/repository';
3import { Getter, InclusionResolver, ReferencesManyDefinition } from '../relation.types';
4export interface ReferencesManyAccessor<Target extends Entity, SourceId> {
5 /**
6 * Invoke the function to obtain HasManyRepository.
7 */
8 (sourceId: SourceId): Promise<Target>;
9 /**
10 * Use `resolver` property to obtain an InclusionResolver for this relation.
11 */
12 inclusionResolver: InclusionResolver<Entity, Target>;
13}
14/**
15 * Enforces a ReferencesMany constraint on a repository
16 */
17export declare function createReferencesManyAccessor<Target extends Entity, TargetIds, Source extends Entity, SourceId>(referencesManyMetadata: ReferencesManyDefinition, targetRepoGetter: Getter<EntityCrudRepository<Target, TargetIds>>, sourceRepository: EntityCrudRepository<Source, SourceId>): ReferencesManyAccessor<Target, SourceId>;