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月13日