UNPKG

@schamane/small-graphql-mongoose-middleware

Version:

![Check Code](https://github.com/schamane/small-graphql-mongoose-middleware/workflows/Check%20Code/badge.svg)

40 lines (39 loc) 1.86 kB
import { DataSource, DataSourceConfig } from 'apollo-datasource'; import { Document, Model } from 'mongoose'; import { Filter, QueryFieldsType, Sorter } from './mongo'; import { GrapqhContext } from '..'; export declare abstract class MongoDataSource<T extends Document, TContext extends GrapqhContext = GrapqhContext> extends DataSource<TContext> { protected Entity: Model<T>; protected context: TContext; protected importFields: string[]; private fieldTranslations; private limit; private extensions; constructor(entity: Model<T>, fieldTranslations: QueryFieldsType, exts?: any[]); initialize(config: DataSourceConfig<TContext>): void; add(entity: Partial<T>): Promise<T>; update(entity: Partial<T>): Promise<T>; import(data: T[]): Promise<number>; truncate(): Promise<void>; findByIdAndDelete(id: string): Promise<T>; findByIds(ids: string[]): Promise<T[]>; protected findById(id: string): Promise<T>; protected find(filters: Filter | Filter[], sort?: Sorter, distinct?: string): Promise<T[]>; protected count(filters: Filter | Filter[], distinct?: string): Promise<number>; protected all(sort?: Sorter, distinct?: string): Promise<T[]>; protected setLimit(limit: number): void; protected getLimit(): number | undefined; abstract filter(filters: Filter[], sort?: Sorter): Promise<T[] | Partial<T>[]>; abstract list(sort?: Sorter): Promise<T[] | Partial<T>[]>; protected abstract valuesFilter(): Filter; private entityPreSave; private entityPreUpdate; private entityPreQuery; values<V>(attribute: string, language: string): Promise<V[]>; private toSortObject; private static toLodashSort; private sortAndExecuteQuery; private static sortAndExecuteQueryOnDB; private static sortAndExecuteQueryOnApi; private static isSortOnDB; }