2016-01-27 31 views
1

有没有可能在继电器上使用babel-relay-plugin?我想动态生成GraphQL模式,而Relay似乎想在编译时知道整个类型系统。是否有可能推迟到运行时?带继电器的动态GraphQL架构生成

任何人都知道babel-relay-plugin究竟做了什么?我真的想用它来转换查询和组合片段......但是如果它允许我动态地构造查询,我愿意没有类型检查和验证。

在那个笔记上,有没有人用过这个? https://github.com/gyzerok/adrenaline

也许我只是用它来制作查询。

回答

2

在典型的场景中,Relay在编译时需要架构,正如您已经注意到的那样。设计的许多方面都是基于能够在运行时呈现之前做事情(如生成查询)。

但是,有可能破解事物并获得一些运行时动态;例如,考虑the Relay website上的“Playground”,它允许您在浏览器中定义模式并针对它运行代码。

它这样做是有some nasty hacks,但基本上可以归结为calling Babel and evaling the result

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

也启发一下:how it updates the schema和它的使用relay-local-schema package的。