Package nameWeekly DownloadsVersionLicenseUpdated
@envelop/dataloaderDownloadsVersionLicenseNov 24th, 2022


yarn add @envelop/dataloader


This plugin helps you to create a new DataLoader instance every time your context is being built. The created instance is injected into the context with the name your wish to use.

Getting Started

yarn add dataloader @envelop/dataloader

Usage Example

import { parse, validate, specifiedRules, execute, subscribe } from 'graphql'
import { envelop, useEngine } from '@envelop/core'
import DataLoader from 'dataloader'
import { useDataLoader } from '@envelop/dataloader'
const getEnveloped = envelop({
  plugins: [
    useEngine({ parse, validate, specifiedRules, execute, subscribe }),
    // ... other plugins ...
    useDataLoader('users', context => new DataLoader(keys => myBatchGetUsers(keys)))

Then, when you need to use it in your resolvers, just take it from the context:

export const resolvers = {
  Query: {
    user: (root, args, context, info) => {
      return context.users.load(


There are several ways to create and use DataLoader, please refer to: for more details.