deepMerge(target, patch, isOverride)
deepMerge 会原地修改 target 并返回它。
+key 和 key+ 只有在 isOverride 为 true 时才作为数组修饰符。脚本建议始终传入 true。
deepMerge 示例.js
deepMerge 结果 diff.yaml
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.js
yaml.stringify(value)
将 JavaScript 值转换为 YAML 字符串。
生成 YAML.js
yaml.stringify 的结果是字符串,不能直接作为 main 的返回值;必须返回配置对象。
输出内容类似:
fetch(input, init)
内置 fetch 只支持 http://,不支持 https://。连接、读取和写入各有 15 秒超时。
请求参数
init 中的 url、method、headers 和 body 会覆盖 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
utf8、utf-8 和 base64。其他编码会抛出 Buffer.from() unsupported encoding 或 Buffer.toString() unsupported encoding。