Использование graphql` в Relay.createContainer - PullRequest
0 голосов
/ 03 мая 2018

У меня есть конкретный случай использования, когда я хочу использовать новый graphql babel transform since it provides graphql query name lookup but without createFragmentContainer. Is there any way to write a converter from gaphql для Relay.QL`?

Я посмотрел на вывод обоих Relay.QL and graphql, но не смог найти хороший способ конвертировать graphql to Relay.QL

1 Ответ

0 голосов
/ 03 мая 2018

Я понял, вот пример кода, который я написал

const convertToClassicQuery = query => query.classic(RelayQL_GENERATED).node;

Вот небольшая библиотека для преобразования createContainer для приема современных запросов

import Relay from 'react-relay/classic';

const RelayQL_GENERATED = require('react-relay/classic').QL; // eslint-disable-line

const convertToClassicQuery = query => query.classic(RelayQL_GENERATED).node;

const convertFragments = fragments => _.mapValues(fragments, fragment => () => convertToClassicQuery(fragment()));

const convertFragmentProps = (fragmentProps) => {
  fragmentProps.fragments = convertFragments(fragmentProps.fragments); // eslint-disable-line
  return fragmentProps;
};
const createContainer = (Component, fragmentProps) => Relay.createContainer(Component, convertFragmentProps(fragmentProps));


module.exports = {
  createContainer,
};
...