graphql-compose-mongoose
Version:
Plugin for `graphql-compose` which derive a graphql types from a mongoose model.
37 lines (31 loc) • 892 B
TypeScript
import { Resolver, TypeComposer } from 'graphql-compose';
import { Model } from 'mongoose';
import { MongoId } from '../types/mongoid';
import { FilterHelperArgs, SortHelperArgs } from './helpers';
export type PaginationResolverOpts = {
perPage?: number;
};
export default function pagination(
model: Model<any>,
tc: TypeComposer<any>,
opts?: PaginationResolverOpts,
): Resolver<any, any> | undefined;
export type PaginationArgs<TSource, IndexedFields = { _id: MongoId }> = {
page: number;
perPage: number;
filter: FilterHelperArgs<TSource, IndexedFields>;
sort: SortHelperArgs;
};
export type PaginationPageInfo = {
currentPage?: number;
perPage: number;
perCount: number;
itemCount: number;
hasNextPage: boolean;
hasPreviousPage: boolean;
};
export type PaginationRSource<TSource> = {
count: number;
items: TSource[];
pageInfo: PaginationPageInfo;
};