@bufbuilding/ cel (英语)
此软件包提供了 简历 eCMAScript评价员.
示例
让我们来评估一个 CEL 表达式的变量 name 并使用 strings 扩展函数 :
import { run } from "@bufbuild/cel";
import { strings } from "@bufbuild/cel/ext";
run(
`name.indexOf('taco') == 0`, // CEL expression to run
{ name: "tacocat" }, // Bind a value to the variable `name`
{ funcs: strings }, // Register `indexOf` and other string extensions
); // true
就这样!
以创建可重复使用的评价人及更多评价人为例,参见: 实例.ts。 。 。 .
类型
下表将JS类型映射为CEL类型.
Input栏是可传递给评估者作为输入值的任何值。 (CelInput(中文(简体) )CEL Type栏是运行时将代表的 CEL 类型。 (CelType(中文(简体) )Output栏是评估者返回的数值的类型,或者从eval或作为函数执行的参数。 ()CelValue(中文(简体) )
| 输入( JS 类型) | CEL 类型( 运行时间) | 输出( JS 类型) |
|---|---|---|
| 编号, {浮出水面, Double} 数值 | 双 | 编号 |
| bigint, 所有签名的收件夹 | 单位 | 二进制 |
| CelUint, 所有未签名的包装 | 宾特 | 塞卢特语Name |
| 字符串, 字符串数值 | 字符串 | 字符串 |
| Uint8 箭头, 字节Value | 字节 | Uint8 阵列 |
| 映射地图 | 地图 | 塞尔马普 |
| 任何[ ],反射列表 | 列表 | 凯尔利斯特语Name |
| 布尔,布尔瓦卢 | 嘘 | 布尔 |
| 无效 | 无效类型 | 无效 |
| 凯尔特语Name | 类型 | 凯尔特语Name |
| 时间戳, 反射 | 时间戳 | 反思 |
| 持续时间, 反射 | 会期 | 反思 |
| 信件, 反射消息, 任意 | 类型Name | 反思 |
| (原始内容存档于2017-10-29). google.protobuf. 价值和朋友 | 双/波尔/弦/列表/地图/null | 编号/布尔/字符串/CelList/CelMap |