api-core
Version:
Model-based dynamic multi-level APIs for any provider, plus multiple consumption channels
42 lines (41 loc) • 1.58 kB
TypeScript
import { ApiEdgeQueryFilter, ApiEdgeQueryFilterType, ExportedApiEdgeQueryFilter } from "./ApiEdgeQueryFilter";
import { OneToOneRelation } from "../relations/OneToOneRelation";
import { Api } from "../Api";
import { ApiEdgeQueryParameter, ExportedApiEdgeQueryParameter } from "./ApiEdgeQueryParameter";
export interface ExportedApiEdgeQueryContext {
id: string | null;
fields: string[];
populatedRelations: string[];
pagination: {
skip: number;
limit: number;
};
sortBy: [string, number][];
filters: ExportedApiEdgeQueryFilter[];
parameters: ExportedApiEdgeQueryParameter[];
}
export declare class ApiEdgeQueryContext {
id: string | null;
fields: string[];
populatedRelations: OneToOneRelation[];
pagination: {
skip: number;
limit: number;
};
sortBy: [string, number][];
filters: ApiEdgeQueryFilter[];
parameters: ApiEdgeQueryParameter[];
identity: any;
method: string;
clone: () => ApiEdgeQueryContext;
toJSON: () => ExportedApiEdgeQueryContext;
static fromJSON: (obj: ExportedApiEdgeQueryContext, api: Api) => Promise<ApiEdgeQueryContext>;
constructor(id?: string | null, fields?: string[]);
paginate: (skip: number, limit: number) => this;
sort: (fieldName: string, ascending?: boolean) => this;
populate(relation: OneToOneRelation): this;
field(field: string): this;
filter(field: string, type: ApiEdgeQueryFilterType, value: any): this;
parameter(key: string): any;
parameter(key: string, value: any): ApiEdgeQueryContext;
}