1
0
Эх сурвалжийг харах

fix: move missionary_util to deps/common, fix some deps issue

rcmerci 9 сар өмнө
parent
commit
26e2fad13d
29 өөрчлөгдсөн 88 нэмэгдсэн , 70 устгасан
  1. 0 2
      .carve/ignore
  2. 3 1
      deps/common/deps.edn
  3. 1 1
      deps/common/src/logseq/common/missionary.clj
  4. 14 12
      deps/common/src/logseq/common/missionary.cljs
  5. 6 13
      deps/db/src/logseq/db/frontend/entity_plus.cljc
  6. 15 0
      src/main/frontend/background_tasks.cljs
  7. 2 2
      src/main/frontend/components/header.cljs
  8. 4 4
      src/main/frontend/components/rtc/indicator.cljs
  9. 2 1
      src/main/frontend/core.cljs
  10. 1 1
      src/main/frontend/db/rtc/debug_ui.cljs
  11. 1 1
      src/main/frontend/extensions/fsrs.cljs
  12. 6 0
      src/main/frontend/flows.cljs
  13. 1 1
      src/main/frontend/handler/assets.cljs
  14. 1 1
      src/main/frontend/handler/db_based/rtc.cljs
  15. 2 2
      src/main/frontend/handler/db_based/rtc_flows.cljs
  16. 1 1
      src/main/frontend/handler/user.cljs
  17. 1 1
      src/main/frontend/worker/device.cljs
  18. 1 1
      src/main/frontend/worker/rtc/asset.cljs
  19. 1 1
      src/main/frontend/worker/rtc/client.cljs
  20. 1 1
      src/main/frontend/worker/rtc/client_op.cljs
  21. 1 1
      src/main/frontend/worker/rtc/core.cljs
  22. 1 1
      src/main/frontend/worker/rtc/full_upload_download_graph.cljs
  23. 2 2
      src/main/frontend/worker/rtc/log_and_state.cljs
  24. 1 1
      src/main/frontend/worker/rtc/ws.cljs
  25. 1 1
      src/rtc_e2e_test/client_steps.cljs
  26. 1 1
      src/rtc_e2e_test/fixture.cljs
  27. 2 2
      src/rtc_e2e_test/helper.cljs
  28. 1 1
      src/test/frontend/db/db_based_model_test.cljs
  29. 14 13
      src/test/frontend/test/helper.cljs

+ 0 - 2
.carve/ignore

@@ -86,5 +86,3 @@ frontend.worker.rtc.hash/hash-blocks
 frontend.rum/use-atom-in
 ;; missionary utils
 frontend.common.missionary-util/<!
-;; Not sure why carve said it's unused...
-frontend.flows/current-repo-flow

+ 3 - 1
deps/common/deps.edn

@@ -1,7 +1,9 @@
 {:paths ["src" "resources"]
  :deps {com.andrewmcveigh/cljs-time           {:git/url "https://github.com/logseq/cljs-time" ;; fork
                                                :sha     "5704fbf48d3478eedcf24d458c8964b3c2fd59a9"}
-        missionary/missionary                 {:mvn/version "b.39"}}
+        missionary/missionary                 {:mvn/version "b.39"}
+        org.clojure/core.async                {:mvn/version "1.6.673"}
+        funcool/promesa                       {:mvn/version "11.0.678"}}
  :aliases
  {:test {:extra-paths ["test"]
          :extra-deps  {olical/cljs-test-runner   {:mvn/version "3.8.0"}

+ 1 - 1
src/main/frontend/common/missionary_util.clj → deps/common/src/logseq/common/missionary.clj

@@ -1,4 +1,4 @@
-(ns frontend.common.missionary-util
+(ns logseq.common.missionary
   "Macros for missionary"
   (:require [missionary.core :as m]))
 

+ 14 - 12
src/main/frontend/common/missionary_util.cljs → deps/common/src/logseq/common/missionary.cljs

@@ -1,12 +1,10 @@
-(ns frontend.common.missionary-util
+(ns logseq.common.missionary
   "Utils based on missionary. Used by frontend and worker namespaces"
-  (:require-macros [frontend.common.missionary-util])
+  (:require-macros [logseq.common.missionary])
   (:require [cljs.core.async.impl.channels]
             [clojure.core.async :as a]
             [missionary.core :as m]
-            [promesa.protocols :as pt])
-  ;; (:import [missionary Cancelled])
-  )
+            [promesa.protocols :as pt]))
 
 (defn continue-flow
   "ensure f is a continuous flow"
@@ -95,16 +93,20 @@
 
 (defn run-background-task
   "Run task.
-  will cancel last same key background-task,
-  useful when developing (to avoid: reload cljs then run multiple same tasks)"
-  [key task]
-  (when-let [canceler (get @*background-task-cancelers key)]
+  Cancel last same key background-task if exists(to avoid: reload cljs then run multiple same tasks)"
+  [key' task]
+  (when-let [canceler (get @*background-task-cancelers key')]
     (canceler)
-    (vswap! *background-task-cancelers assoc key nil))
-  (let [canceler (run-task task key)]
-    (vswap! *background-task-cancelers assoc key canceler)
+    (vswap! *background-task-cancelers assoc key' nil))
+  (prn :run-background-task key')
+  (let [canceler (run-task task key')]
+    (vswap! *background-task-cancelers assoc key' canceler)
     nil))
 
+(defn background-task-running?
+  [key']
+  (contains? @*background-task-cancelers key'))
+
 (comment
   (defn >!
     "Return a task that

+ 6 - 13
deps/db/src/logseq/db/frontend/entity_plus.cljc

@@ -9,12 +9,10 @@
             [cljs.core]
             [datascript.core :as d]
             [datascript.impl.entity :as entity :refer [Entity]]
-            [frontend.common.missionary-util :as c.m]
-            [frontend.flows :as flows]
             [logseq.common.util.date-time :as date-time-util]
+            [logseq.common.missionary :as c.m]
             [logseq.db.frontend.entity-util :as entity-util]
-            [logseq.db.frontend.property :as db-property]
-            [missionary.core :as m]))
+            [logseq.db.frontend.property :as db-property]))
 
 (def immutable-db-idents
   "These db-ident entities are immutable,
@@ -49,18 +47,13 @@
   []
   (vreset! *seen-immutable-entities {}))
 
-(c.m/run-background-task
- ::reset-immutable-entities-cache!
- (m/reduce
-  (fn [_ repo]
-    (when (some? repo)
-      (prn :reset-immutable-entities-cache!)
-      (reset-immutable-entities-cache!)))
-  flows/current-repo-flow))
+(def ^:private *reset-cache-background-task-running?
+  (delay (c.m/background-task-running? :logseq.db.frontend.entity-plus/reset-immutable-entities-cache!)))
 
 (defn entity-memoized
   [db eid]
-  (if (and (qualified-keyword? eid)
+  (if (and @*reset-cache-background-task-running?
+           (qualified-keyword? eid)
            (contains? immutable-db-idents eid))
     (if-let [e (find @*seen-immutable-entities eid)]
       (val e)

+ 15 - 0
src/main/frontend/background_tasks.cljs

@@ -0,0 +1,15 @@
+(ns frontend.background-tasks
+  "Some background tasks"
+  (:require [frontend.flows :as flows]
+            [logseq.common.missionary :as c.m]
+            [logseq.db.frontend.entity-plus :as entity-plus]
+            [missionary.core :as m]))
+
+(c.m/run-background-task
+ :logseq.db.frontend.entity-plus/reset-immutable-entities-cache!
+ (m/reduce
+  (fn [_ repo]
+    (when (some? repo)
+      (prn :reset-immutable-entities-cache!)
+      (entity-plus/reset-immutable-entities-cache!)))
+  flows/current-repo-flow))

+ 2 - 2
src/main/frontend/components/header.cljs

@@ -4,13 +4,11 @@
             [cljs-time.core :as t]
             [clojure.string :as string]
             [dommy.core :as d]
-            [frontend.common.missionary-util :as c.m]
             [frontend.components.export :as export]
             [frontend.components.file-sync :as fs-sync]
             [frontend.components.page-menu :as page-menu]
             [frontend.components.plugins :as plugins]
             [frontend.components.right-sidebar :as sidebar]
-            [frontend.handler.db-based.rtc-flows :as rtc-flows]
             [frontend.components.rtc.indicator :as rtc-indicator]
             [frontend.components.server :as server]
             [frontend.components.settings :as settings]
@@ -19,6 +17,7 @@
             [frontend.context.i18n :refer [t]]
             [frontend.db :as db]
             [frontend.handler :as handler]
+            [frontend.handler.db-based.rtc-flows :as rtc-flows]
             [frontend.handler.page :as page-handler]
             [frontend.handler.plugin :as plugin-handler]
             [frontend.handler.route :as route-handler]
@@ -29,6 +28,7 @@
             [frontend.ui :as ui]
             [frontend.util :as util]
             [frontend.version :refer [version]]
+            [logseq.common.missionary :as c.m]
             [logseq.db :as ldb]
             [logseq.shui.ui :as shui]
             [logseq.shui.util :as shui-util]

+ 4 - 4
src/main/frontend/components/rtc/indicator.cljs

@@ -1,16 +1,16 @@
 (ns frontend.components.rtc.indicator
   "RTC state indicator"
   (:require [cljs-time.core :as t]
-            [frontend.common.missionary-util :as c.m]
+            [clojure.pprint :as pprint]
+            [frontend.db :as db]
             [frontend.handler.db-based.rtc-flows :as rtc-flows]
             [frontend.state :as state]
             [frontend.ui :as ui]
             [frontend.util :as util]
+            [logseq.common.missionary :as c.m]
             [logseq.shui.ui :as shui]
             [missionary.core :as m]
-            [rum.core :as rum]
-            [clojure.pprint :as pprint]
-            [frontend.db :as db]))
+            [rum.core :as rum]))
 
 (comment
   (def rtc-state-schema

+ 2 - 1
src/main/frontend/core.cljs

@@ -1,7 +1,8 @@
 (ns frontend.core
   "Entry ns for the mobile, browser and electron frontend apps"
   {:dev/always true}
-  (:require [frontend.common-keywords]
+  (:require [frontend.background-tasks]
+            [frontend.common-keywords]
             [frontend.common.schema-register :as sr]
             [frontend.components.plugins :as plugins]
             [frontend.config :as config]

+ 1 - 1
src/main/frontend/db/rtc/debug_ui.cljs

@@ -1,7 +1,6 @@
 (ns frontend.db.rtc.debug-ui
   "Debug UI for rtc module"
   (:require [fipp.edn :as fipp]
-            [frontend.common.missionary-util :as c.m]
             [frontend.db :as db]
             [frontend.handler.db-based.rtc-flows :as rtc-flows]
             [frontend.handler.user :as user]
@@ -9,6 +8,7 @@
             [frontend.state :as state]
             [frontend.ui :as ui]
             [frontend.util :as util]
+            [logseq.common.missionary :as c.m]
             [logseq.db :as ldb]
             [logseq.shui.ui :as shui]
             [missionary.core :as m]

+ 1 - 1
src/main/frontend/extensions/fsrs.cljs

@@ -1,7 +1,6 @@
 (ns frontend.extensions.fsrs
   "Flashcards functions based on FSRS, only works in db-based graphs"
   (:require [clojure.string :as string]
-            [frontend.common.missionary-util :as c.m]
             [frontend.components.block :as component-block]
             [frontend.config :as config]
             [frontend.context.i18n :refer [t]]
@@ -17,6 +16,7 @@
             [frontend.state :as state]
             [frontend.ui :as ui]
             [frontend.util :as util]
+            [logseq.common.missionary :as c.m]
             [logseq.db :as ldb]
             [logseq.db.frontend.entity-plus :as entity-plus]
             [logseq.shui.ui :as shui]

+ 6 - 0
src/main/frontend/flows.cljs

@@ -2,8 +2,14 @@
   "This ns contains some event flows."
   (:require [missionary.core :as m]))
 
+;; Some Input Atoms
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
 (def *current-repo (atom nil))
 
+;; Public Flows
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
 (def current-repo-flow
   "Like get-current-repo."
   (m/eduction

+ 1 - 1
src/main/frontend/handler/assets.cljs

@@ -1,7 +1,6 @@
 (ns ^:no-doc frontend.handler.assets
   (:require [cljs-http-missionary.client :as http]
             [clojure.string :as string]
-            [frontend.common.missionary-util :as c.m]
             [frontend.config :as config]
             [frontend.fs :as fs]
             [frontend.fs.nfs :as nfs]
@@ -9,6 +8,7 @@
             [frontend.state :as state]
             [frontend.util :as util]
             [logseq.common.config :as common-config]
+            [logseq.common.missionary :as c.m]
             [logseq.common.path :as path]
             [logseq.common.util :as common-util]
             [medley.core :as medley]

+ 1 - 1
src/main/frontend/handler/db_based/rtc.cljs

@@ -1,13 +1,13 @@
 (ns frontend.handler.db-based.rtc
   "RTC handler"
   (:require [cljs-time.core :as t]
-            [frontend.common.missionary-util :as c.m]
             [frontend.config :as config]
             [frontend.db :as db]
             [frontend.handler.db-based.rtc-flows :as rtc-flows]
             [frontend.handler.notification :as notification]
             [frontend.handler.user :as user-handler]
             [frontend.state :as state]
+            [logseq.common.missionary :as c.m]
             [logseq.common.util :as common-util]
             [logseq.db :as ldb]
             [logseq.db.sqlite.common-db :as sqlite-common-db]

+ 2 - 2
src/main/frontend/handler/db_based/rtc_flows.cljs

@@ -1,7 +1,7 @@
 (ns frontend.handler.db-based.rtc-flows
   "Flows related to RTC"
-  (:require [frontend.common.missionary-util :as c.m]
-            [frontend.state :as state]
+  (:require [frontend.state :as state]
+            [logseq.common.missionary :as c.m]
             [logseq.common.util :as common-util]
             [missionary.core :as m]))
 

+ 1 - 1
src/main/frontend/handler/user.cljs

@@ -6,7 +6,7 @@
             [cljs-time.core :as t]
             [cljs.core.async :as async :refer [<! go]]
             [clojure.string :as string]
-            [frontend.common.missionary-util :as c.m]
+            [logseq.common.missionary :as c.m]
             [frontend.config :as config]
             [frontend.debug :as debug]
             [frontend.handler.config :as config-handler]

+ 1 - 1
src/main/frontend/worker/device.cljs

@@ -4,12 +4,12 @@
             [cljs-time.coerce :as tc]
             [cljs-time.core :as t]
             [clojure.string :as string]
-            [frontend.common.missionary-util :as c.m]
             [frontend.worker.crypt :as crypt]
             [frontend.worker.rtc.client-op :as client-op]
             [frontend.worker.rtc.ws-util :as ws-util]
             [frontend.worker.state :as worker-state]
             [goog.crypt.base64 :as base64]
+            [logseq.common.missionary :as c.m]
             [logseq.db :as ldb]
             [missionary.core :as m]
             [promesa.core :as p]))

+ 1 - 1
src/main/frontend/worker/rtc/asset.cljs

@@ -7,11 +7,11 @@
     indicates need to upload the asset to server"
   (:require [clojure.set :as set]
             [datascript.core :as d]
-            [frontend.common.missionary-util :as c.m]
             [frontend.worker.rtc.client-op :as client-op]
             [frontend.worker.rtc.log-and-state :as rtc-log-and-state]
             [frontend.worker.rtc.ws-util :as ws-util]
             [frontend.worker.state :as worker-state]
+            [logseq.common.missionary :as c.m]
             [logseq.common.path :as path]
             [logseq.db :as ldb]
             [malli.core :as ma]

+ 1 - 1
src/main/frontend/worker/rtc/client.cljs

@@ -2,7 +2,6 @@
   "Fns about push local updates"
   (:require [clojure.string :as string]
             [datascript.core :as d]
-            [frontend.common.missionary-util :as c.m]
             [frontend.worker.rtc.client-op :as client-op]
             [frontend.worker.rtc.const :as rtc-const]
             [frontend.worker.rtc.exception :as r.ex]
@@ -11,6 +10,7 @@
             [frontend.worker.rtc.skeleton :as r.skeleton]
             [frontend.worker.rtc.ws :as ws]
             [frontend.worker.rtc.ws-util :as ws-util]
+            [logseq.common.missionary :as c.m]
             [missionary.core :as m]))
 
 (defn- register-graph-updates

+ 1 - 1
src/main/frontend/worker/rtc/client_op.cljs

@@ -1,9 +1,9 @@
 (ns frontend.worker.rtc.client-op
   "Store client-ops in a persisted datascript"
   (:require [datascript.core :as d]
-            [frontend.common.missionary-util :as c.m]
             [frontend.worker.rtc.const :as rtc-const]
             [frontend.worker.state :as worker-state]
+            [logseq.common.missionary :as c.m]
             [logseq.db.sqlite.util :as sqlite-util]
             [malli.core :as ma]
             [malli.transform :as mt]

+ 1 - 1
src/main/frontend/worker/rtc/core.cljs

@@ -2,7 +2,6 @@
   "Main(use missionary) ns for rtc related fns"
   (:require [clojure.data :as data]
             [datascript.core :as d]
-            [frontend.common.missionary-util :as c.m]
             [frontend.worker.device :as worker-device]
             [frontend.worker.rtc.asset :as r.asset]
             [frontend.worker.rtc.client :as r.client]
@@ -17,6 +16,7 @@
             [frontend.worker.state :as worker-state]
             [frontend.worker.util :as worker-util]
             [logseq.common.config :as common-config]
+            [logseq.common.missionary :as c.m]
             [logseq.db :as ldb]
             [malli.core :as ma]
             [missionary.core :as m])

+ 1 - 1
src/main/frontend/worker/rtc/full_upload_download_graph.cljs

@@ -4,7 +4,6 @@
   (:require [cljs-http-missionary.client :as http]
             [clojure.set :as set]
             [datascript.core :as d]
-            [frontend.common.missionary-util :as c.m]
             [frontend.worker.crypt :as crypt]
             [frontend.worker.db-listener :as db-listener]
             [frontend.worker.rtc.client-op :as client-op]
@@ -13,6 +12,7 @@
             [frontend.worker.rtc.ws-util :as ws-util]
             [frontend.worker.state :as worker-state]
             [frontend.worker.util :as worker-util]
+            [logseq.common.missionary :as c.m]
             [logseq.db :as ldb]
             [logseq.db.frontend.malli-schema :as db-malli-schema]
             [logseq.db.frontend.schema :as db-schema]

+ 2 - 2
src/main/frontend/worker/rtc/log_and_state.cljs

@@ -1,8 +1,8 @@
 (ns frontend.worker.rtc.log-and-state
   "Fns to generate rtc related logs"
-  (:require [frontend.common.missionary-util :as c.m]
-            [frontend.common.schema-register :as sr]
+  (:require [frontend.common.schema-register :as sr]
             [frontend.worker.util :as worker-util]
+            [logseq.common.missionary :as c.m]
             [malli.core :as ma]
             [missionary.core :as m]))
 

+ 1 - 1
src/main/frontend/worker/rtc/ws.cljs

@@ -3,9 +3,9 @@
   based on
   https://github.com/ReilySiegel/missionary-websocket/blob/master/src/com/reilysiegel/missionary/websocket.cljs"
   (:require [cljs-http-missionary.client :as http]
-            [frontend.common.missionary-util :as c.m]
             [frontend.worker.rtc.const :as rtc-const]
             [frontend.worker.rtc.exception :as r.ex]
+            [logseq.common.missionary :as c.m]
             [missionary.core :as m]))
 
 (defn- get-state

+ 1 - 1
src/rtc_e2e_test/client_steps.cljs

@@ -2,10 +2,10 @@
   (:require [cljs.test :as t :refer [is]]
             [const]
             [datascript.core :as d]
-            [frontend.common.missionary-util :as c.m]
             [frontend.worker.rtc.client-op :as client-op]
             [frontend.worker.rtc.core :as rtc-core]
             [helper]
+            [logseq.common.missionary :as c.m]
             [logseq.db :as ldb]
             [missionary.core :as m]))
 

+ 1 - 1
src/rtc_e2e_test/fixture.cljs

@@ -3,11 +3,11 @@
             [const]
             [datascript.core :as d]
             [example]
-            [frontend.common.missionary-util :as c.m]
             [frontend.worker.rtc.client-op :as client-op]
             [frontend.worker.rtc.db-listener]
             [frontend.worker.state :as worker-state]
             [helper]
+            [logseq.common.missionary :as c.m]
             [missionary.core :as m]))
 
 (def install-some-consts

+ 2 - 2
src/rtc_e2e_test/helper.cljs

@@ -1,13 +1,13 @@
 (ns helper
   (:require [cljs.test :as t :refer [is]]
-            [datascript.transit :as dt]
             [const]
             [datascript.core :as d]
-            [frontend.common.missionary-util :as c.m]
+            [datascript.transit :as dt]
             [frontend.worker.rtc.client-op :as client-op]
             [frontend.worker.rtc.core :as rtc.core]
             [frontend.worker.rtc.log-and-state :as rtc-log-and-state]
             [frontend.worker.state :as worker-state]
+            [logseq.common.missionary :as c.m]
             [logseq.db :as ldb]
             [logseq.db.frontend.order :as db-order]
             [logseq.outliner.batch-tx :as batch-tx]

+ 1 - 1
src/test/frontend/db/db_based_model_test.cljs

@@ -23,7 +23,7 @@
 
 (use-fixtures :each start-and-destroy-db)
 
-(deftest get-all-classes-test
+(deftest ^:xxx get-all-classes-test
   (let [opts {:redirect? false :create-first-block? false :class? true}
         _ (test-helper/create-page! "class1" opts)
         _ (test-helper/create-page! "class2" opts)]

+ 14 - 13
src/test/frontend/test/helper.cljs

@@ -1,23 +1,24 @@
 (ns frontend.test.helper
   "Common helper fns for tests"
-  (:require [frontend.handler.file-based.repo :as file-repo-handler]
-            [frontend.state :as state]
-            [frontend.db.conn :as conn]
-            [clojure.string :as string]
-            [logseq.db.sqlite.util :as sqlite-util]
-            [frontend.db :as db]
-            [frontend.handler.editor :as editor-handler]
-            [frontend.handler.db-based.page :as db-page-handler]
+  (:require [clojure.string :as string]
             [datascript.core :as d]
-            [logseq.graph-parser.text :as text]
-            [logseq.db.sqlite.create-graph :as sqlite-create-graph]
+            [frontend.background-tasks]
             [frontend.config :as config]
+            [frontend.db :as db]
+            [frontend.db.conn :as conn]
+            [frontend.handler.db-based.page :as db-page-handler]
+            [frontend.handler.editor :as editor-handler]
+            [frontend.handler.file-based.repo :as file-repo-handler]
+            [frontend.handler.file-based.status :as status]
+            [frontend.state :as state]
+            [frontend.worker.handler.page :as worker-page]
             [frontend.worker.pipeline :as worker-pipeline]
             [logseq.db.frontend.order :as db-order]
             [logseq.db.sqlite.build :as sqlite-build]
-            [frontend.handler.file-based.status :as status]
-            [logseq.outliner.db-pipeline :as db-pipeline]
-            [frontend.worker.handler.page :as worker-page]))
+            [logseq.db.sqlite.create-graph :as sqlite-create-graph]
+            [logseq.db.sqlite.util :as sqlite-util]
+            [logseq.graph-parser.text :as text]
+            [logseq.outliner.db-pipeline :as db-pipeline]))
 
 (def node? (exists? js/process))