Skip to main content
JavaScript 覆写运行在 YumeBox 内置的 JavaScript 环境中.以下 API 是运行时提供的完整全局方法.

deepMerge(target, patch, isOverride)

deepMerge 会原地修改 target 并返回它. +keykey+ 只有在 isOverridetrue 时才作为数组修饰符.脚本建议始终传入 true.
deepMerge 示例.js
deepMerge 结果 diff.yaml
JavaScript 的 deepMerge 不会自动把 MATCH 规则移到末尾;需要该行为时,使用 YAML 的 rules-end,或在脚本中自行处理数组. 错误或无效用法:
deepMerge 无效类型.js
mixed-port 是标量,数组修饰符会尝试展开原值;如果原值是数字,通常会抛出不可迭代的类型错误.它不会把端口转换成列表.

yaml

yaml.parse(text)

将 YAML 文本转换为 JavaScript 值.它使用与 YAML 覆写相同的解析器,支持锚点、别名、<< 合并键和顶层 proxies 中的 reality-opts.short-id 字符串保护.
解析 YAML.js
解析 YAML 结果 diff.yaml
解析无效 YAML 会直接抛错:
解析错误 YAML.js

yaml.stringify(value)

将 JavaScript 值转换为 YAML 字符串.
生成 YAML.js
yaml.stringify 的结果是字符串,不能直接作为 main 的返回值;必须返回配置对象. 输出内容类似:

fetch(input, init)

内置 fetch 只支持 http://,不支持 https://.连接、读取和写入各有 15 秒超时.

请求参数

init 中的 urlmethodheadersbody 会覆盖 input 对象中的同名值.
HTTP 请求.js

响应对象

读取 JSON.js
错误预期:
不支持 HTTPS.js
脚本会失败,错误包含 fetch only supports http:// urls.网络连接失败、URL 为空或响应无法解析时也会停止脚本. 2xx 响应不会自动抛错,必须检查 response.ok
检查 HTTP 状态.js

console

日志写入当前覆写文件同目录、同主文件名的 .log 文件;每次执行该覆写前,旧日志会被重置. 多个参数会以空格连接;对象会序列化为 JSON.
日志 API.js
日志结果类似:
加密配置执行脚本时,日志中的配置值会替换为 (redacted, encrypted profile).

Base64

b64e(value)b64d(value)

b64e 将 UTF-8 文本编码为 Base64,b64d 将 Base64 解码为 UTF-8 文本.
Base64 API.js
预期结果:

Buffer

Buffer API.js
预期结果:
只支持 utf8utf-8base64.其他编码会抛出 Buffer.from() unsupported encodingBuffer.toString() unsupported encoding.
最后修改于 2026年8月14日