UNPKG

@minimaltech/node-infra

Version:

Minimal Technology NodeJS Infrastructure - Loopback 4 Framework

56 lines (55 loc) 2.59 kB
import { AnyType, EntityClassType, EntityRelationType, IdType, TRelationType } from '../../common/types'; import { DataObject, Getter, Inclusion, juggler, Options, Where } from '@loopback/repository'; import { BaseObjectSearchTzEntity, BaseSearchableTzEntity, BaseTextSearchTzEntity, BaseTzEntity } from '../base.model'; import { TzCrudRepository } from './tz-crud.repository'; export declare abstract class SearchableTzCrudRepository<E extends BaseTextSearchTzEntity | BaseObjectSearchTzEntity | BaseSearchableTzEntity, R extends EntityRelationType = AnyType> extends TzCrudRepository<E, R> { protected readonly searchableInclusions: Inclusion[]; protected readonly isInclusionRelations: boolean; constructor(entityClass: EntityClassType<E>, dataSource: juggler.DataSource, opts: { isInclusionRelations: boolean; searchableInclusions?: Inclusion[]; }, scope?: string); abstract renderTextSearch(opts: { data?: DataObject<E>; entity: E & R; }): string; abstract renderObjectSearch(opts: { data?: DataObject<E>; entity: E & R; }): object; abstract onInclusionChanged<RM extends BaseTzEntity>(opts: { relation: string; relationRepository: TzCrudRepository<RM>; entities: RM[]; options?: Options; }): Promise<void>; protected registerOnInclusionChanged<RM extends BaseTzEntity>(relation: string, relationRepositoryGetter: Getter<TzCrudRepository<RM>>): Promise<void>; protected handleInclusionChanged<RM extends BaseTzEntity>(opts: { relationName: string; relationType: TRelationType; entities: RM[]; relationRepository: TzCrudRepository<RM>; options?: Options; }): Promise<void>; private renderSearchable; mixSearchFields(data: DataObject<E>, options?: Options & { where?: Where; ignoreMixSearchFields?: boolean; }): Promise<DataObject<E>>; create(data: DataObject<E>, options?: Options & { ignoreMixSearchFields?: boolean; }): Promise<E>; createAll(data: DataObject<E>[], options?: Options & { ignoreMixSearchFields?: boolean; }): Promise<E[]>; updateById(id: IdType, data: DataObject<E>, options?: Options & { ignoreMixSearchFields?: boolean; }): Promise<void>; replaceById(id: IdType, data: DataObject<E>, options?: Options & { ignoreMixSearchFields?: boolean; }): Promise<void>; private _syncSearchFields; syncSearchFields(where?: Where<E>, options?: Options & { pagingLimit?: number; }): Promise<void>; }