我正在使用graphql-schema-linter包来验证GraphQL模式。
我想知道是否可以通过将像这样的类型定义传递给stdin来以编程方式执行验证...
const { exec } = require('child_process');
const typeDefs = require('./type-defs');
exec(`graphql-schema-linter --stdin "${typeDefs}"`, (err, stdout, stderr) => {
if (err) console.log('ERROR: ', err);
if (stdout) console.log('STDOUT: ', stdout);
if (stderr) console.log('STDERR: ', stderr);
});
const server = new ApolloServer({
typeDefs
});
以下代码会产生错误,因为我不太确定如何以正确的方式通过stdin传递类型defs
答案 0 :(得分:0)
好吧,经过一番挖掘,我找到了解决方案。原来我不得不使用spawnSync
来接受标准输入作为输入
const command = spawnSync('graphql-schema-linter', ['-s'], { input: typeDefs, encoding: 'utf-8' });