@gabrielbryk/jq-ts

中文文档
1.7.0发布于 2026/07/02MITTypeScriptESM + CJS零依赖构建来源已验证近 30 天下载 5.2万

用于工作流程隔离的 jq 子集的决定性类型Script 执行

中文使用文档
文档目录8 节
  1. 特征
  2. 安装
  3. 使用量
  4. 建筑
  5. 文档
  6. 发展
  7. 捐款
  8. 许可证

q-ts

CI npm version license node engines

纯类型脚本执行 jq 查询语言. 为 V8 隔离系统安全(无节点.js内置,无文件系统/网络),使其与Temperal Workflows和其他沙盒运行时间相兼容.

特征

  • 解析器 校验器 解译管道中存在大量跨度错误.
  • 决定性评价:稳定对象密钥顺序;可配置步骤/深度/输出的限制;零运行时间依赖性.
  • 从不单独地触及主机时钟,文件系统,网络,或环境. 只有在注射时才有时间(options.now) (中文(简体) ).
  • 广泛的jq内建覆盖——类型/转换、收藏、字符串、数学、发电机、路径操作和可注射-小时日期套件(见 建筑) (中文(简体) ).
  • 高级语言特性 : reduce, (中文(简体) ), foreach, (中文(简体) ), try编号 :catch,递归后世(..),指定/更新运算符(=, (中文(简体) ), |=, (中文(简体) ), +=),并调整结构 as 装订.
  • 双重无害环境管理/CJS通过 tsdown 与 .d.ts 类型.

安装

npm install @gabrielbryk/jq-ts
# or: pnpm add @gabrielbryk/jq-ts

使用量

import { run } from '@gabrielbryk/jq-ts'

const [result] = run('.foo // "fallback"', { foo: null })
// result === "fallback"

run(source, input, options?) 返回一系列结果(jq过滤器产生零或多值)。 选项包括 limits,预定义 vars,以及 now数字 :

// Seed variables (without the `$` prefix):
run('.[] | . + $bump', [1, 2], { vars: { bump: 10 } }) // => [11, 12]

// `now` and date builtins require an injected instant (a Date or epoch seconds).
// Without it, `now` throws — jq-ts never reads the host clock itself.
run('now | todate', null, { now: 1_700_000_000 }) // => ["2023-11-14T22:13:20Z"]

建筑

代表(不是详尽无遗的)对已执行内容的看法;见 planning-docs/compatibility.md 用于完整的jq 1.8矩阵.

  • 类型转换( T)数字 : type, (中文(简体) ), tostring, (中文(简体) ), tonumber, (中文(简体) ), toboolean, (中文(简体) ), length, (中文(简体) ), not, (中文(简体) ), has, (中文(简体) ), in, (中文(简体) ), keys, (中文(简体) ), keys_unsorted,和类型过滤器(arrays, (中文(简体) ), objects, (中文(简体) ), booleans, (中文(简体) ), numbers, (中文(简体) ), strings, (中文(简体) ), nulls, (中文(简体) ), values, (中文(简体) ), iterables, (中文(简体) ), scalars, (中文(简体) ), finites, (中文(简体) ), normals) (中文(简体) ).
  • 收款数字 : map, (中文(简体) ), map_values, (中文(简体) ), select, (中文(简体) ), sort, (中文(简体) ), sort_by, (中文(简体) ), group_by, (中文(简体) ), unique, (中文(简体) ), unique_by, (中文(简体) ), reverse, (中文(简体) ), flatten, (中文(简体) ), add, (中文(简体) ), min编号 :max编号 :min_by编号 :max_by, (中文(简体) ), to_entries, (中文(简体) ), from_entries, (中文(简体) ), with_entries, (中文(简体) ), del, (中文(简体) ), pick, (中文(简体) ), transpose, (中文(简体) ), bsearch, (中文(简体) ), combinations, (中文(简体) ), contains, (中文(简体) ), inside。 。 。 .
  • 字符串数字 : split, (中文(简体) ), join, (中文(简体) ), startswith, (中文(简体) ), endswith, (中文(简体) ), ltrimstr编号 :rtrimstr编号 :trimstr, (中文(简体) ), trim编号 :ltrim编号 :rtrim, (中文(简体) ), ascii_downcase, (中文(简体) ), ascii_upcase, (中文(简体) ), explode, (中文(简体) ), implode, (中文(简体) ), index, (中文(简体) ), rindex, (中文(简体) ), indices, (中文(简体) ), utf8bytelength, (中文(简体) ), tojson, (中文(简体) ), fromjson。 。 。 .
  • 数学数字 : floor, (中文(简体) ), ceil, (中文(简体) ), round, (中文(简体) ), abs, (中文(简体) ), sqrt, (中文(简体) ), nan, (中文(简体) ), infinite, (中文(简体) ), isnan, (中文(简体) ), isinfinite, (中文(简体) ), isfinite, (中文(简体) ), isnormal。 。 。 .
  • 发电机和迭代数字 : range, (中文(简体) ), limit, (中文(简体) ), skip, (中文(简体) ), first, (中文(简体) ), last, (中文(简体) ), nth, (中文(简体) ), while, (中文(简体) ), until, (中文(简体) ), repeat, (中文(简体) ), recurse, (中文(简体) ), isempty, (中文(简体) ), all, (中文(简体) ), any, (中文(简体) ), empty。 。 。 .
  • 路径数字 : path, (中文(简体) ), paths, (中文(简体) ), getpath, (中文(简体) ), setpath, (中文(简体) ), delpaths。 。 。 .
  • 日期 (需要为 now: now, (中文(简体) ), gmtime, (中文(简体) ), localtime, (中文(简体) ), mktime, (中文(简体) ), strftime, (中文(简体) ), strflocaltime, (中文(简体) ), strptime, (中文(简体) ), todate编号 :todateiso8601, (中文(简体) ), fromdate编号 :fromdateiso8601。 。 。 .
  • 错误控制流量( C)数字 : error, (中文(简体) ), try编号 :catch, (中文(简体) ), if编号 :then编号 :elif编号 :else编号 :end, (中文(简体) ), reduce, (中文(简体) ), foreach内置 def, (中文(简体) ), as 分解结构,备选 //选择 ?。 。 。 .

文档

发展

git clone https://github.com/gabrielbryk/jq-ts.git
cd jq-ts
pnpm install
pnpm run build

密钥命令 :

  • pnpm run dev - 维特表
  • pnpm run test - 全套测试套件(包括jq集成;如果 jq 缺少)
  • pnpm run test:coverage ——覆盖检测
  • pnpm run lint ——ESLint公司
  • pnpm run format:write - 初步格式化
  • pnpm run build ——建设CJS/ESM+型号
  • pnpm run ci ——构建+格式检查+输出+林特+测试

捐款

见 捐款额我们遵循常规承诺,并要求 pnpm run ci ưμ㼯A 一般事务人员(其他职等)。 。 。 .

许可证

麻省理工学院

版本与发布记录

@gabrielbryk/jq-ts 共发布 13 个版本,首次发布于 2025/12/13;过去 12 个月发布了 13 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.7.0latest2026/07/024 个月前
1.6.02026/06/304 个月前
1.5.02026/06/204 个月前
1.4.02026/05/026 个月前
1.3.62025/12/2510 个月前
1.3.52025/12/2510 个月前

关于 @gabrielbryk/jq-ts 的常见问题

@gabrielbryk/jq-ts 是什么?

用于工作流程隔离的 jq 子集的决定性类型Script 执行

如何安装 @gabrielbryk/jq-ts?

在项目目录运行 npm install @gabrielbryk/jq-ts,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:typescript(^5.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@gabrielbryk/jq-ts 支持 TypeScript 吗?

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

@gabrielbryk/jq-ts 支持 ESM 还是 CommonJS?

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

@gabrielbryk/jq-ts 需要什么版本的 Node.js?

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

@gabrielbryk/jq-ts 可以商用吗?

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

@gabrielbryk/jq-ts 的下载量有多少?

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

@gabrielbryk/jq-ts 还在维护吗?

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