1 | import DataLoader from 'dataloader';
|
2 |
|
3 | import {
|
4 | updateUser,
|
5 | addUser,
|
6 | getUser,
|
7 | getUsers,
|
8 | PATH,
|
9 | getUserByURL,
|
10 | } from '../../Services/User';
|
11 |
|
12 | const getUserLoader = (cacheMap) => {
|
13 | const usersLoader =
|
14 | new DataLoader(keys => Promise.all(keys.map(getUsers)), { cache: false });
|
15 |
|
16 | const userLoader =
|
17 | new DataLoader(keys => Promise.all(keys.map(getUser)), { cache: false });
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 | const userByURLLoader =
|
25 | new DataLoader(keys => Promise.all(keys.map(getUserByURL)), { cache: false });
|
26 |
|
27 | userLoader.loadAll = usersLoader.load.bind(usersLoader, '__all__');
|
28 | userLoader.loadByURL = userByURLLoader.load.bind(userByURLLoader);
|
29 | userLoader.loadManyByURL = userByURLLoader.loadMany.bind(userByURLLoader);
|
30 | userLoader.addUser = addUser;
|
31 | userLoader.updateUser = updateUser;
|
32 | return userLoader;
|
33 | };
|
34 |
|
35 | export default { getUserLoader };
|