json-api-nestjs
Version:
JsonApi Plugin for NestJs
45 lines (44 loc) • 3.01 kB
TypeScript
import { EntityClass, EntityKey, EntityProperty, type QBFilterQuery, QBQueryOrderMap, EntityData } from '@mikro-orm/core';
import { Knex, SqlEntityManager, QueryBuilder } from '@mikro-orm/knex';
import { EntityRelation } from '../../../utils/nestjs-shared';
import { ObjectLiteral } from '../../../types';
import { Query, QueryOne, Relationships } from '../../mixin/zod';
import { InputValidateData, ValidateReturn } from '../../type-orm/service';
export declare class MicroOrmUtilService<E extends ObjectLiteral> {
readonly entityManager: SqlEntityManager;
private entityRepository;
readonly entity: EntityClass<E>;
private _relationsName;
private _relationMap;
private _relationPropsMap;
get relationsName(): EntityKey<E, false>[];
getRelationProps(entity: EntityClass<E>): EntityKey<E, false>[];
getRelation(name: EntityKey<E, false>): EntityProperty<E, any>;
get currentAlias(): string;
get metadata(): import("@mikro-orm/core").EntityMetadata<E>;
get currentPrimaryColumn(): EntityKey<E, false>;
get defaultOrder(): QBQueryOrderMap<E>;
getAliasForEntity<T = E>(entity: EntityClass<T>): string;
getAliasForPivotTable<T = E>(relName: keyof T): string;
getAliasForPivotTable<T = E>(entity: EntityClass<T>, relName: keyof T): string;
queryBuilder<T extends ObjectLiteral = E>(entity: EntityClass<T>, alias: string): QueryBuilder<T, typeof alias>;
queryBuilder<T extends ObjectLiteral = E>(entity: EntityClass<T>): QueryBuilder<T, string>;
queryBuilder<T extends ObjectLiteral = E>(alias: string): QueryBuilder<T, typeof alias>;
queryBuilder<T extends ObjectLiteral = E>(): QueryBuilder<T, string>;
getFilterExpressionForTarget<T extends ObjectLiteral = E>(query: Query<T>): QBFilterQuery<T>[];
getConditionalForJoin<T extends ObjectLiteral = E>(query: Query<T>, key: string): QBFilterQuery;
private extractedResultOperand;
getFilterExpressionForRelation<T extends ObjectLiteral = E>(query: Query<T>): QBFilterQuery<T>[];
getKnex(): Knex<E, E[]>;
prePareQueryBuilder(queryBuilder: QueryBuilder<E>, query: Query<E> | QueryOne<E>): QueryBuilder<E>;
getPrimaryNameFor(rel: EntityRelation<E>): EntityKey<E, false>;
private getFilterObject;
private getSubQueryForRelation;
private getInverseFieldForManyToMany;
createEntity(params: EntityData<E>): E;
private asyncIterateFindRelationships;
saveEntity(targetInstance: E, relationships?: Relationships<E>): Promise<E>;
validateRelationInputData<Rel extends EntityRelation<E>, In extends InputValidateData | InputValidateData[]>(rel: Rel, inputData: In): Promise<ValidateReturn<In>>;
validateRelationInputData<Rel extends EntityRelation<E>, In extends InputValidateData | InputValidateData[]>(rel: Rel, inputData: In): Promise<ValidateReturn<In>>;
validateRelationInputData<Rel extends EntityRelation<E>, In extends null | InputValidateData | InputValidateData[]>(rel: Rel, inputData: In): Promise<ValidateReturn<In>>;
}