По сути, вы можете разделять StoreSupplies
запросы, чтобы не получать их при запросе по продуктам.
Вы также можете получить запрошенные ключи в своем преобразователе, а затем выполнять запросы на основе их. Чтобы сделать это, вы можете определить декоратор параметров следующим образом:
import { createParamDecorator } from '@nestjs/common';
export const Info = createParamDecorator(
(data, [root, args, ctx, info]) => info,
);
Затем используйте его в вашем резольвере следующим образом:
@UseGuards(GqlAuthGuard)
@Query(returns => UserType)
async getMe(@CurrentUser() user: User, @Info() info): Promise<User> {
console.log(
info.fieldNodes[0].selectionSet.selections.map(item => item.name.value),
);
return user;
}
Например, когда вы запускаете этот запрос
{
getMe{
id
email
roles
}
}
Выход console.log
:
[ 'id', 'email', 'roles' ]