Packages

dataloader

2.2.3 · 3 Dec 2024MIT16.1M / weekRepositorynpmAtom feed

Your version

1.2.0

5 Apr 2016Where it was published

1.4.0 is the newest release of 1.x.

Release note

New:

Prime values in the cache - #18. — If you have values cached locally, this provides an API for adding those already known values to a DataLoader cache:

let loader = new DataLoader(keys => promiseToGetKeys(keys));
loader.prime('abc', 'My Value');
loader.load('abc').then(val => console.log(val)); // Logs "My Value"

This also works for priming errors:

let loader = new DataLoader(keys => promiseToGetKeys(keys));
loader.prime('abc', new Error('My Error'));
loader.load('abc').catch(err => console.log(err)); // Logs "My Error"

This is particularly useful for allowing two loaders to interact based on two fetchable keys for one type:

let userByIDLoader = new DataLoader(ids => promiseToGetByID(ids).then(users => {
  for (let user of users) {
    userByUsernameLoader.prime(user.username, user);
  }
  return users;
}));

let userByUsernameLoader = new DataLoader(names => promiseToGetByUsername(names).then(users => {
  for (let user of users) {
    userByIDLoader.prime(user.id, user);
  }
  return users;
}));