ChainGraph API Documentation / @badaitech/chaingraph-types / ITreeStore
Interface: ITreeStore<TNode, TCreate, TUpdate>
Defined in: packages/chaingraph-types/src/hierarchy/types.ts:82
Generic tree store interface that all hierarchical stores must implement Provides consistent CRUD + tree operations
Type Parameters
TNode
TNode extends ITreeNode
TCreate
TCreate extends ICreateTreeNodeInput
TUpdate
TUpdate extends IUpdateTreeNodeInput
Properties
create()
create: (
input) =>Promise<TNode>
Defined in: packages/chaingraph-types/src/hierarchy/types.ts:92
Create a new node in the tree
Parameters
input
TCreate
Returns
Promise<TNode>
delete()
delete: (
id) =>Promise<boolean>
Defined in: packages/chaingraph-types/src/hierarchy/types.ts:109
Delete a node from the tree Implementation should handle cascade strategy
Parameters
id
string
Returns
Promise<boolean>
get()
get: (
id) =>Promise<TNode|null>
Defined in: packages/chaingraph-types/src/hierarchy/types.ts:97
Get a single node by ID
Parameters
id
string
Returns
Promise<TNode | null>
getAncestors()
getAncestors: (
nodeId) =>Promise<TNode[]>
Defined in: packages/chaingraph-types/src/hierarchy/types.ts:148
Get all ancestor nodes of a node (path to root)
Parameters
nodeId
string
Starting node ID
Returns
Promise<TNode[]>
getDescendants()
getDescendants: (
rootId,ownerId) =>Promise<TNode[]>
Defined in: packages/chaingraph-types/src/hierarchy/types.ts:142
Get all descendant nodes of a root node (recursive)
Parameters
rootId
string
Root node ID
ownerId
string
Owner to verify access
Returns
Promise<TNode[]>
getMaxOrder()
getMaxOrder: (
parentId,ownerId) =>Promise<number>
Defined in: packages/chaingraph-types/src/hierarchy/types.ts:155
Get maximum order value in a parent for appending
Parameters
parentId
Parent node ID (null = root level)
string | null
ownerId
string
Owner ID to filter by
Returns
Promise<number>
hasAccess()
hasAccess: (
nodeId,userId) =>Promise<boolean>
Defined in: packages/chaingraph-types/src/hierarchy/types.ts:162
Check if user has access to a node
Parameters
nodeId
string
Node ID to check
userId
string
User ID to verify
Returns
Promise<boolean>
list()
list: (
ownerId,rootId?,limit?) =>Promise<TNode[]>
Defined in: packages/chaingraph-types/src/hierarchy/types.ts:119
List all nodes for a user
Parameters
ownerId
string
User ID to filter by
rootId?
Optional root node to filter descendants
string | null
limit?
number
Maximum number of results
Returns
Promise<TNode[]>
listChildren()
listChildren: (
parentId) =>Promise<TNode[]>
Defined in: packages/chaingraph-types/src/hierarchy/types.ts:125
List direct children of a parent node
Parameters
parentId
Parent node ID (null = root level)
string | null
Returns
Promise<TNode[]>
move()
move: (
input) =>Promise<TNode>
Defined in: packages/chaingraph-types/src/hierarchy/types.ts:133
Move a node to a new parent and/or order Must prevent circular references
Parameters
input
Returns
Promise<TNode>
update()
update: (
input) =>Promise<TNode>
Defined in: packages/chaingraph-types/src/hierarchy/types.ts:103
Update node metadata (name, description, color, etc.) Does NOT move the node in the tree
Parameters
input
TUpdate
Returns
Promise<TNode>
wouldCreateCircularRef()
wouldCreateCircularRef: (
sourceId,targetParentId) =>Promise<boolean>
Defined in: packages/chaingraph-types/src/hierarchy/types.ts:169
Check if moving a node would create a circular reference
Parameters
sourceId
string
Node being moved
targetParentId
string
Proposed new parent
Returns
Promise<boolean>