Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions DBREADME.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
Browser-Network Database

核心类和功能
Db 类 (index.ts)
Db 类是 Browser-Network Database 的核心,负责状态管理、网络通信和本地存储。

构造函数:初始化数据库实例,接收网络实例、密钥和应用ID。
set 方法:将状态包装后存储到本地,并广播到网络,以便其他用户可以接收到状态更新。
get 方法:从本地存储中检索指定地址的状态。
getAll 方法:获取所有本地存储的状态,返回一个包含所有状态的数组。
onChange 方法:添加一个监听器,用于在状态更新时通知应用程序。
clear 方法:清除所有本地存储的数据,重置数据库到初始状态。
deny 方法:阻止特定地址的状态更新,防止其状态被数据库处理或转发。
undeny 方法:取消对特定地址的阻止,允许其状态更新被数据库处理。
allow 方法:将特定地址添加到允许列表,只有列表中的地址的状态更新才会被接受。
unallow 方法:从允许列表中移除地址,停止接受其状态更新。
消息处理:处理网络中接收到的状态更新、状态请求和状态提供消息。
广播:定期广播本地存储的状态摘要,并在状态更新时广播更新。
LocalDB 类 (LocalDB.ts)
LocalDB 类负责管理数据库的本地存储。

构造函数:接收应用ID,并初始化本地存储。
set 方法:将包装后的状态存储到本地。
get 方法:从本地存储中获取指定地址的状态。
getAll 方法:获取所有本地存储的状态。
remove 方法:从本地存储中删除指定地址的状态。
clear 方法:清除所有本地存储的状态。
buildKey 方法:构建用于本地存储的键名。
类型定义 (types.d.ts)
定义了数据库中使用的基本类型,包括十六进制字符串、时间戳、全局唯一标识符、公钥和私钥等。

工具函数 (util.ts)
提供了一系列辅助函数,用于调试和处理 Promise。

debugFactory:创建一个根据日志级别输出日志的调试函数。
isPromise:检查一个对象是否是 Promise。
exhaustive:用于处理所有可能的情况,如果到达这个函数,抛出错误。