UNPKG

@symanticreative/vendure-admin-client

Version:

A TypeScript GraphQL client for Vendure Admin API to create custom dashboards

71 lines (70 loc) 1.5 kB
/** * Comparison operators for filter conditions */ export type ComparisonOperator = { eq: string | number | boolean | null; } | { contains: string; } | { in: Array<string | number>; } | { notIn: Array<string | number>; } | { lt: number; } | { lte: number; } | { gt: number; } | { gte: number; } | { between: [number, number]; } | { isNull: boolean; }; /** * Generic filter value type supporting various filter conditions */ export type FilterValue = string | number | boolean | null | Array<string | number | boolean> | ComparisonOperator; /** * Generic filter criteria for filtering operations * This is a recursive type that can handle nested conditions */ export interface FilterCriteria { [key: string]: FilterValue | FilterCriteria | LogicalFilter; } /** * Logical operators for combining filters */ export interface LogicalFilter { and?: FilterCriteria[]; or?: FilterCriteria[]; not?: FilterCriteria; } /** * Sort direction */ export type SortDirection = 'ASC' | 'DESC'; /** * Sort options for ordering results */ export type SortOptions = Record<string, SortDirection>; /** * Pagination options interface */ export interface PaginationOptions { take?: number; skip?: number; sort?: SortOptions; filter?: FilterCriteria; } /** * Paginated result interface */ export interface PaginatedResult<T> { items: T[]; totalItems: number; currentPage: number; totalPages: number; perPage: number; }