npm包@apollographql/graphql-language-service-types使用教程

介绍

@apollographql/graphql-language-service-types是一个Apollo GraphQL的语言服务类型包。这个包适用于编写类似于graphql-language-service这样的插件,以便使用这些插件来提高IDE的GraphQL支持水平。

本文将介绍如何使用@apollographql/graphql-language-service-types,以便为GraphQL编写语言服务插件。

安装

可以在npm仓库中使用以下命令来安装@apollographql/graphql-language-service-types

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

使用

@apollographql/graphql-language-service-types导出了许多用于语言服务插件的类型和接口。在本节中,我们将介绍一些核心接口以及如何使用它们。

Diagnostic接口

该接口描述了一个语法或语义错误的严重级别。该接口使用了TypeScript的枚举类型,枚举名称遵循语义化版本控制规范

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

DiagnosticRelatedInformation接口

该接口描述了与某个诊断消息相关的更详细的信息。例如,如果有一条错误消息,DiagnosticRelatedInformation可以用于指定应该如何解决该错误。

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

DiagnosticWithLocation接口

该接口描述了拥有关联位置的诊断消息。这个接口将DiagnosticDiagnosticRelatedInformation组合在一起,以生成一个包含错误消息和源代码位置的对象。

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

SourceLocation接口

该接口描述在GraphQL源代码中的位置。该接口具有linecolumn两个属性。

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

示例代码

下面是一个简单的GraphQL插件,可将包含特定字符(“TODO”)的查询字符串标记为警告。

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

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

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

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

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

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

结论

@apollographql/graphql-language-service-types是一个神奇的npm包,提供了非常有用的接口和类型,可用于创建Apollo GraphQL的语言服务插件。虽然本篇文章仅介绍了几个核心接口,但读者可以使用这些接口作为构建企业级语言服务插件的入门。

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


猜你喜欢

  • 使用 npm 包 `ethereum-public-key-to-address` 生成以太坊地址

    简介 以太坊是一个开源的区块链平台,其中的交易需要用公钥和私钥进行数字签名。而以太坊地址则是通过公钥生成的。在开发以太坊 DApp 时,我们通常需要生成以太坊地址,这就需要用到所谓的 ethereum...

    4 年前
  • npm 包 @jedwards1211/commitlint-config 使用教程

    前言 在使用 Git 进行团队开发时,良好的代码提交规范能够在代码迭代、项目交接、问题排查等方面带来巨大的便利和效率提升。而 commitlint 正是一款能够帮助我们实现代码提交规范化的工具。

    4 年前
  • npm 包 @jedwards1211/eslint-config 使用教程

    简介 在前端开发中,保持代码规范和可读性是非常重要的,这不仅有助于提高团队合作效率,也有助于后期维护修改。ESLint 是一个常用的代码规范检查工具,在开发中可以设置检查规则来确保代码质量。

    4 年前
  • npm包@jedwards1211/eslint-config-flow使用教程

    导读 在前端开发中,我们经常使用ESLint来避免代码风格上的错误和避免一些无法预期的错误。本文将介绍一个名为@jedwards1211/eslint-config-flow的 npm 包,它是ESL...

    4 年前
  • npm 包 @types/zrender 使用教程

    在前端领域,很多项目需要用到可视化方案,而在这些方案中,图形库扮演着非常重要的角色。而作为此类库的一员,zrender 引领了许多令人瞩目的可视化方案,而 @types/zrender 这个 npm ...

    4 年前
  • npm 包 webpack-watch-time-plugin 使用教程

    前言 在 JavaScript 开发中,我们使用 webpack 工具进行打包,其提供了 watch 模式来自动检测代码改动并进行打包。但是在项目中,我们常常需要知道每次打包耗费的时间,以便优化打包效...

    4 年前
  • npm 包 typescript-template-language-service-decorator 使用教程

    在前端开发过程中,我们经常遇到需要处理模板语言的需求。而 TypeScript 是一个强类型的语言,支持静态类型检查、代码提示等功能,因此在处理模板语言时也需要利用 TypeScript 的优势。

    4 年前
  • npm 包 vscode-css-languageservice 使用教程

    在前端开发中,很多人都使用 Visual Studio Code 进行开发。它是一个集代码编辑、调试和版本控制于一体的跨平台 IDE,支持丰富的插件扩展。本文将介绍一个名为 vscode-css-la...

    4 年前
  • npm 包 @emmetio/extract-abbreviation 使用教程

    前言: 在前端开发中,我们经常遇到需要编写大量的 HTML 和 CSS 代码的情况。而在编写这些代码时,我们会用到大量的缩写语法。如果您想节省时间和精力,并且在编写代码时不犯错误,那么您一定需要使用 ...

    4 年前
  • npm 包 vscode-emmet-helper 使用教程

    简介 vscode-emmet-helper 是一个针对 Visual Studio Code 编辑器的 npm 包,它提供了 Emmet 缩写的代码帮助,能够显著提高前端开发的效率。

    4 年前
  • npm 包 styled-is 使用教程

    在前端开发过程中,我们常常需要针对不同的条件,给 DOM 元素加上不同的样式。比如说,在屏幕宽度小于某个值的情况下,我们想要给一个元素添加一个隐藏的 class。这时,我们就需要使用一些工具来帮助我们...

    4 年前
  • npm 包 apr-for-each 使用教程

    介绍 apr-for-each 是一个基于 async/await 的 JavaScript 库,能够将使用传统 for 循环的操作转换为使用 forEach 的异步操作。

    4 年前
  • npm 包 apr-main 使用教程

    APR (Apache Portable Runtime) 是 Apache 软件基础架构的一部分,新的 Apache 服务器中基本上整个 HTTP 服务都是基于 APR 构建的。

    4 年前
  • npm 包 apr-engine-sum 使用教程

    什么是 apr-engine-sum? apr-engine-sum 是一个用于计算数据和的 npm 包。它可以快速计算一组数据的和,而且支持多种数据类型,如数字、字符串和数组。

    4 年前
  • npm 包 apr-engine-until 使用教程

    前言 在前端开发中,我们经常需要使用各种工具和库来提高开发效率。npm 命令行是一种非常流行的包管理工具,提供了大量的包可以供我们使用。其中,apr-engine-until 是一款非常实用的工具包,...

    4 年前
  • npm 包 build-array 使用教程

    npm 包是前端开发中不可或缺的工具,而 build-array 更是帮助我们快速生成数组的实用工具。本文将分以下几段详细介绍 build-array 的使用方法,提供有深度的学习和指导意义。

    4 年前
  • npm 包 apr-engine-iterator 使用教程

    在前端开发中,往往需要对一组数据进行迭代处理,以便进行显示或者处理。但是进行手动的迭代处理往往繁琐而且容易引起错误。这时候,npm 包 apr-engine-iterator 就能够帮助我们轻松解决这...

    4 年前
  • npm 包 apr-engine-run 使用教程

    前言 在前端开发中,我们经常会使用一些第三方库来加快我们开发的速度。通常,我们使用 npm 来管理这些库和工具包。在这篇文章中,我将要介绍一个名为 apr-engine-run 的 npm 包,它可以...

    4 年前
  • npm 包 apr-engine-each 使用教程

    前言 apr-engine-each 是一个适用于前端开发的 npm 包,它可以对集合中的每个元素进行类似于 forEach 的处理。但不同的是,apr-engine-each 在处理时可以返回一个 ...

    4 年前
  • npm 包 apr-reduce 使用教程

    在前端开发中,使用 JavaScript 进行数据处理是非常常见的。如果遇到数据集较大的情况,可能会出现性能问题。这时候可以使用 apr-reduce 这个 npm 包来提高数据处理效率。

    4 年前

相关推荐

    暂无文章