npm 包 @okgrow/graphql-scalars 使用教程

GraphQL 是一种用于 API 操作的查询语言,它允许客户端定义需要的数据形式,从而使 API 只传递此数据。GraphQL Scalars 是一个内置的 GraphQL 类型系统扩展,提供了许多常见的标量类型的标准和自定义实现。@okgrow/graphql-scalars 则在此基础上进一步提供了更多的自定义标量类型。

本文将介绍如何使用 @okgrow/graphql-scalars 包,并结合示例代码详细介绍其功能和使用方法。

安装

使用 npm 管理工具进行安装:

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

或者

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

使用

首先,需要在 GraphQL Scalar 类型定义中引入 @okgrow/graphql-scalars:

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

然后,定义一个新的标量类型:

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

然后,在解析函数中使用 @okgrow/graphql-scalars 中提供的解析器:

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

最后,使用你的新标量类型:

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

自定义实现

在 @okgrow/graphql-scalars 中,自定义实现一个标量类型非常简单。可以使用自动生成值和解析函数来创建一个新的标量类型。

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

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

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

上述代码中,使用 GraphQL ISO Date 库获取了 DateTime 类型,之后通过使用自动生成值和解析函数来创建了一个新的标量类型。可以看到,其中实现了序列化、解析值和解析字面值等函数。

最后,将自定义标量类型进行注册:

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

示例代码

下面我们通过一个完整的示例来演示 @okgrow/graphql-scalars 的使用。

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

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

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

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

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

在上述代码中,我们定义了三个自定义的标量类型:PhoneNumber、EmailAddress 和 URL。同时,我们还定义了 Query 和 User 两个对象类型,并在相应的 resolvers 中

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/109193


猜你喜欢

  • npm 包 @angular/compiler 使用教程

    1. 什么是 @angular/compiler? @angular/compiler 是一个 Angular 模板编译器的 npm 包,它的主要作用是将 Angular 应用程序的模板编译成渲染函数...

    5 年前
  • npm 包 @angular/common 使用教程

    前言 Angular 是一个非常流行的前端框架,其前端开发者使用了各种技术。在这些技术中,npm 是我们所熟知的一个包管理器。随着 Angular 的社区不断壮大,相应的 Angular npm 包也...

    5 年前
  • npm包@angular/cdk使用教程

    概述 Angular CDK(组件开发工具包)是一个用于构建通用用户界面组件的库。该工具包提供了一组可重用的组件,这些组件可以用于创建许多常见的用户界面模式。@angular/cdk包是Angular...

    5 年前
  • npm 包 @angular/animations 使用教程

    在 Angular 开发中,@angular/animations 是一个非常重要的包。它是一个用于创建动态动画的 JavaScript 库,并且可以被用于在 Angular 应用程序中添加各种动画效...

    5 年前
  • npm 包 @types/ioredis 使用教程

    在前端开发中,常常需要使用 Redis 数据库作为缓存或消息队列。而 ioredis 就是一个比较流行的 Redis 客户端。@types/ioredis 是一个 TypeScript 类型定义库,它...

    5 年前
  • npm 包 @acceleratxr/service_utilties 使用教程

    简介 @acceleratxr/service_utilities 是一个为前端开发提供基础服务的 npm 包。该包包含了常用的工具、组件、样式等资源,方便开发者快速开发、部署项目。

    5 年前
  • npm 包 node 使用教程

    随着互联网的快速发展,前端技术日益成熟,越来越多的开发者开始使用 npm 包来加速开发过程,提高应用程序的可维护性。本文将为大家详细介绍 npm 包的使用方法。 npm 的基本概述 npm(node...

    5 年前
  • npm包@types/color使用教程

    前言 在前端开发中,涉及到颜色处理的时候,我们一般会用到工具库color,它能够帮助我们实现颜色的解析、转换、计算等操作。不过,对于使用Typescript的开发者来说,在使用color的时候可能会遇...

    5 年前
  • npm 包 bind-decorator 使用教程

    简介 bind-decorator 是一个 npm 包,它为 JavaScript 中的类方法提供了绑定作用域的装饰器,它使用非常方便,可以大大简化代码。此外,由于本包是专为Node和其他JavaSc...

    5 年前
  • npm 包 @tlaukkan/tsm 使用教程

    如果你是一名前端开发者,那么你一定知道 npm 这个神奇的工具,npm 是 node.js 的包管理器,用于安装、管理和分享代码包或模块。而在大多数项目中,我们都会用到一些常用的库或框架,比如 Rea...

    5 年前
  • npm 包 @types/umzug 使用教程

    在前端开发中,我们常常使用 npm 来管理第三方库和工具。其中一个常用的工具是 umzug,它是一个强大的数据库迁移工具。在使用 umzug 的过程中,为了方便和安全,我们需要使用类型声明文件。

    5 年前
  • npm 包 @types/pg 使用教程

    在前端开发中,我们经常需要和数据库进行交互。而对于 Node.js 开发者来说,PostgreSQL 是一个非常流行的数据库选择。为了方便开发者在 TypeScript 中使用 PostgreSQL,...

    5 年前
  • npm 包 @types/bluebird-retry 使用教程

    在使用 JavaScript 编写前端应用时,经常需要处理异步操作,比如请求数据、动画效果等。处理异步操作时,我们经常需要使用 Promise,而 Bluebird 是一个非常优秀的 Promise ...

    5 年前
  • npm 包 @aaa-backend-stack/logger 使用教程

    简介 随着前端技术不断发展,越来越多的开发者开始使用 Node.js 来构建前端项目,而 npm 成为了 Node.js 最受欢迎的包管理工具之一。在前端项目中,日志记录是一个至关重要的任务,因为它可...

    5 年前
  • npm 包 @types/bluebird-global 使用教程

    什么是 @types/bluebird-global? 在前端开发中,经常需要在代码中使用 Promise 对象来处理异步操作。而 Bluebird 是一个非常流行的 Promise 库,它提供了许多...

    5 年前
  • npm 包 @8base/error-codes 使用教程

    介绍 @8base/error-codes 是一个错误代码库,用于构建 @8base/client-js 中发出的错误信息。它使错误公开可处理和文档化。 除了提供错误消息格式化和翻译等基本功能外,还支...

    5 年前
  • npm 包 @types/supertest 使用教程

    在前端开发中,我们经常需要使用到一些第三方库来提供各种功能支持。其中,supertest 是一个非常常用的 Node.js 模块,用于测试 HTTP 服务器的库。而 @types/supertest ...

    5 年前
  • npm 包 @types/superagent 使用教程

    什么是 @types/superagent? @types/superagent 是一个 npm 包,它提供了 SuperAgent 库的 TypeScript 类型定义。

    5 年前
  • NPM 包 @types/ramda 使用教程

    介绍 @types/ramda 是一个在 TypeScript 项目中使用 Ramda 库的类型定义包,它是一个非常有用的工具,可以大大提高我们在 TypeScript 中使用 Ramda 的效率。

    5 年前
  • npm 包 lightest 使用教程

    简介 lightest 是一个基于 Node.js 平台的轻量级测试框架,主要用于前端单元测试和集成测试。使用 lightest 可以方便地编写和运行测试用例,评估代码的质量,并帮助发现潜在的问题。

    5 年前

相关推荐

    暂无文章