如何让 GraphQL 游乐场不显示选定的选项?

How to make GraphQL playground not display selected options?

我在游乐场有这样的景色:

但是当我尝试向 select 添加另一个选项时,我点击了 CTRL + space,我看到了每一个可能的选项,甚至是已经 select 的选项。

我怎样才能阻止这种情况发生?在下拉列表中,我只想看到我仍然可以 select 的选项,而不是已经 select 的选项。

这是我的 index.ts

const app = express();

(async () => {
  const schema = await buildSchema({ resolvers: [ UserResolvers ] });

  const server = new ApolloServer({ schema });

  server.applyMiddleware({ app });
  createConnection({
    type: 'mysql',
    ...dbData,
    entities: [
      Availability,
      Chat,
      Meeting,
      Message,
      Offer,
      Tag,
      User,
    ],
    synchronize: true,
    logging: true,
  })
    .then(() => {
      app.listen({ port: 4000 }, () => {
        console.log(
          ` Server ready at http://localhost:4000${ server.graphqlPath }`,
        );
      });
    })
    .catch((error) => console.log(error));
})();

没有更改此行为的选项。您可以在 GraphiQL 存储库中打开一个问题(GraphQL Playground 已被有效弃用并将合并到 GraphiQL 中)以请求此功能。

但是,这种功能也不太可能得到支持。重复的字段名称在 GraphQL 中是完全有效的。此外,使用不同的别名和字段的每个实例的不同参数集多次请求同一个字段的情况并不少见:

query {
  activeUsers: users(isActive: true) {
    ...UserFragment
  }
  inactiveUsers: users(isActive: false) {
    ...UserFragment
  }
}

在这种情况下,仅仅因为某个字段已包含在选择集中而从建议列表中省略该字段并没有多大意义。