速生应用文档中心

全局函数

set(nameOrObject, value)

设置数据存储中的值。可以接受一个对象来设置多个键值对,或者接受键和值来设置单个键值对。
参数:

  • nameOrObject: string | Object — 如果是字符串,表示要设置的键名;如果是对象,则包含要设置的多个键值对。
  • value: any (可选) — 如果 nameOrObject 是字符串,则此参数表示要设置的值。

返回:

示例:

set("myKey", "myValue"); set({ key1: "value1", key2: 123 });

get(name, defaultValue)

从数据存储中获取指定键的值。如果键不存在,则返回可选的默认值。
参数:

  • name: string — 要获取的键名。
  • defaultValue: any (可选) — 如果键不存在时返回的默认值。

返回:

  • any — 键对应的值或默认值。

示例:

const value = get("myKey", "defaultValue");

push(name, value)

将一个值追加到数据存储中指定键的数组中。如果指定键的值不是数组,则会抛出错误。
参数:

  • name: string — 要操作的数组的键名。
  • value: any — 要追加到数组中的值。

返回:

  • Array<any> — 追加后的数组。

示例:

set("myArray", [1, 2]); push("myArray", 3); // myArray 现在是 [1, 2, 3]

setContext(nameOrObject, value)

设置上下文数据中的值。可以接受一个对象来设置多个键值对,或者接受键和值来设置单个键值对。上下文数据通常用于在不同的脚本执行之间共享数据。
参数:

  • nameOrObject: string | Object — 如果是字符串,表示要设置的键名;如果是对象,则包含要设置的多个键值对。
  • value: any (可选) — 如果 nameOrObject 是字符串,则此参数表示要设置的值。

返回:

示例:

setContext("user", { id: 1, name: "Alice" }); setContext({ theme: "dark", lang: "en" });

getContext(name, defaultValue)

从上下文数据中获取指定键的值。如果键不存在,则返回可选的默认值。
参数:

  • name: string — 要获取的键名。
  • defaultValue: any (可选) — 如果键不存在时返回的默认值。

返回:

  • any — 键对应的值或默认值。

示例:

const user = getContext("user", null);

getContexts()

返回所有上下文数据。
参数:

返回:

  • Object — 包含所有上下文数据的对象。

示例:

const allContexts = getContexts(); console.log(allContexts.theme);

runActions(actionNames)

运行一个或多个自定义的动作。
参数:

  • actionNames: string | Array<string> — 要运行的动作的名称或名称数组。

返回:

示例:

runActions("action1"); runActions(["action2", "action3"]);

String (字符串)

string.trim(s)

移除字符串两端的空白字符 (包括空格、制表符、换行符等)。
参数:

  • s: string — 输入字符串。

返回:

  • string — 去除空白字符后的字符串。

示例:

string.trim(" hello world \n"); // 返回: "hello world"

string.trimCustom(s, cutset)

移除字符串两端指定字符集中的字符。
参数:

  • s: string — 输入字符串。
  • cutset: string — 包含要移除的字符的字符串。

返回:

  • string — 去除指定字符后的字符串。

示例:

string.trimCustom("---hello---", "-"); // 返回: "hello" string.trimCustom("abcxyzcba", "abc"); // 返回: "xyz"

string.trimPrefix(s, prefix)

如果字符串以指定前缀开头,则移除该前缀。
参数:

  • s: string — 输入字符串。
  • prefix: string — 要移除的前缀。

返回:

  • string — 移除前缀后的字符串。

示例:

string.trimPrefix("hello world", "hello "); // 返回: "world" string.trimPrefix("foo bar", "baz "); // 返回: "foo bar" (前缀不匹配,不移除)

string.trimSuffix(s, suffix)

如果字符串以指定后缀结尾,则移除该后缀。
参数:

  • s: string — 输入字符串。
  • suffix: string — 要移除的后缀。

返回:

  • string — 移除后缀后的字符串。

示例:

string.trimSuffix("hello world", " world"); // 返回: "hello" string.trimSuffix("foo bar", "baz"); // 返回: "foo bar" (后缀不匹配,不移除)

string.trimLeft(s, cutset)

移除字符串左侧指定字符集中的字符。
参数:

  • s: string — 输入字符串。
  • cutset: string — 包含要移除的字符的字符串。

返回:

  • string — 移除左侧指定字符后的字符串。

示例:

string.trimLeft("---hello", "-"); // 返回: "hello" string.trimLeft("abchello", "abc"); // 返回: "hello"

string.trimRight(s, cutset)

移除字符串右侧指定字符集中的字符。
参数:

  • s: string — 输入字符串。
  • cutset: string — 包含要移除的字符的字符串。

返回:

  • string — 移除右侧指定字符后的字符串。

示例:

string.trimRight("hello---", "-"); // 返回: "hello" string.trimRight("helloabc", "abc"); // 返回: "hello"

string.random(length, charset)

生成指定长度的随机字符串。
参数:

  • length: number — 字符串的长度 (整数)。
  • charset: string (可选) — 用于生成字符串的字符集。如果为空,则使用默认字符集 (字母和数字)。

返回:

  • string — 生成的随机字符串。

示例:

string.random(10); // 返回: "aBcD1eFgH2" (示例) string.random(5, "abc"); // 返回: "bacac" (示例)

string.fields(s)

将字符串按空白字符分割成字段数组。
参数:

  • s: string — 输入字符串。

返回:

  • Array<string> — 字段数组。

示例:

string.fields("hello world "); // 返回: ["hello", "world"]

string.builder()

创建并返回一个 strings.Builder 对象的 JavaScript 绑定,用于高效地构建字符串。
参数:

返回:

  • Objectstrings.Builder 的 JavaScript 绑定对象,包含以下方法:
    • WriteString(s: string): 写入字符串。
    • String(): 返回当前构建器中的字符串。
    • Len(): 返回当前构建器中字节的长度。
    • Cap(): 返回当前构建器中底层字节切片的容量。
    • Reset(): 重置构建器为空。

示例:

const builder = string.builder(); builder.WriteString("Hello"); builder.WriteString(" World"); console.log(builder.String()); // 输出: "Hello World" builder.Reset(); console.log(builder.Len()); // 输出: 0

Number (数字)

number.rand(min, max)

生成一个指定范围内的随机整数 (包含 minmax)。
参数:

  • min: number — 随机数的最小值 (整数)。
  • max: number — 随机数的最大值 (整数)。

返回:

  • number — 随机整数。

示例:

number.rand(1, 10); // 返回 1 到 10 之间的一个随机整数

Array (数组)

array.uniq(array)

去重一个数组中的元素。
参数:

  • array: Array<any> — 输入数组

返回:

  • Array<any> — 去重后的数组

示例:

array.uniq([1, 2, 2, 3, 1]); // 返回: [1, 2, 3]

array.mergeBy(callback, ...arrays)

合并多个数组,并根据回调函数生成的键进行去重和覆盖。如果多个数组中存在相同键的元素,则后面的数组中的元素会覆盖前面的。
参数:

  • callback: Function — 一个回调函数,接受一个数组项并返回一个用于合并的键。
  • ...arrays: Array<Object> — 一个或多个要合并的数组,每个数组应包含对象。

返回:

  • Array<Object> — 合并后的数组。

示例:

const arr1 = [{ id: 1, name: "A", value: 10 }, { id: 2, name: "B", value: 20 }]; const arr2 = [{ id: 2, name: "C", value: 30 }, { id: 3, name: "D", value: 40 }]; const merged = array.mergeBy(item => item.id, arr1, arr2); console.log(merged); /* **返回**: [ { id: 1, name: "A", value: 10 }, { id: 2, name: "C", value: 30 }, // id=2 的元素被 arr2 覆盖 { id: 3, name: "D", value: 40 } ] */

array.keyBy(array, callback)

将数组转换为一个对象,其中对象的键由回调函数生成。如果多个元素生成相同的键,则最后一个元素将覆盖前面的。
参数:

  • array: Array<any> — 输入数组 (可以是对象数组或原始值数组)。
  • callback: Function — 一个回调函数,接受一个数组项并返回一个用于作为对象键的字符串。

返回:

  • Object — 键控后的对象。

示例:

const users = [ { id: 1, name: "Alice", age: 30 }, { id: 2, name: "Bob", age: 25 }, { id: 3, name: "Charlie", age: 30 } ]; const usersById = array.keyBy(users, user => user.id); console.log(usersById); /* **返回**: { "1": { id: 1, name: "Alice", age: 30 }, "2": { id: 2, name: "Bob", age: 25 }, "3": { id: 3, name: "Charlie", age: 30 } } */

array.groupBy(array, callback)

根据回调函数生成的键将数组中的元素分组。
参数:

  • array: Array<any> — 输入数组 (可以是对象数组或原始值数组)。
  • callback: Function — 一个回调函数,接受一个数组项并返回一个用于分组的键。

返回:

  • Object — 分组后的对象,其中键是分组的键,值是包含对应元素的数组。

示例:

const users = [ { name: "Alice", age: 30 }, { name: "Bob", age: 25 }, { name: "Charlie", age: 30 } ]; const groupedByAge = array.groupBy(users, user => user.age); console.log(groupedByAge); /* **返回**: { "30": [ { name: "Alice", age: 30 }, { name: "Charlie", age: 30 } ], "25": [ { name: "Bob", age: 25 } ] } */

array.omit(obj, keys)

从对象中排除指定的键。返回一个新对象,不修改原对象。
参数:

  • obj: Object — 输入对象。
  • keys: Array<string> — 要排除的键的字符串数组。

返回:

  • Object — 排除键后的新对象。

示例:

const data = { name: "Alice", age: 30, city: "New York" }; array.omit(data, ["age", "city"]); // 返回: { name: "Alice" }

array.omitBy(obj, callback)

根据回调函数的结果从对象中排除键值对。返回一个新对象,不修改原对象。
参数:

  • obj: Object — 输入对象。
  • callback: Function — 一个回调函数,接受 (key, value) 作为参数并返回一个布尔值。如果回调函数返回 true,则该键值对将被排除。

返回:

  • Object — 排除键值对后的新对象。

示例:

const data = { a: 1, b: 2, c: 3, d: 4 }; const filteredData = array.omitBy(data, (key, value) => value % 2 === 0); console.log(filteredData); // 返回: { a: 1, c: 3 }

Object (对象)

obj.get(data, path, defaultValue)

根据点分隔的路径从嵌套对象中获取值。
参数:

  • data: Object — 输入对象。
  • path: string — 路径字符串 (例如 "a.b.c" 或 "items[0].name")。
  • defaultValue: any (可选) — 如果路径不存在时返回的默认值。

返回:

  • any — 路径对应的值或默认值。

示例:

const obj = { user: { profile: { name: "Alice", age: 30 } }, items: [{ id: 1, value: "A" }, { id: 2, value: "B" }] }; obj.get(obj, "user.profile.name"); // 返回: "Alice" obj.get(obj, "user.profile.gender", "未知"); // 返回: "未知" obj.get(obj, "items[0].value"); // 返回: "A"

Time (时间)

time.sleep(seconds)

暂停当前脚本的执行指定秒数。
参数:

  • seconds: number — 暂停的秒数 (整数)。

返回:

示例:

console.log("开始睡眠..."); time.sleep(2); // 暂停 2 秒 console.log("睡眠结束。");

time.unix()

返回当前时间的 Unix 时间戳 (自 1970 年 1 月 1 日 00:00:00 UTC 以来经过的秒数)。
参数:

返回:

  • number — Unix 时间戳 (秒)。

示例:

time.unix(); // 返回: 1678886400 (示例)

time.nanosecond

表示一个纳秒的时间单位常量。
类型:

  • number

示例:

const oneNanosecond = time.nanosecond; // 值为 1

time.microsecond

表示一个微秒的时间单位常量。
类型:

  • number

示例:

const oneMicrosecond = time.microsecond; // 值为 1000 (纳秒)

time.millisecond

表示一个毫秒的时间单位常量。
类型:

  • number

示例:

const oneMillisecond = time.millisecond; // 值为 1000000 (纳秒)

time.second

表示一个秒的时间单位常量。
类型:

  • number

示例:

const oneSecond = time.second; // 值为 1000000000 (纳秒)

time.minute

表示一个分钟的时间单位常量。
类型:

  • number

示例:

const oneMinute = time.minute; // 值为 60000000000 (纳秒)

time.hour

表示一个小时的时间单位常量。
类型:

  • number

示例:

const oneHour = time.hour; // 值为 3600000000000 (纳秒)

time.now()

返回当前的本地时间对象。
参数:

返回:

  • Date — JavaScript Date 对象。

示例:

const now = time.now(); console.log(now.getFullYear());

Date (日期)

date.parse(dateString)

解析日期时间字符串并返回 JavaScript Date 对象。
参数:

  • dateString: string — 要解析的日期时间字符串 (例如 "2023-01-01 10:30:00", "yesterday", "next monday")。

返回:

  • Date — 解析后的 JavaScript Date 对象。

示例:

date.parse("2023-01-01 10:30:00"); date.parse("now"); date.parse("tomorrow");

Hash (哈希)

hash.password(password, cost)

使用 bcrypt 算法对密码进行哈希。
参数:

  • password: string — 要哈希的密码。
  • cost: number (可选) — bcrypt 的成本参数,影响哈希计算的强度和时间。默认值为 bcrypt.DefaultCost (通常为 10)。

返回:

  • string — 哈希后的密码字符串。

示例:

hash.password("mysecretpassword"); // 返回: "$2a$10$..." (bcrypt 哈希字符串) hash.password("anotherpassword", 12); // 使用更高的成本

hash.md5(value)

计算字符串的 MD5 哈希值。
参数:

  • value: string — 输入字符串。

返回:

  • string — MD5 哈希值的十六进制字符串表示。

示例:

hash.md5("hello world"); // 返回: "5d41402abc4b2a76b9719d911017c592"

hash.sha1(value)

计算字符串的 SHA-1 哈希值。
参数:

  • value: string — 输入字符串。

返回:

  • string — SHA-1 哈希值的十六进制字符串表示。

示例:

hash.sha1("hello world"); // 返回: "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"

hash.sha256(value)

计算字符串的 SHA-256 哈希值。
参数:

  • value: string — 输入字符串。

返回:

  • string — SHA-256 哈希值的十六进制字符串表示。

示例:

hash.sha256("hello world"); // 返回: "b94d27b9934d03342ad57fe74e89f50dce26bc8e630800b65320f2f50aeed351"

hash.sha512(value)

计算字符串的 SHA-512 哈希值。
参数:

  • value: string — 输入字符串。

返回:

  • string — SHA-512 哈希值的十六进制字符串表示。

示例:

hash.sha512("hello world"); // 返回: "309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee511a7c7a9bcd3ca86d4cd86f989dd35bc5ff499670da34255b45b0cfd830e81f605bc69e4f01ad28c7f103b3"

Network (网络)

tld.parse(url)

解析 URL 并返回其顶级域名 (TLD) 信息。
参数:

  • url: string — 要解析的 URL 字符串。

返回:

  • Object — 包含 TLD 信息的对象,例如:
    • Host: string — 完整的主机名。
    • Subdomain: string — 子域名部分。
    • Domain: string — 域名部分。
    • TLD: string — 顶级域名部分。

示例:

const parsed = tld.parse("https://www.example.com/path"); console.log(parsed.Host); // "www.example.com" console.log(parsed.Domain); // "example" console.log(parsed.TLD); // "com"

Utility (实用工具)

util.validate(field, tag)

使用验证库验证字段。
参数:

  • field: any — 要验证的字段值。
  • tag: string — 验证标签字符串 (例如 "required,email", "min=10,max=100")。

返回:

  • Error | null — 如果验证失败返回一个错误对象,否则返回 null

示例:

util.validate("test@example.com", "email"); // 返回: null (如果有效) util.validate("", "required"); // 返回: Error (如果无效)

JSON (JSON 处理)

json.encode(value)

将 JavaScript 值编码为 JSON 字符串。
参数:

  • value: any — 要编码的 JavaScript 值 (对象、数组、字符串、数字、布尔值等)。

返回:

  • string — JSON 字符串。

示例:

json.encode({ name: "Alice", age: 30, isActive: true }); // 返回: '{"name":"Alice","age":30,"isActive":true}'

json.decode(jsonString)

将 JSON 字符串解码为 JavaScript 对象。
参数:

  • jsonString: string — 要解码的 JSON 字符串。

返回:

  • Object — 解码后的 JavaScript 对象。

示例:

json.decode('{"name": "Bob", "age": 25}'); // 返回: { name: "Bob", age: 25 }

Base64 (Base64 编码/解码)

base64.encode(value)

对字符串进行 Base64 编码。
参数:

  • value: string — 输入字符串。

返回:

  • string — Base64 编码后的字符串。

示例:

base64.encode("hello world"); // 返回: "aGVsbG8gd29ybGQ="

base64.decode(value)

对 Base64 编码的字符串进行解码。
参数:

  • value: string — Base64 编码的字符串。

返回:

  • string — 解码后的字符串。

示例:

base64.decode("aGVsbG8gd29ybGQ="); // 返回: "hello world"

UUID (通用唯一标识符)

uuid.new()

生成一个新的 UUID。
参数:

返回:

  • string — 新生成的 UUID 字符串

示例:

uuid.new(); // 返回: "a1b2c3d4-e5f6-7890-1234-567890abcdef" (示例 UUID)

uuid.validate(value)

检查给定的字符串是否是有效的 UUID。
参数:

  • value: string — 要验证的字符串

返回:

  • boolean — 如果是有效的 UUID 则返回 true,否则返回 false

示例:

uuid.validate("a1b2c3d4-e5f6-7890-1234-567890abcdef"); // 返回: true uuid.validate("invalid-uuid"); // 返回: false

Core (核心)

core.getPlugins()

获取所有注册的插件信息。
参数:

返回:

  • Object — 包含插件列表和逻辑属性的对象。
    • items: Array<Object> — 插件列表,每个对象包含:
      • id: string
      • title: string
      • description: string
      • withChildren: boolean
      • childrenTags: Array<string>
      • controls: Array<Object> — 插件的控制选项
    • logicProperties: Object — 逻辑属性。

示例:

const plugins = core.getPlugins(); console.log(plugins.items[0].title);

Crypto (加密)

crypto.executeX25519()

执行 X25519 密钥交换算法,生成一对新的私钥和公钥。
参数:

返回:

  • Object — 包含生成的密钥对的对象:
    • privateKey: string — 私钥的 Base64 编码字符串。
    • publicKey: string — 公钥的 Base64 编码字符串。

示例:

const keys = crypto.executeX25519(); console.log("私钥:", keys.privateKey); console.log("公钥:", keys.publicKey);

crypto.obscure(value)

使用 obscureutil 库对字符串进行混淆。这通常用于简单的数据保护,而不是强加密。
参数:

  • value: string — 要混淆的字符串。

返回:

  • string — 混淆后的字符串。

示例:

crypto.obscure("my_secret_data"); // 返回: "some_obscured_string_representation" (示例)

crypto.reveal(value)

使用 obscureutil 库对混淆后的字符串进行解密。
参数:

  • value: string — 要解密的混淆字符串。

返回:

  • string — 解密后的原始字符串。

示例:

const obscured = crypto.obscure("my_secret_data"); crypto.reveal(obscured); // 返回: "my_secret_data"

OS (操作系统)

os.name()

返回当前操作系统的名称。
参数:

返回:

  • string — 操作系统的名称 (例如 "linux", "darwin", "windows")。

示例:

os.name(); // 返回: "darwin" (macOS 示例)

os.arch()

返回当前操作系统的架构。
参数:

返回:

  • string — 操作系统架构 (例如 "amd64", "arm64")。

示例:

os.arch(); // 返回: "arm64" (示例)

os.version()

返回编译器运行时版本。
参数:

返回:

  • string — 编译器运行时版本 (例如 "go1.21.0")。

示例:

os.version(); // 返回: "go1.21.0" (示例)

os.hostname()

返回当前主机的标准主机名。
参数:

返回:

  • string — 主机名。

示例:

os.hostname(); // 返回: "My-MacBook-Pro.local" (示例)

os.getUid()

返回调用者的用户 ID。
参数:

返回:

  • number — 用户 ID。

示例:

os.getUid(); // 返回: 501 (示例)

os.getPid()

返回调用者的进程 ID。
参数:

返回:

  • number — 进程 ID。

示例:

os.getPid(); // 返回: 12345 (示例)

os.tempDir()

返回系统临时目录的路径。
参数:

返回:

  • string — 临时目录路径

示例:

os.tempDir(); // 返回: "/var/folders/..." (macOS 示例)

os.numCPU()

返回当前系统可用的 CPU 核心数。
参数:

返回:

  • number — CPU 核心数。

示例:

os.numCPU(); // 返回: 8 (示例)

os.executablePath()

返回当前可执行文件的完整路径。
参数:

返回:

  • string — 可执行文件的完整路径。

示例:

os.executablePath(); // 返回: "/usr/local/bin/my_app" (示例)

os.executableDir()

返回当前可执行文件所在的目录路径。
参数:

返回:

  • string — 可执行文件所在的目录路径。

示例:

os.executableDir(); // 返回: "/usr/local/bin" (示例)

目录