json-api-nestjs
Version:
JsonApi Plugin for NestJs
22 lines (21 loc) • 1.31 kB
TypeScript
import { Attributes, DataResult, EntityRelation, Include, Relationships, ResourceData, ResourceObject } from '../../../utils/nestjs-shared';
import { ObjectLiteral } from '../../../types';
import { ZodEntityProps } from '../types';
import { Query, QueryOne } from '../zod';
export declare class JsonApiTransformerService<E extends ObjectLiteral> {
private applicationConfig;
private entityMapProps;
private currentEntity;
private _urlPath;
private _currentMapProps;
get currentMapProps(): ZodEntityProps<E>;
get urlPath(): string[];
transformData(data: E, query: QueryOne<E>): Pick<ResourceObject<E>, 'data' | 'included'>;
transformData(data: E[], query: Query<E>): Pick<ResourceObject<E, 'array'>, 'data' | 'included'>;
transformItem<T extends ObjectLiteral = E>(item: T, mapProps: ZodEntityProps<T>, query: Query<T>): ResourceData<T>;
transformRel<Rel extends EntityRelation<E>>(item: E, rel: Rel): DataResult<E[Rel], Rel>;
transformRelationships<T extends ObjectLiteral = E>(item: T, mapProps: ZodEntityProps<T>, query: Query<T>): Relationships<T>;
extractAttributes<T extends ObjectLiteral = E>(item: T, fields: (keyof T)[]): Attributes<T>;
extractIncluded<T extends ObjectLiteral = E>(data: T[], query: Query<E>): Include<T>[];
private getLink;
}