From 79361035f4bdb17e1d641221fcc0c067033bb5f9 Mon Sep 17 00:00:00 2001
From: GideonSenku <gentlewind2391@gmail.com>
Date: Tue, 23 Jul 2024 15:38:07 +0800
Subject: [PATCH] =?UTF-8?q?fix(boxjs):=20=E4=BF=AE=E5=A4=8D=20/api/update?=
 =?UTF-8?q?=20=E4=B8=8D=E5=AD=98=E5=9C=A8=20key:val=20=E7=9A=84=E6=83=85?=
 =?UTF-8?q?=E5=86=B5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 box/chavy.boxjs.js              | 21 +++++++++++----------
 box/release/box.release.json    |  7 +++++++
 box/release/box.release.tf.json |  7 +++++++
 chavy.box.js                    | 21 +++++++++++----------
 4 files changed, 36 insertions(+), 20 deletions(-)

diff --git a/box/chavy.boxjs.js b/box/chavy.boxjs.js
index 38e88b20e..3e2a38f11 100644
--- a/box/chavy.boxjs.js
+++ b/box/chavy.boxjs.js
@@ -3,7 +3,7 @@ const $ = new Env('BoxJs')
 // 为 eval 准备的上下文环境
 const $eval_env = {}
 
-$.version = '0.19.9'
+$.version = '0.19.10'
 $.versionType = 'beta'
 
 // 发出的请求需要需要 Surge、QuanX 的 rewrite
@@ -714,15 +714,16 @@ async function apiUpdate() {
   const path = data.path.split('.')
   const val = data.val
   const key = path.shift()
-
-  switch (key) {
-    case 'usercfgs':
-      const usercfgs = getUserCfgs()
-      update(usercfgs, path.join('.'), val)
-      $.setjson(usercfgs, $.KEY_usercfgs)
-      break
-    default:
-      break
+  if (data.val && path.join('.')) {    
+    switch (key) {
+      case 'usercfgs':
+        const usercfgs = getUserCfgs()
+        update(usercfgs, path.join('.'), val)
+        $.setjson(usercfgs, $.KEY_usercfgs)
+        break
+      default:
+        break
+    }
   }
   $.json = getBoxData()
 }
diff --git a/box/release/box.release.json b/box/release/box.release.json
index fb0c54f6c..54378ed14 100644
--- a/box/release/box.release.json
+++ b/box/release/box.release.json
@@ -1,5 +1,12 @@
 {
   "releases": [
+    {
+      "version": "0.19.10",
+      "tags": ["beta"],
+      "author": "@GideonSenku",
+      "msg": "fix(boxjs): 修复 /api/update 进行局部数据更新",
+      "notes": ["修复不存在 key 和 val 的情况"]
+    },
     {
       "version": "0.19.9",
       "tags": ["beta"],
diff --git a/box/release/box.release.tf.json b/box/release/box.release.tf.json
index 3ed332c3c..482bf2a78 100644
--- a/box/release/box.release.tf.json
+++ b/box/release/box.release.tf.json
@@ -1,5 +1,12 @@
 {
   "releases": [
+    {
+      "version": "0.19.10",
+      "tags": ["beta"],
+      "author": "@GideonSenku",
+      "msg": "fix(boxjs): 修复 /api/update 进行局部数据更新",
+      "notes": ["修复不存在 key 和 val 的情况"]
+    },
     {
       "version": "0.19.7",
       "tags": ["beta"],
diff --git a/chavy.box.js b/chavy.box.js
index 38e88b20e..3e2a38f11 100644
--- a/chavy.box.js
+++ b/chavy.box.js
@@ -3,7 +3,7 @@ const $ = new Env('BoxJs')
 // 为 eval 准备的上下文环境
 const $eval_env = {}
 
-$.version = '0.19.9'
+$.version = '0.19.10'
 $.versionType = 'beta'
 
 // 发出的请求需要需要 Surge、QuanX 的 rewrite
@@ -714,15 +714,16 @@ async function apiUpdate() {
   const path = data.path.split('.')
   const val = data.val
   const key = path.shift()
-
-  switch (key) {
-    case 'usercfgs':
-      const usercfgs = getUserCfgs()
-      update(usercfgs, path.join('.'), val)
-      $.setjson(usercfgs, $.KEY_usercfgs)
-      break
-    default:
-      break
+  if (data.val && path.join('.')) {    
+    switch (key) {
+      case 'usercfgs':
+        const usercfgs = getUserCfgs()
+        update(usercfgs, path.join('.'), val)
+        $.setjson(usercfgs, $.KEY_usercfgs)
+        break
+      default:
+        break
+    }
   }
   $.json = getBoxData()
 }