使用 graphql-codegen-typescript-server NPM 包

阅读时长 5 分钟读完

1. 简介

graphql-codegen-typescript-server 是一个 NPM 包,它可以根据 GraphQL 查询和模式自动生成 TypeScript 代码,使得开发者可以在后端和前端之间更轻松地共享类型和代码。它完全免费且开源,支持创建框架无关的 GraphQL 服务器,并且具有许多定制选项以满足不同的需求。

2. 安装

3. 配置

在项目的根目录下创建一个 codegen.yml 文件,用于配置生成的 TypeScript 代码。示例配置如下:

-- -------------------- ---- -------
---------- ----
------- ----------------------
----------
  ---------------------
    --------
      - ------------
      - -----------------------
      - -------------------
    -------
      ---------- ----
      ---------- -------------
      ------------ -----------------------

以上配置将生成以下代码:

-- -------------------- ---- -------
------ - --- - ---- --------------

------ ---- -------- - -
  --- -------
  ----- -------
  ------ -------
--

------ ---- --------- - -
  ------ -----------
--

------ ---- ------------ - -
  ---------------- ------- ------ -------- ---------
--

------ ---- ---------------- - -
  ---------- ---------
--

------ ---- ----------- - -- -- ------- ---- ---- ------ ------- ----

------ --------- ------------- -
  -------- ------------
-

------ --------- ------------ -
  -------- ------------
  ------- -------
  ---------- ----
-

------ --------- ------------ -
  ----- -------
-

具体的配置说明如下:

  • overwrite:如果为 true,则会在同样的文件名下覆盖已有的文件。

  • schema:GraphQL Schema 文件的路径。

  • generates:生成的文件和使用的插件。

  • plugins:用于生成 TypeScript 代码的插件,包括 typescripttypescript-operationstypescript-server

  • config:每个插件的配置选项。这里只列举了一些常用的选项。

    • onlyQuery:如果为 true,则只会生成与查询相关的代码。

    • gqlImport:用于导入 GraphQL 查询字符串的库的名称。

    • contextType:用于指定上下文类型的模块的路径。更多关于上下文的信息,请参见文档。

4. 使用

4.1. 生成 TypeScript 代码

此命令将根据 codegen.yml 文件中的配置生成 TypeScript 代码。

4.2. 集成到项目中

将生成的 TypeScript 代码复制到项目中。如果你的后端代码是使用 TypeScript 编写的,则可以像这样导入它:

-- -------------------- ---- -------
------ - ------------- --------- - ---- -------------------

----- ------- ------------ - -
  -------- ---
  ------- -------------------------
  ---------- -- -- ------- ---- ---- ------ ---------
--

------------------

4.3. 使用示例

在前端代码中,你可以通过向服务器发送 GraphQL 查询来使用生成的 TypeScript 代码。以下是一个示例:

-- -------------------- ---- -------
------ - --- - ---- --------------
------ ------------ ---- ---------------

----- ------ - --- --------------
  ---- -------------------------------
---

----- ----- - ----
  ----- -
    ----- -
      --
      ----
      -----
    -
  -
--

-------------- ----- -------------- -- --------------------------

这将输出:

-- -------------------- ---- -------
-
  -------- -
    -
      ----- --
      ------- -------
      -------- ------------------
    --
    -
      ----- --
      ------- -------
      -------- ------------------
    -
  -
-

5. 结论

graphql-codegen-typescript-server 是一个非常方便的工具,可以帮助你更快地开发 GraphQL 服务器,并提供类型安全的查询和响应。感谢你阅读了本文,希望它对你有所帮助!

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedad42b5cbfe1ea0610c2f

纠错
反馈