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