1.6 KiB
1.6 KiB
XuqmGroup RN SDK 架构
唯一基座
@xuqm/rn-common 是唯一可以独立使用的基础包,负责:
- 为官方扩展提供从
src/assets/config/config.xuqmconfig自动初始化的共享上下文;common 单独使用时不启动初始化; - 维护唯一的 SDK 配置和用户会话;
- 网络、访问令牌、签名、文件、时间、加密、设备信息和通用 UI;
- 将一次
XuqmSDK.login()/logout()传播给官方扩展包。
common 的文件、时间、网络、加密、设备、UI 和 hooks 不要求初始化或登录。配置与会话只在启用扩展包时形成统一 SDK 上下文。
rn-update、rn-xwebview、rn-bugcollect、rn-im、rn-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