修改变量 
replaceVariables 
完全替换变量表。
之所以提供这么直接的函数, 是因为前端助手内置了 lodash 库: insertOrAssignVariables 等函数其实就是先 getVariables 获取变量表,用 lodash 库处理,再 replaceVariables 替换变量表。
typescript
async function replaceVariables(variables: Record<string, any>, option: VariableOption = {}): Promise<void>参数 
variables 
要用于替换的变量表
type? 
'chat': 聊天变量表(默认值)'global': 全局变量表
示例 
typescript
// 执行前的聊天变量: `{爱城华恋: {好感度: 5}}`
await replaceVariables({神乐光: {好感度: 5, 认知度: 0}});
// 执行后的聊天变量: `{神乐光: {好感度: 5, 认知度: 0}}`typescript
// 执行前的聊天变量: `{神乐光: {好感度: 5}}`
let variables = await getVariables();
_.unset(variables, "神乐光.好感度");
await replaceVariables(variables);
// 执行后的聊天变量: `{神乐光: {}}`updateVariablesWith 
用函数更新变量表。
typescript
type VariablesUpdater =
  | ((variables: Record<string, any>) => Record<string, any>)
  | ((variables: Record<string, any>) => Promise<Record<string, any>>);
async function updateVariablesWith(updater: VariablesUpdater, option: VariableOption = {}): Promise<Record<string, any>>参数 
updater 
用于更新变量表的函数,接收变量表作为参数,返回更新后的变量表。
type? 
'chat': 聊天变量表(默认值)'global': 全局变量表
返回值 
- 更新后的变量表: 
Promise<Record<string, any>> 
示例 
typescript
// 执行前的聊天变量: `{神乐光: {好感度: 5}}`
await updateVariablesWith(variables => {_.unset(variables, "神乐光.好感度"); return variables;});
// 执行后的聊天变量: `{神乐光: {}}`typescript
// 更新 "爱城华恋.好感度" 为原来的 2 倍, 如果该变量不存在则设置为 0
await updateVariablesWith(variables => _.update(variables, "爱城华恋.好感度", value => value ? value * 2 : 0));insertOrAssignVariables 
插入或修改变量值,取决于变量是否存在。
typescript
async function insertOrAssignVariables(variables: Record<string, any>, option: VariableOption = {}): Promise<void> {
  await updateVariablesWith(old_variables => _.merge(old_variables, variables), option);
}参数 
variables 
要更新的变量:
- 如果变量不存在,则新增该变量
 - 如果变量已经存在,则修改该变量的值
 
type? 
'chat': 聊天变量表(默认值)'global': 全局变量表
示例 
typescript
// 执行前变量: `{爱城华恋: {好感度: 5}}`
await insertOrAssignVariables({爱城华恋: {好感度: 10}, 神乐光: {好感度: 5, 认知度: 0}});
// 执行后变量: `{爱城华恋: {好感度: 10}, 神乐光: {好感度: 5, 认知度: 0}}`insertVariables 
插入新变量, 如果变量已经存在则什么也不做。
typescript
async function insertVariables(variables: Record<string, any>, option: VariableOption = {}): Promise<void> {
  await updateVariablesWith(old_variables => _.defaultsDeep(old_variables, variables), option);
}参数 
variables 
要插入的变量:
- 如果变量不存在,则新增该变量
 - 如果变量已经存在,则什么也不做
 
type? 
'chat': 聊天变量表(默认值)'global': 全局变量表
示例 
typescript
// 执行前变量: `{爱城华恋: {好感度: 5}}`
await insertVariables({爱城华恋: {好感度: 10}, 神乐光: {好感度: 5, 认知度: 0}});
// 执行后变量: `{爱城华恋: {好感度: 5}, 神乐光: {好感度: 5, 认知度: 0}}`