fix: export CommitOptions & JsonSchema (#389)

This commit is contained in:
Leon Zhao 2024-06-20 16:52:36 +08:00 committed by GitHub
parent 2940029b63
commit fb028f861d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 8 additions and 9 deletions

View file

@ -615,17 +615,16 @@ impl TreeHandler {
} }
// TODO: iterator // TODO: iterator
pub fn children(&self, parent: Option<TreeID>) -> Vec<TreeID> { pub fn children(&self, parent: Option<TreeID>) -> Option<Vec<TreeID>> {
match &self.inner { match &self.inner {
MaybeDetached::Detached(t) => { MaybeDetached::Detached(t) => {
let t = t.try_lock().unwrap(); let t = t.try_lock().unwrap();
t.value.get_children(parent).unwrap() t.value.get_children(parent)
} }
MaybeDetached::Attached(a) => a.with_state(|state| { MaybeDetached::Attached(a) => a.with_state(|state| {
let a = state.as_tree_state().unwrap(); let a = state.as_tree_state().unwrap();
a.get_children(&TreeParentId::from(parent)) a.get_children(&TreeParentId::from(parent))
.unwrap() .map(|x| x.collect())
.collect()
}), }),
} }
} }
@ -696,7 +695,7 @@ impl TreeHandler {
} }
pub fn roots(&self) -> Vec<TreeID> { pub fn roots(&self) -> Vec<TreeID> {
self.children(None) self.children(None).unwrap_or_default()
} }
#[allow(non_snake_case)] #[allow(non_snake_case)]

View file

@ -2939,7 +2939,7 @@ impl LoroTreeNode {
/// the WASM boundary. /// the WASM boundary.
#[wasm_bindgen(skip_typescript)] #[wasm_bindgen(skip_typescript)]
pub fn children(&self) -> Array { pub fn children(&self) -> Array {
let children = self.tree.children(Some(self.id)); let children = self.tree.children(Some(self.id)).unwrap_or_default();
let children = children.into_iter().map(|c| { let children = children.into_iter().map(|c| {
let node = LoroTreeNode::from_tree(c, self.tree.clone(), self.doc.clone()); let node = LoroTreeNode::from_tree(c, self.tree.clone(), self.doc.clone());
JsValue::from(node) JsValue::from(node)

View file

@ -11,9 +11,7 @@ use loro_internal::cursor::Side;
use loro_internal::encoding::ImportBlobMetadata; use loro_internal::encoding::ImportBlobMetadata;
use loro_internal::handler::HandlerTrait; use loro_internal::handler::HandlerTrait;
use loro_internal::handler::ValueOrHandler; use loro_internal::handler::ValueOrHandler;
use loro_internal::loro::CommitOptions;
use loro_internal::undo::{OnPop, OnPush}; use loro_internal::undo::{OnPop, OnPush};
use loro_internal::JsonSchema;
use loro_internal::LoroDoc as InnerLoroDoc; use loro_internal::LoroDoc as InnerLoroDoc;
use loro_internal::OpLog; use loro_internal::OpLog;
@ -40,10 +38,12 @@ pub use loro_internal::delta::{TreeDeltaItem, TreeDiff, TreeExternalDiff};
pub use loro_internal::event::Index; pub use loro_internal::event::Index;
pub use loro_internal::handler::TextDelta; pub use loro_internal::handler::TextDelta;
pub use loro_internal::id::{PeerID, TreeID, ID}; pub use loro_internal::id::{PeerID, TreeID, ID};
pub use loro_internal::loro::CommitOptions;
pub use loro_internal::obs::SubID; pub use loro_internal::obs::SubID;
pub use loro_internal::oplog::FrontiersNotIncluded; pub use loro_internal::oplog::FrontiersNotIncluded;
pub use loro_internal::undo; pub use loro_internal::undo;
pub use loro_internal::version::{Frontiers, VersionVector}; pub use loro_internal::version::{Frontiers, VersionVector};
pub use loro_internal::JsonSchema;
pub use loro_internal::UndoManager as InnerUndoManager; pub use loro_internal::UndoManager as InnerUndoManager;
pub use loro_internal::{loro_value, to_value}; pub use loro_internal::{loro_value, to_value};
pub use loro_internal::{LoroError, LoroResult, LoroValue, ToJson}; pub use loro_internal::{LoroError, LoroResult, LoroValue, ToJson};
@ -1368,7 +1368,7 @@ impl LoroTree {
} }
/// Return all children of the target node. /// Return all children of the target node.
pub fn children(&self, parent: Option<TreeID>) -> Vec<TreeID> { pub fn children(&self, parent: Option<TreeID>) -> Option<Vec<TreeID>> {
self.handler.children(parent) self.handler.children(parent)
} }