const SettingsService = require('../../services/settings'); const DataLoader = require('dataloader'); /** * Creates a set of loaders based on a GraphQL context. * @param {Object} context the context of the GraphQL request * @return {Object} object of loaders */ module.exports = () => { const loader = new DataLoader(selections => Promise.all( selections.map(fields => { return SettingsService.retrieve(fields); }) ) ); return { Settings: { load: (fields = false) => loader.load(fields), }, }; };