refactor: split document mindmap host runtime

This commit is contained in:
lix-2026
2026-05-26 01:03:04 +08:00
parent 77244eec7e
commit ee5aeb45be
5 changed files with 226 additions and 175 deletions
+5
View File
@@ -146,6 +146,10 @@ pub fn build_router(state: AppState) -> Router {
"/api/mnote-browser-runtime/document-pane-runtime.js",
get(web_shell::document_pane_runtime_asset),
)
.route(
"/api/mnote-browser-runtime/document-mindmap-host-runtime.js",
get(web_shell::document_mindmap_host_runtime_asset),
)
.route(
"/api/mnote-browser-runtime/document-slash-position-runtime.js",
get(web_shell::document_slash_position_runtime_asset),
@@ -572,6 +576,7 @@ mod tests {
"/api/mnote-browser-runtime/tree-shell-runtime.js",
"/api/mnote-browser-runtime/document-conflict-panel-runtime.js",
"/api/mnote-browser-runtime/document-pane-runtime.js",
"/api/mnote-browser-runtime/document-mindmap-host-runtime.js",
"/api/mnote-browser-runtime/document-slash-position-runtime.js",
"/api/mnote-browser-runtime/document-tiptap-conversion-runtime.js",
"/api/mnote-browser-runtime/document-editor-adapter-runtime.js",
+23 -3
View File
@@ -869,6 +869,20 @@ pub async fn document_pane_runtime_asset() -> Response {
.unwrap_or_else(|_| Response::new(Body::empty()))
}
pub async fn document_mindmap_host_runtime_asset() -> Response {
const JS: &str = include_str!("../../browser/document-mindmap-host-runtime.js");
Response::builder()
.status(StatusCode::OK)
.header(
header::CONTENT_TYPE,
"application/javascript; charset=utf-8",
)
.header(header::CACHE_CONTROL, "no-store")
.header(HEADER_MNOTE_WEB_OWNER, "mnote-web")
.body(Body::from(JS))
.unwrap_or_else(|_| Response::new(Body::empty()))
}
pub async fn document_slash_position_runtime_asset() -> Response {
const JS: &str = include_str!("../../browser/document-slash-position-runtime.js");
Response::builder()
@@ -1320,6 +1334,8 @@ mod tests {
const DOCUMENT_EDITOR_ADAPTER_RUNTIME_JS: &str =
include_str!("../../browser/document-editor-adapter-runtime.js");
const DOCUMENT_MINDMAP_HOST_RUNTIME_JS: &str =
include_str!("../../browser/document-mindmap-host-runtime.js");
const DOCUMENT_PANE_RUNTIME_JS: &str = include_str!("../../browser/document-pane-runtime.js");
const DOCUMENT_SLASH_POSITION_RUNTIME_JS: &str =
include_str!("../../browser/document-slash-position-runtime.js");
@@ -1607,9 +1623,10 @@ mod tests {
assert!(runtime.contains("openResourceInActiveTab"));
assert!(runtime.contains("/api/local-folder/resource/read"));
assert!(runtime.contains("/api/local-folder/resource/write"));
assert!(runtime.contains("replacePrimaryPaneMindmap"));
assert!(runtime.contains("__MNOTE_MINDMAP_EDITOR_BOOTSTRAP__"));
assert!(runtime.contains("data-mnote-object-identity"));
let mindmap_runtime = DOCUMENT_MINDMAP_HOST_RUNTIME_JS;
assert!(mindmap_runtime.contains("replacePrimaryPaneMindmap"));
assert!(mindmap_runtime.contains("__MNOTE_MINDMAP_EDITOR_BOOTSTRAP__"));
assert!(mindmap_runtime.contains("data-mnote-object-identity"));
assert!(runtime.contains("__MNOTE_DOCUMENT_PANES_BOOTSTRAP__"));
assert!(html.contains("__MNOTE_TREE_LIVE_BOOTSTRAP__"));
assert!(html.contains("mnote.tree_live_bootstrap.v1"));
@@ -2075,6 +2092,9 @@ mod tests {
assert!(DOCUMENT_EDITOR_ADAPTER_RUNTIME_JS.contains("PANES_BOOTSTRAP_ID"));
assert!(DOCUMENT_EDITOR_ADAPTER_RUNTIME_JS.contains("ROOT_SELECTOR"));
assert!(DOCUMENT_EDITOR_ADAPTER_RUNTIME_JS.contains("BRIDGE_PROTOCOL"));
assert!(DOCUMENT_EDITOR_ADAPTER_RUNTIME_JS.contains("document-mindmap-host-runtime.js"));
assert!(DOCUMENT_MINDMAP_HOST_RUNTIME_JS.contains("replacePrimaryPaneMindmap"));
assert!(DOCUMENT_MINDMAP_HOST_RUNTIME_JS.contains("openMindmapResourceTab"));
assert!(DOCUMENT_EDITOR_ADAPTER_RUNTIME_JS.contains("document-pane-runtime.js"));
assert!(DOCUMENT_PANE_RUNTIME_JS.contains("openDocumentInSecondaryPane"));
assert!(DOCUMENT_PANE_RUNTIME_JS.contains("buildPaneRuntime"));