Add DataLoader to graphql-composer resolvers.
DataLoader cannot be expressed like a simple plugin. Mostly this plugin was used with graphql-compose-mongoose models. From graphql-compose-mongoose@9.0.0 (read more) it starts provide new built-in resolvers dataLoader
& dataLoaderMany resolvers
which implement DataLoader logic in different manner.
npm install graphql-compose-dataloader --save
Modules graphql
, graphql-compose
are in peerDependencies
, so should be installed explicitly in your app. They have global objects and should not have ability to be installed as submodule.
import mongoose from 'mongoose';
import composeWithMongoose from 'graphql-compose-mongoose';
import composeWithDataLoader from 'graphql-compose-dataloader';
const LanguagesSchema = new mongoose.Schema({
language: String,
skill: {
type: String,
enum: [ 'basic', 'fluent', 'native' ],
},
});
const Languages = mongoose.model('Languages', LanguagesSchema)
const LanguagesTC = composeWithDataLoader(composeWithMongoose(Languages),{cacheExpiration: 700})
Prop | Type | Description |
---|---|---|
cacheExpiration |
number |
Expiration in number of milliseconds. This will clear the one request sendt via the resolver (Default: 500) |
removeProjection |
boolean |
Remove projection, this will request fields on the requested document and put it to cache (Default: true) |
debug |
boolean |
Enable debug? (Default: false) |
======= MIT