浏览代码

fix(apis): sanitize property key from the plugin id

charlie 10 月之前
父节点
当前提交
ab6abef14d
共有 2 个文件被更改,包括 5 次插入4 次删除
  1. 1 1
      e2e-tests/logseq-api.spec.ts
  2. 4 3
      src/main/logseq/api.cljs

+ 1 - 1
e2e-tests/logseq-api.spec.ts

@@ -203,7 +203,7 @@ test('(DB graph): block related apis',
 
     expect(prop1).toEqual({ ':plugin.property/a': 'a', ':plugin.property/b': 'b' })
 
-    // properties schema
+    // properties entity & schema
     await callAPI('upsert_property', 'p1')
     prop1 = await callAPI('get_property', 'p1')
 

+ 4 - 3
src/main/logseq/api.cljs

@@ -86,7 +86,7 @@
   [k]
   (if (string? k)
     (-> k (string/trim)
-        (string/replace #"^\:+" "")
+        (string/replace #"^[:_]+" "")
         (string/lower-case))
     k))
 
@@ -889,7 +889,7 @@
 (defn -resolve-property-prefix-for-db
   [^js plugin]
   (when (some-> js/window.LSPlugin (.-PluginLocal) (instance? plugin))
-    (str (.-id plugin) ".")))
+    (some-> (.-id plugin) (sanitize-user-property-name) (str "."))))
 
 (defn -get-property
   [^js plugin k]
@@ -947,7 +947,8 @@
 (defn ^:export upsert_block_property
   [block-uuid keyname value]
   (this-as this
-    (p/let [block-uuid (sdk-utils/uuid-or-throw-error block-uuid)
+    (p/let [keyname (sanitize-user-property-name keyname)
+            block-uuid (sdk-utils/uuid-or-throw-error block-uuid)
             repo (state/get-current-repo)
             _ (db-async/<get-block repo block-uuid :children? false)
             db? (config/db-based-graph? repo)