提问者:小点点

如何基于GraphQL模式生成基本的、平面的、内联的TypeScript类型


是否可以从GraphQL模式生成可用于常见RESTAPI的TypeScript类型?

我们正在使用一个提供GraphQL和RESTAPI的CMS。上级决定使用REST。但是我们仍然希望有一些代码生成来使我们的工作更容易。使用REST,我们需要在CMS类型发生变化时手动创建/更新我们的类型。GraphQL模式由CMS本身更新,只需运行一些导入/生成作业并获得正确的类型就好了。

我们尝试了不同插件、预设的graph ql-codesen,这就是我们得到的:

export type Bar = {
  __typename?: 'Bar';
  title?: Maybe<Scalars['String']>;
};

export type Foo = {
  __typename?: 'Foo';
  footerConnection?: Maybe<FooBarConnection>;
  title?: Maybe<Scalars['String']>;
};

export type FooBarConnection = {
  __typename?: 'FooBarConnection';
  edges?: Maybe<Array<Maybe<FooBarEdge>>>;
  totalCount?: Maybe<Scalars['Int']>;
};

export type FooBarEdge = {
  __typename?: 'FooBarEdge';
  node?: Maybe<FooBarNode>;
};

export type FooBarNode = Bar;

这对于graph ql查询非常有用,但遗憾的是,我们没有在代码中使用graph ql。

这是我们需要的(或接近它的东西,没有连接节点):

export type Bar = {
  __typename?: 'Bar';
  title?: Maybe<Scalars['String']>;
};

export type Foo = {
  __typename?: 'Foo';
  bar?: Maybe<Bar>;
  title?: Maybe<Scalars['String']>;
};

是否有工具或graph ql-codecen预设/插件或graph ql-codecen的某些特定配置可以帮助完成此任务?

提前感谢。


共1个答案

匿名用户

目前没有办法让GraphQL代码生成器只生成使用的类型。这是我们知道的请求,计划在下一个主要版本中进行:https://github.com/dotansimha/graphql-code-generator/issues/8296