npm 包 @cortexql/loader 使用教程

介绍

@cortexql/loader 是一个用于加载 CortexQL 文件的 npm 包。CortexQL 是一个用于编写 GraphQL schema 的领域特定语言 (DSL)。使用 @cortexql/loader 可以在 Node.js 中方便地加载 CortexQL 文件,并将其转化为一个 GraphQL schema 对象。

安装

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

使用

加载 CortexQL 文件

@cortexql/loader 提供了 loadSchema() 方法用于加载 CortexQL 文件。

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

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

上述代码会加载名为 schema.cql 的文件,并将其转化为一个 GraphQL schema 对象。注意,loadSchema() 方法接收的参数是一个基于 CWD(当前工作目录)的相对路径。

加载多个 CortexQL 文件

如果要加载多个 CortexQL 文件,可以使用 mergeSchemas() 方法。

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

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

上述代码会将名为 schema1.cqlschema2.cqlschema3.cql 的文件全部加载并合并成一个 GraphQL schema 对象。

使用指令扩展 GraphQL schema

CortexQL 支持使用指令扩展 GraphQL schema。例如,在 CortexQL 文件中使用以下指令可以在 schema 中增加一个类型和一个字段:

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

这里的 @isAuthenticated 就是一个指令,会在 schema 中增加一个名为 isAuthenticated 的自定义指令。如果要支持这种指令扩展,需要传入一个 directiveMap 参数:

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

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

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

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

上述代码会将 isAuthenticated 指令映射到一个自定义解析器函数中,该函数可以根据业务逻辑判断用户是否已认证,如果未认证,则抛出一个 Error 错误。

使用 resolver 扩展 GraphQL schema

除了使用指令外,CortexQL 还支持使用 resolver 扩展 GraphQL schema。例如,在 CortexQL 文件中可以定义以下字段:

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

这里的 currentUser 字段需要调用一个外部接口来获取用户信息,可以定义一个 resolver 函数来实现:

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

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

上述代码会将 Query 类型中的 currentUser 字段映射到一个自定义 resolver 函数中,该函数会调用外部接口返回用户信息。

总结

@cortexql/loader 可以方便地加载 CortexQL 文件,并将其转化为 GraphQL schema 对象。通过使用指令和 resolver,可以在 CortexQL 文件中扩展 GraphQL schema,并实现复杂业务逻辑。

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


猜你喜欢

  • npm 包 idna-normalize 使用教程

    什么是 idna-normalize? idna-normalize 是一个 npm 包,它可以将 Internationalized Domain Names (IDNs,国际化域名) 转换为 Pu...

    3 年前
  • npm 包 redux-form-pp 使用教程

    什么是 redux-form-pp redux-form-pp 是一个基于 react 和 redux 的表单管理库。它提供了一种简单的方法来管理表单的状态和提交流程。

    3 年前
  • npm包 check-seo使用教程

    在现代前端开发中,优化网站的SEO是至关重要的一步。check-seo是一个npm包,它可以帮助我们检查网站是否符合搜索引擎优化的标准。本文将介绍如何使用check-seo,帮助开发人员优化网站的SE...

    3 年前
  • npm 包 rollup-plugin-postcss-modules2 使用教程

    背景 在前端开发中,我们通常会使用一些 CSS 预处理器,如 SASS 或 LESS,并用 PostCSS 等工具来加强 CSS 的功能。同时,为了方便组件化开发,我们也需要支持 CSS Module...

    3 年前
  • npm 包 simple-webserver-for-travis 使用教程

    在前端开发中,我们经常需要将我们的代码部署到线上服务器上进行测试。而在使用 CI 工具 Travis CI 进行自动化测试的时候,我们就需要一个简单的服务器能够将我们的代码运行起来,以便 Travis...

    3 年前
  • npm 包 react-native-x5webviewcookie 使用教程

    随着移动端的发展,越来越多的应用需要使用 Webview 来展示网页内容。而很多网页都需要使用 cookie 来保存登录状态、购物车信息等。但是默认情况下,React Native 的 Webview...

    3 年前
  • npm 包 sendotp 使用教程

    本文将介绍 npm 包 sendotp 的使用方法,旨在帮助前端开发者快速掌握短信验证码发送功能的实现。同时也会讲解相关技术及其应用,以及一些开发实践中的注意事项。

    3 年前
  • npm 包 tint-web-component 使用教程

    介绍 tint-web-component 是一个 Vue.js 组件库,它提供了一系列可定制和可重用的 UI 组件,能够帮助开发人员快速构建 Web 设计。 安装 --- ------- -----...

    3 年前
  • npm 包 next-global-components 使用教程

    引言 在前端开发中,组件化开发是一种非常常见的模式。在实现过程中,我们通常需要借助某些第三方库来实现组件的复用和集成。 而在 node.js 生态系统中,npm 是最常用的包管理器,有着数以百万计的开...

    3 年前
  • npm 包 cordova-plugin-custombrowsertabs 使用教程

    简介 cordova-plugin-custombrowsertabs 是一个 Cordova 插件,用于在 Android 和 iOS 上启动和定制 Chrome 安全浏览器标签。

    3 年前
  • npm 包 @parthar/mem-store 使用教程

    什么是 @parthar/mem-store @parthar/mem-store 是一个轻量级的内存存储库,可用于前端项目中的状态管理。它提供了简单易用的 API 以及多种不同的状态更新方式。

    3 年前
  • npm 包 ares-react-native-basic-package 使用教程

    为了提高前端开发的效率,我们常常会使用许多工具和框架来帮助我们开发。npm 包是一个常见的工具之一,它提供一些可复用的代码,使我们能够更快更准确地开发我们的应用程序。

    3 年前
  • npm 包 eslint-config-info-center 使用教程

    介绍 在前端开发中,为了更好的团队协作,我们通常会使用 eslint 进行代码规范检查。而 eslint-config-info-center 就是一个开箱即用的 eslint 配置包,它包含了 In...

    3 年前
  • npm 包 ournet.web.data 使用教程

    在前端开发中,我们经常需要从后端获取数据来更新页面。而在处理数据时,数据格式化和数据处理是其中非常重要的部分。为此,npm 包 ournet.web.data 可以帮助我们处理各种类型的数据,使得数...

    3 年前
  • npm 包 ddv-util 使用教程

    在前端开发中,我们经常需要使用一些工具函数或工具类来简化我们的工作。在 Node.js 生态系统中,使用 npm 工具来安装和管理这些工具函数或工具类非常方便。其中一个很实用的 npm 包就是 ddv...

    3 年前
  • npm 包 es-mint-ui 使用教程

    前言 在前端开发中,使用现成的 UI 库可以大大提高开发效率。es-mint-ui 是一个基于 Vue.js 的组件库,提供了众多实用的组件,如按钮、表单、对话框、轮播图等等。

    3 年前
  • npm 包 flipkart-api-affiliate-client 使用教程

    如今,随着电子商务的不断发展和普及,越来越多的人开始关注和使用在线购物平台。Flipkart 作为印度最大的在线购物平台之一,受到了广大消费者和站长的亲睐和喜爱。而 flipkart-api-affi...

    3 年前
  • 使用npm包 g4.http.js

    在前端开发中,我们经常需要跟后端进行交互,这时候我们就需要用到http请求了,而g4.http.js这个npm包就是一个方便进行http请求的包。本文将会详细介绍这个npm包的使用方法、深度和学习以及...

    3 年前
  • npm 包 rebolt-navigation 使用教程

    介绍 reBolt-Navigation 是一款基于 React 的简单但功能强大的前端导航组件。它依赖于 React-Router 并具有丰富的导航选项。 在本文中,我们将介绍这个 npm 包的基础...

    3 年前
  • npm 包 cordova-plugin-app-store-version 使用教程

    在开发移动应用的过程中,了解应用在 App Store 上的版本号信息是非常重要的。而 cordova-plugin-app-store-version 是一个 NPM 包,可以让我们在 Cordov...

    3 年前

相关推荐

    暂无文章