Динамическая генерация схемы GraphQL с реле

Можно ли не использовать плагин babel-relay-plugin с Relay? Я хочу динамически генерировать схемы GraphQL, тогда как Relay, кажется, хочет знать всю систему типов во время компиляции. Можно ли отложить это до времени выполнения?

Кто-нибудь знает, что именно делает babel-relay-plugin? Я действительно хочу использовать его для преобразования запросов и объединения фрагментов... но я хочу жить без проверки типов и проверки, если это позволяет мне динамически создавать запросы.

На этой ноте кто-нибудь использовал это? https://github.com/gyzerok/adrenaline

Может быть, я просто буду использовать это для создания запросов.

1 ответ

В типичном сценарии Relay нужна схема во время компиляции, как вы заметили. Многие аспекты проекта основаны на способности что-то делать (например, генерировать запросы) перед рендерингом во время выполнения.

Тем не менее, можно взломать вещи и получить динамизм во время выполнения; например, рассмотрим "Playground" на веб-сайте Relay, который позволяет вам определять схему в браузере и запускать код для нее.

Это делается с помощью некоторых неприятных хаков, но в основном сводится к тому, чтобы позвонить Бабелю и оценить результат:

var {code} = babel.transform(source, {code: true, ast: false});
return eval(code);

Также поучительно посмотреть: как он обновляет схему и как она использует пакет relay-local-schema.

Другие вопросы по тегам