fix: add shadow-cljs.edn for publish worker

This commit is contained in:
Tienson Qin
2025-12-28 14:28:44 +08:00
parent e9c2269e34
commit d4d8b1a7e6
11 changed files with 149 additions and 43 deletions

View File

@@ -30,7 +30,6 @@
expound/expound {:mvn/version "0.8.6"}
com.lambdaisland/glogi {:git/url "https://github.com/lambdaisland/glogi"
:git/sha "30328a045141717aadbbb693465aed55f0904976"}
binaryage/devtools {:mvn/version "1.0.5"}
camel-snake-kebab/camel-snake-kebab {:mvn/version "0.4.3"}
instaparse/instaparse {:mvn/version "1.4.10"}
org.clojars.mmb90/cljs-cache {:mvn/version "0.1.4"}
@@ -38,7 +37,6 @@
logseq/common {:local/root "deps/common"}
logseq/graph-parser {:local/root "deps/graph-parser"}
logseq/outliner {:local/root "deps/outliner"}
logseq/publish {:local/root "deps/publish"}
logseq/publishing {:local/root "deps/publishing"}
logseq/cli {:local/root "deps/cli"}
logseq/shui {:local/root "deps/shui"}
@@ -57,9 +55,9 @@
:extra-deps {org.clojure/tools.namespace {:mvn/version "0.2.11"}
cider/cider-nrepl {:mvn/version "0.55.1"}
org.clojars.knubie/cljs-run-test {:mvn/version "1.0.1"}
tortue/spy {:mvn/version "2.14.0"}}
tortue/spy {:mvn/version "2.14.0"}
binaryage/devtools {:mvn/version "1.0.5"}}
:main-opts ["-m" "shadow.cljs.devtools.cli"]}
:test {:extra-paths ["src/test/"]
:extra-deps {org.clojure/test.check {:mvn/version "1.1.1"}
pjstadig/humane-test-output {:mvn/version "0.11.0"}

View File

@@ -53,25 +53,21 @@
[]
(vreset! *seen-immutable-entities {}))
(def ^:private *reset-cache-background-task-running?
;; missionary is not compatible with nbb, so entity-memoized is disabled in nbb
(delay
;; FIXME: Correct dependency ordering instead of resolve workaround
#?(:org.babashka/nbb false
:cljs (when-let [f (resolve 'frontend.common.missionary/background-task-running?)]
(f :logseq.db.common.entity-plus/reset-immutable-entities-cache!)))))
(defonce *reset-cache-background-task-running-f (atom nil))
(defn entity-memoized
[db eid]
(if (and (qualified-keyword? eid) (not (exists? js/process))) ; don't memoize on node
(when-not (contains? nil-db-ident-entities eid) ;fast return nil
(if (and @*reset-cache-background-task-running?
(contains? immutable-db-ident-entities eid)) ;return cache entity if possible which isn't nil
(or (get @*seen-immutable-entities eid)
(let [r (d/entity db eid)]
(when r (vswap! *seen-immutable-entities assoc eid r))
r))
(d/entity db eid)))
(let [f @*reset-cache-background-task-running-f]
(if (and (fn? f)
(f :logseq.db.common.entity-plus/reset-immutable-entities-cache!)
(contains? immutable-db-ident-entities eid)) ;return cache entity if possible which isn't nil
(or (get @*seen-immutable-entities eid)
(let [r (d/entity db eid)]
(when r (vswap! *seen-immutable-entities assoc eid r))
r))
(d/entity db eid))))
(d/entity db eid)))
(defn unsafe->Entity

22
deps/publish/deps.edn vendored
View File

@@ -1,6 +1,24 @@
{:deps
{}
{org.clojure/clojure {:mvn/version "1.11.1"}
rum/rum {:git/url "https://github.com/logseq/rum" ;; fork
:sha "5d672bf84ed944414b9f61eeb83808ead7be9127"}
datascript/datascript {:git/url "https://github.com/logseq/datascript" ;; fork
:sha "ff5a7d5326e2546f40146e4a489343f557519bc3"}
datascript-transit/datascript-transit {:mvn/version "0.3.0"}
funcool/promesa {:mvn/version "11.0.678"}
thheller/shadow-cljs {:mvn/version "3.3.4"}
logseq/common {:local/root "../common"}
logseq/graph-parser {:local/root "../graph-parser"}
logseq/db {:local/root "../db"}
missionary/missionary {:mvn/version "b.46"}
com.cognitect/transit-cljs {:mvn/version "0.8.280"}}
:aliases
{:clj-kondo
{:cljs {:extra-deps {org.clojure/tools.namespace {:mvn/version "0.2.11"}
cider/cider-nrepl {:mvn/version "0.55.1"}
org.clojars.knubie/cljs-run-test {:mvn/version "1.0.1"}
tortue/spy {:mvn/version "2.14.0"}}
:main-opts ["-m" "shadow.cljs.devtools.cli"]}
:clj-kondo
{:replace-deps {clj-kondo/clj-kondo {:mvn/version "2024.09.27"}}
:main-opts ["-m" "clj-kondo.main"]}}}

View File

@@ -1,5 +1,12 @@
{
"name": "@logseq/publish",
"version": "1.0.0",
"private": true
"private": true,
"scripts": {
"watch": "clojure -M:cljs watch publish-worker",
"release": "clojure -M:cljs release publish-worker"
},
"dependencies": {
"shadow-cljs": "^3.3.4"
}
}

12
deps/publish/shadow-cljs.edn vendored Normal file
View File

@@ -0,0 +1,12 @@
;; shadow-cljs configuration
{:deps true
:http {:port 9631}
:nrepl {:port 8702}
:builds
{:publish-worker {:target :esm
:output-dir "worker/dist/worker"
:modules {:main {:exports {default logseq.publish.worker/worker
PublishMetaDO logseq.publish.worker/PublishMetaDO}}}
:js-options {:js-provider :import}
:closure-defines {shadow.cljs.devtools.client.env/enabled false}
:devtools {:enabled false}}}}

View File

@@ -291,15 +291,11 @@
(def ref-regex
(js/RegExp. "\\[\\[([0-9a-fA-F-]{36})\\]\\]|\\(\\(([0-9a-fA-F-]{36})\\)\\)" "g"))
(defonce inline-configs
{:markdown (gp-mldoc/default-config :markdown)
:org (gp-mldoc/default-config :org)})
(defonce inline-config
(gp-mldoc/default-config :markdown))
(defn inline-config [format]
(get inline-configs format (:markdown inline-configs)))
(defn inline-ast [text format]
(gp-mldoc/inline->edn text (inline-config format)))
(defn inline-ast [text]
(gp-mldoc/inline->edn text inline-config))
(defn content->nodes [content uuid->title graph-uuid]
(let [s (or content "")
@@ -396,9 +392,9 @@
(:block/title block)
(:block/name block)
"")
format (keyword (or (:block/format block) :markdown))
format :markdown
ctx (assoc ctx :format format)
ast (inline-ast raw format)
ast (inline-ast raw)
content (if (seq ast)
(inline->nodes-seq ctx ast)
(content->nodes raw (:uuid->title ctx) (:graph-uuid ctx)))]
@@ -406,9 +402,7 @@
(defn block-content-from-ref [ref ctx]
(let [raw (or (get ref "source_block_content") "")
format (keyword (or (get ref "source_block_format") "markdown"))
ctx (assoc ctx :format format)
ast (inline-ast raw format)
ast (inline-ast raw)
content (if (seq ast)
(inline->nodes-seq ctx ast)
(content->nodes raw (:uuid->title ctx) (:graph-uuid ctx)))]

View File

@@ -1,6 +1,7 @@
name = "logseq-publish"
main = "dist/worker/main.js"
compatibility_date = "2025-02-04"
compatibility_flags = ["nodejs_compat"]
# Workers Logs
# Docs: https://developers.cloudflare.com/workers/observability/logs/workers-logs/

84
deps/publish/yarn.lock vendored Normal file
View File

@@ -0,0 +1,84 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
base64-js@^1.3.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
buffer-from@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
buffer@^6.0.3:
version "6.0.3"
resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6"
integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==
dependencies:
base64-js "^1.3.1"
ieee754 "^1.2.1"
ieee754@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
isexe@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/isexe/-/isexe-3.1.1.tgz#4a407e2bd78ddfb14bea0c27c6f7072dde775f0d"
integrity sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==
process@^0.11.10:
version "0.11.10"
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==
readline-sync@^1.4.10:
version "1.4.10"
resolved "https://registry.yarnpkg.com/readline-sync/-/readline-sync-1.4.10.tgz#41df7fbb4b6312d673011594145705bf56d8873b"
integrity sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==
shadow-cljs-jar@1.3.4:
version "1.3.4"
resolved "https://registry.yarnpkg.com/shadow-cljs-jar/-/shadow-cljs-jar-1.3.4.tgz#0939d91c468b4bc5eab5a958f79e7ef5696fdf62"
integrity sha512-cZB2pzVXBnhpJ6PQdsjO+j/MksR28mv4QD/hP/2y1fsIa9Z9RutYgh3N34FZ8Ktl4puAXaIGlct+gMCJ5BmwmA==
shadow-cljs@^3.3.4:
version "3.3.4"
resolved "https://registry.yarnpkg.com/shadow-cljs/-/shadow-cljs-3.3.4.tgz#d1593c1ad4eee1ed34f57aa68cdfc5caaf5696d9"
integrity sha512-xZV+Ek5TeQtqcY++Otpto5DW+gXu/znIJjtTZjhfQl1yYxnfQNSyC2pS9/XoI3kmmQza3oY5WA0b45gS7W7W5g==
dependencies:
buffer "^6.0.3"
process "^0.11.10"
readline-sync "^1.4.10"
shadow-cljs-jar "1.3.4"
source-map-support "^0.5.21"
which "^5.0.0"
ws "^8.18.1"
source-map-support@^0.5.21:
version "0.5.21"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
dependencies:
buffer-from "^1.0.0"
source-map "^0.6.0"
source-map@^0.6.0:
version "0.6.1"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
which@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/which/-/which-5.0.0.tgz#d93f2d93f79834d4363c7d0c23e00d07c466c8d6"
integrity sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==
dependencies:
isexe "^3.1.1"
ws@^8.18.1:
version "8.18.3"
resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.3.tgz#b56b88abffde62791c639170400c93dcb0c95472"
integrity sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==

View File

@@ -86,7 +86,7 @@
"cljs:mobile-watch": "clojure -M:cljs watch mobile db-worker --config-merge \"{:output-dir \\\"./static/mobile/js\\\" :asset-path \\\"/static/mobile/js\\\" :release {:asset-path \\\"http://localhost\\\"}}\"",
"cljs:release-mobile": "clojure -M:cljs release mobile db-worker --config-merge \"{:output-dir \\\"./static/mobile/js\\\" :asset-path \\\"/static/mobile/js\\\" :release {:asset-path \\\"http://localhost\\\"}}\"",
"cljs:dev-watch": "clojure -M:cljs watch app db-worker inference-worker electron mobile",
"cljs:app-watch": "clojure -M:cljs watch app db-worker inference-worker publish-worker",
"cljs:app-watch": "clojure -M:cljs watch app db-worker inference-worker",
"cljs:electron-watch": "clojure -M:cljs watch app db-worker inference-worker electron --config-merge \"{:asset-path \\\"./js\\\"}\"",
"cljs:release": "clojure -M:cljs release app db-worker inference-worker publishing electron",
"cljs:release-electron": "clojure -M:cljs release app db-worker inference-worker electron --debug && clojure -M:cljs release publishing",

View File

@@ -217,11 +217,4 @@
:entries [logseq.shui.storybook]
:output-dir "packages/ui/.storybook/cljs"
:devtools {:enabled true}
:compiler-options {:optimizations :simple}}
:publish-worker {:target :esm
:output-dir "deps/publish/worker/dist/worker"
:modules {:main {:exports {default logseq.publish.worker/worker
PublishMetaDO logseq.publish.worker/PublishMetaDO}}}
:js-options {:js-provider :import}
:devtools {:enabled false}}}}
:compiler-options {:optimizations :simple}}}}

View File

@@ -4,6 +4,7 @@
(:require [cljs.core.async.impl.channels]
[clojure.core.async :as a]
[lambdaisland.glogi :as log]
[logseq.db.common.entity-plus :as entity-plus]
[missionary.core :as m]
[promesa.protocols :as pt])
(:import [missionary Cancelled]))
@@ -158,6 +159,8 @@
[key']
(contains? @*background-task-cancelers key'))
(reset! entity-plus/*reset-cache-background-task-running-f background-task-running?)
(comment
(defn >!
"Return a task that