@atlassianlabs/jql-ast

中文文档
2.1.0发布于 2023/07/12TypeScriptESM + CJS近 30 天下载 8861

JQL 抽象语法树

中文使用文档
文档目录9 节
  1. 目标
  2. 贾斯特不是
  3. 使用大小写
  4. 基本用途
  5. 安装
  6. 文档
  7. 财务问题
  8. 支助
  9. 许可证

JQL AST (英语)

Atlassian license

JQL抽象语法树(JAST)是一种json schema,用于代表已解析的JQL.

目标

  • 一个平台的Jast应该作为另一个平台的jast重新使用(Java QQ JS iOS)
  • 包含足够的信息, 以产生丰富的 JQL 编辑体验( 如语法突出显示)
  • 代表无效和部分形成的 JQL(并包含关于语法错误的详细资料)

贾斯特不是

  • 并不代表真实语法中出现的每一个细节,而只是结构或内容相关的细节(例如,树状结构中隐含了括号,所以它们不作为节点包含)
  • 不包含任何针对单个Jira实例的数据(除原JQL查询本身的字符串外). eg:对现有领域/用户/价值/操作者没有了解
  • 不应在Jast上进行语法验证(使用科技委进行)
  • 不应使用 Jast 自动填充建议(使用科技委进行)

使用大小写

  • 语法突出显示
  • 渲染错误

基本用途

要生成 AST 您需要您想要解析的 JQL 字符串和 a JastBuilder。 。 。 .

import { JastBuilder, Jast } from "@atlassianlabs/jql-ast";

const someJqlQuery = 'issuetype = bug';
const myJast: Jast = new JastBuilder().build(someJqlQuery);

安装

yarn add @atlassianlabs/jql-ast

文档

参见 文档 更多细节.

财务问题

为什么我们需要一个Abstact语法树(在免费的科技委员会之上)?

ANTR4 自动生成的解析器已经从 JQL 字符串中生成了混凝土语法树 。 这棵树比 为什么不能用它呢?

科技委员会并没有立即实现上述所有目标。 但还有其他的 需要提及的差异:

  • 生产出来的CST不是直接在我们控制之下,所以更新到ANTLR4语法执行只需要引起 更新到 AST 生成器, 不需要 UI 组件更新 .
  • 科技委员会本身不是可序列的,但我们可以发送一个预分解的AST,以便在不装入的情况下在SSSR中提早制取 全解析器和ANTR4 运行时间立即.
  • 由于我们控制了AST的创建,我们可以在逻辑上一致地进行转换,而不经过 再来一遍.
  • 我们可以对树进行合理的简化,例如把命令BY合并到一个终端节点而不是三个, 折叠非活动操作器等 .

支助

对于在Atlassian以外的开发者寻求帮助或报告问题, 请在社区论坛发表文章。 。 。 . 我们将监测这些论坛,并重新将专题分配给适当的维护者.

许可证

版权(c) 2021-2022 阿特拉斯人等. Apache 2.0 许可证,见 自由主义 文档.

版本与发布记录

@atlassianlabs/jql-ast 共发布 4 个版本,首次发布于 2021/12/10;过去 12 个月发布了 0 个版本。

版本发布日期距今
2.1.0latest2023/07/123 年前
2.0.02023/06/023 年前
1.0.02022/02/214 年前
0.0.12021/12/104 年前

关于 @atlassianlabs/jql-ast 的常见问题

@atlassianlabs/jql-ast 是什么?

JQL 抽象语法树

如何安装 @atlassianlabs/jql-ast?

在项目目录运行 npm install @atlassianlabs/jql-ast,或使用 pnpm add / yarn add / bun add。

@atlassianlabs/jql-ast 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@atlassianlabs/jql-ast 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@atlassianlabs/jql-ast 可以商用吗?

@atlassianlabs/jql-ast 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@atlassianlabs/jql-ast 的下载量有多少?

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

@atlassianlabs/jql-ast 还在维护吗?

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