@asbjorn/eslint-plugin-groq

中文文档
2.0.0发布于 2021/12/01MITCommonJS近 30 天下载 1870

GROQ 查询的 Eslint 插件

中文使用文档
文档目录6 节
  1. 所需资源
  2. 配置
  3. 使用 groq 其他图书馆
  4. 规则
  5. 无语法错误
  6. 无模板表达式

@asbjorn/eslint-plugin-groq (英语)

非正式 eslint 用于 加纳 查询.

npm install @asbjorn/eslint-plugin-groq

所需资源

此插件使用 groq 以识别 GROQ 标记的模板文字,默认情况下不会报告任何不使用此软件包的查询.

如果您使用 groq 从不同的图书馆,例如 @nuxtjs/sanity 或者说 next-sanity,见下文配置.

// Will not be linted:
const query = "*[_type == 'movies'][0..10]";

// Will be linted:
import groq from "groq";
const query = groq`*[_type == 'movies'][0..10]`;

// Will also be linted:
import anything from "groq";
const query = anything`*[_type == 'movies'][0..10]`;

配置

{
  "plugins": ["@asbjorn/groq"],
  "rules": {
    "@asbjorn/groq/no-syntax-errors": "error",
    "@asbjorn/groq/no-template-expressions": "error"
  }
}

或者说:

{
  "extends": ["plugin:@asbjorn/groq/recommended"]
}

使用 groq 其他图书馆

默认情况下,这些 eslint 规则只检查使用 GROQ 函数导出到 groq npm 软件包. 如果您使用不同库中的 GROQ, 例如 @nuxtjs/sanity 或者说 next-sanity,您可以通过一组包名来配置规则 :

{
  "plugins": ["@asbjorn/groq"],
  "rules": {
    "@asbjorn/groq/no-syntax-errors": [
      "error",
      { "groqs": ["@nuxtjs/sanity"] }
    ],
    "@asbjorn/groq/no-template-expressions": [
      "error",
      { "groqs": ["@nuxtjs/sanity"] }
    ]
  }
}

规则

无语法错误

报告 GROQ 查询中与导出函数标记的任何语法错误 groq。请注意,包含表达式的模板字元不会被擦去,因为解析表达式非常难以可靠地进行。 如果要特别安全,请结合 no-template-expressions 规则.

未结案

// Syntax error in tagged query
import groq from "groq";
groq`*[_type == { ]`;

// Syntax error (not imported as `groq`)
import hello from "groq";
hello`*[_type == { ]`;

通过案件

// Non-tagged query with syntax error
`*[_type == {]`;

// Valid, tagged query
import groq from "groq";
groq`*[_type == 'movie']`;

// Query with syntax error tagged with `groq` not imported from `"groq"`
import groq from "somewhere";
groq`*[_type == {]`;

// Query with syntax error and template expression
import groq from "groq";
groq`*[_${expression} == {]`;

无模板表达式

报告 GROQ 查询中与导出函数标记的任何表达式 groq。这一规则之所以存在,是因为 no-syntax-errors 规则对包含表达式的任何查询进行保释(见该规则的说明).

未结案

// Template expression
import groq from "groq";
groq`*[_type == ${type}]`;

// Template expression (not imported as 'groq')
import hello from "groq";
hello`*[_type == ${type}]`;

通过案件

// Tagged query without expressions
import groq from "groq";
groq`*[_type == 'movie']`;

// Non-tagged query with expression
`*[_type == ${type}]`;

// Query with expression tagged with `groq` not imported from `"groq"`
import groq from "somewhere";
groq`*[_type == ${type}]`;

版本与发布记录

@asbjorn/eslint-plugin-groq 共发布 5 个版本,首次发布于 2019/10/29;过去 12 个月发布了 0 个版本。

版本发布日期距今
2.0.0latest2021/12/014 年前
1.0.02020/10/146 年前
0.1.22019/10/297 年前
0.1.12019/10/297 年前
0.1.02019/10/297 年前

关于 @asbjorn/eslint-plugin-groq 的常见问题

@asbjorn/eslint-plugin-groq 是什么?

GROQ 查询的 Eslint 插件

如何安装 @asbjorn/eslint-plugin-groq?

在项目目录运行 npm install @asbjorn/eslint-plugin-groq,或使用 pnpm add / yarn add / bun add。

@asbjorn/eslint-plugin-groq 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/asbjorn__eslint-plugin-groq 是否存在。

@asbjorn/eslint-plugin-groq 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@asbjorn/eslint-plugin-groq 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=10.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@asbjorn/eslint-plugin-groq 可以商用吗?

@asbjorn/eslint-plugin-groq 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@asbjorn/eslint-plugin-groq 的下载量有多少?

根据 npm 官方下载统计,@asbjorn/eslint-plugin-groq 在 2026/10/07 – 2026/11/05 这 30 天内被下载 1,870 次,日均约 62 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@asbjorn/eslint-plugin-groq 还在维护吗?

最新版本 2.0.0 发布于 2021/12/01(4 年前);至今共发布 5 个版本,其中过去 12 个月发布了 0 个;首次发布于 2019/10/29。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。