Я использую DataLoader для пакетной обработки запросов/запросов.
В моей функции загрузчика мне нужно знать запрошенные поля, чтобы избежать наличия SELECT * FROM query
, а скорее SELECT field1, field2, ... FROM query
...
Как лучше всего использовать DataLoader для передачи необходимого resolveInfo
? (Я использую resolveInfo.fieldNodes
, чтобы получить запрошенные поля)
На данный момент я делаю что-то вроде этого:
await someDataLoader.load({ ids, args, context, info });
а затем в самом загрузчикеFn:
const loadFn = async options => {
const ids = [];
let args;
let context;
let info;
options.forEach(a => {
ids.push(a.ids);
if (!args && !context && !info) {
args = a.args;
context = a.context;
info = a.info;
}
});
return Promise.resolve(await new DataProvider().get({ ...args, ids}, context, info));};
но, как вы видите, он хакерский и не очень хорошо себя чувствует...
У кого-нибудь есть идеи, как мне этого добиться?