XuqmGroup-RNSDK/docs/架构总览.md

1.6 KiB

XuqmGroup RN SDK 架构

唯一基座

@xuqm/rn-common 是唯一可以独立使用的基础包,负责:

  • 为官方扩展提供从 src/assets/config/ 内唯一 .xuqmconfig 自动初始化的共享上下文;common 单独使用时不启动初始化;
  • 维护唯一的 SDK 配置和用户会话;
  • 网络、访问令牌、签名、文件、时间、加密、设备信息和通用 UI;
  • 将一次 XuqmSDK.login() / logout() 传播给官方扩展包。

common 的文件、时间、网络、加密、设备、UI 和 hooks 不要求初始化或登录。配置与会话只在启用扩展包时形成统一 SDK 上下文。

rn-updatern-xwebviewrn-bugcollectrn-imrn-push 都以 peer dependency 依赖同一个 common 实例。扩展包不得再实现独立初始化、独立 token 或独立用户状态。

生命周期

配置文件 + withXuqmConfig
        ↓
common 自动初始化(同配置并发复用一个 Promise
        ↓
宿主登录成功后调用一次 XuqmSDK.login
        ↓
common 串行更新 accessToken / userId
        ↓
已安装扩展包接收同一次会话通知
        ↓
宿主退出时调用一次 XuqmSDK.logout

内部订阅入口位于 @xuqm/rn-common/internal,仅供官方扩展包使用。应用代码只能使用 common 顶层公共 API。

发布与集成

包管理统一使用 pnpm 11。开发版本发布到 https://nexus.xuqinmin.com/repository/npm-hosted/;宿主从 npm group 仓库安装精确版本,禁止使用跨仓库 file: 依赖。

corepack pnpm validate
corepack pnpm --filter @xuqm/rn-common publish --tag next --no-git-checks