簡體   English   中英

如何根據 GraphQL 模式生成基本、扁平、內聯 TypeScript 類型

[英]How can I generate base, flat, inline TypeScript types, based on GraphQL schema

是否可以從 GraphQL 模式 TypeScript 類型生成可與普通 REST API 一起使用的類型?

我們正在使用 CMS,它提供 GraphQL 和 REST API-s。 上級決定使用REST。但是我們還是希望有一些代碼生成,方便我們的工作。 對於 REST,我們需要在 CMS 類型更改時手動創建/更新我們的類型。 GraphQL 架構由 CMS 本身更新,運行一些導入/生成作業並獲得正確的類型會很棒。

我們用不同的插件、預設嘗試了 graphql-codegen ,這就是我們得到的:

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;

這對於 graphql 查詢非常有用,但遺憾的是,我們沒有在我們的代碼中使用 graphql。

這是我們需要的(或接近它的東西,沒有edgesconnectionnode ):

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

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

是否有工具或 graphql-codegen 預設/插件或 graphql-codegen 的某些特定配置可以幫助完成此任務?

提前致謝。

目前沒有辦法讓 GraphQL 代碼生成器只生成使用過的類型。 這是我們知道的請求,並計划在下一個主要版本中使用: https://github.com/dotansimha/graphql-code-generator/issues/8296

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM