@bendyline/gezel-sdk (英语)
扩展表面用于 宝石 — 已输入 写出闸口脚本,检查和自定义商店的出入口.
这是新整合的首选面.
@bendyline/gezel-plugin-sdk
是历史的等同物,用于兼容性.
npm install @bendyline/gezel-sdk
import { defineScript, gezel } from '@bendyline/gezel-sdk';
export const meta = defineScript({
name: 'has-tests',
description: 'Require at least one test file.',
kind: 'gate',
outputs: {
decision: { type: 'string', description: "'approve' or 'reject'." },
},
requires: ['workspace.read'],
} as const);
const files = await gezel.fs.listAll();
gezel.output({
decision: files.some((file) => file.includes('.test.')) ? 'approve' : 'reject',
});
入境点
| 子路径 | 目录 |
|---|---|
@bendyline/gezel-sdk | 节点沙盒 gezel 上下文, defineScript,和脚本上下文类型 |
@bendyline/gezel-sdk/portable | createGezelSDK, (中文(简体) ), defineScript,以及平台独立上下文/运输类型 |
@bendyline/gezel-sdk/checks | 可重复使用的门检查原始文件 |
@bendyline/gezel-sdk/stores | 为自定义后端存储接口 |
针对此 SDK 编写的脚本由
守护进程脚本跑取器 。 见
@bendyline/gezel-script-stdlib
用于建在它的门脚本标准库.
嵌入式运行时间
没有节点的主机可以为通过可移植文件运行的每个脚本创建上下文 输入。 它没有节点的进口, stdin读取, 全球单通, 或平台全球:
import { createGezelSDK, type ScriptTransport } from '@bendyline/gezel-sdk/portable';
function createScriptContext(transport: ScriptTransport) {
return createGezelSDK(transport);
}
东道方用品 transport.init 执行脚本前,转发
call(method, params) 通过其经许可的调度员,交付
notify(method, params) 同步进行. 尚未满足的呼声必须拒绝
运行被取消或处理。 每个背景都允许 gezel.output() 邮票.
可选 log 回调镜像将日志信息切入运行时间特定的汇;
script.log 通知总是通过运输发送.
此边界向嵌入式解释器提供 SDK API; 主机仍然
负责隔离、内存和时限、能力检查和
翻译是一个同步的工作循环. 现有桌面脚本继续导入
gezel 从默认条目,该条目保留 stdin初始化, fd-3 RPC,
和斯德尔伐木.
稳定
公众API 在semver下.
麻省理工学院