UNPKG

1.11 kBJavaScriptView Raw
1import DataLoader from 'dataloader';
2
3import {
4 updateEntity,
5 addEntity,
6 getEntity,
7 getEntities,
8 PATH,
9 getEntityByURL,
10} from '../../Services/Activity';
11
12const getActivityLoader = (cacheMap) => {
13 const activitiesLoader =
14 new DataLoader(keys => Promise.all(keys.map(getEntities)), { cache: false }); // , { cacheMap }
15
16 const activityLoader =
17 new DataLoader(keys => Promise.all(keys.map(getEntity)), { cache: false });
18
19 // , {
20 // cacheKeyFn: key => `${PATH}/${key}`,
21 // cacheMap,
22 // }
23
24 const activityByURLLoader =
25 new DataLoader(keys =>
26 Promise.all(keys.map(key => getEntityByURL(`${PATH}/${key}`))), { cache: false }); // , { cacheMap }
27
28 activityLoader.loadAll = activitiesLoader.load.bind(activitiesLoader, '__all__');
29 activityLoader.loadByURL = activityByURLLoader.load.bind(activityByURLLoader);
30 activityLoader.loadManyByURL = activityByURLLoader.loadMany.bind(activityByURLLoader);
31 activityLoader.addActivity = addEntity;
32 activityLoader.updateActivity = updateEntity;
33
34 return activityLoader;
35};
36
37export default { getActivityLoader };