跳到主要内容

类型定义

Blocklet SDK 是强类型的,可帮助您编写更健壮、更易于维护的代码。本节提供了在使用用户会话、通知、事件和 blocklet 配置时会遇到的最常见 TypeScript 类型和接口的参考。了解这些类型将有助于确保类型安全,并有效利用 IDE 的自动完成功能。

会话和用户类型

这些类型是管理应用程序中用户身份验证和身份的基础。

SessionUser

SessionUser 对象由会话中间件附加到 request 对象(作为 req.user)。它包含有关当前登录用户的基本信息。

SessionUser Type Definition

typescript
export type SessionUser = {
  did: string;
  role: string | undefined;
  provider: string;
  fullName: string;
  walletOS: string;
  emailVerified?: boolean;
  phoneVerified?: boolean;
  method?: AuthMethod;
  kyc?: number;
  [key: string]: any;
};
  • did string (required) — 用户的去中心化标识符(DID)。
  • role string | undefined — 分配给用户的角色(例如,'admin'、'owner'、'guest')。
  • provider string (required) — 用于登录的身份验证提供程序(例如,'wallet')。
  • fullName string (required) — 用户的全名。
  • walletOS string (required) — 用户钱包的操作系统。
  • emailVerified boolean — 指示用户的电子邮件是否已验证。
  • phoneVerified boolean — 指示用户的电话是否已验证。
  • method AuthMethod — 使用的身份验证方法。常见值为 'loginToken'、'componentCall'、'signedToken'、'accessKey'。
  • kyc number — 用户 KYC 状态的数字表示。

TUserInfo

TUserInfo 类型提供了用户个人资料的全面视图,包括其身份、联系信息、登录历史和相关的安全凭证。

  • did string (required) — 用户的去中心化标识符(DID)。
  • pk string (required) — 用户的公钥。
  • role string (required) — 用户的主要角色。
  • avatar string (required) — 用户头像图片的 URL。
  • fullName string (required) — 用户的全名。
  • email string (required) — 用户的电子邮件地址。
  • approved boolean (required) — 指示用户帐户是否已获批准。
  • createdAt number (required) — 用户创建时的时间戳。
  • lastLoginAt number (required) — 用户上次登录的时间戳。
  • passports TPassport[] (required) — 颁发给用户的护照数组。
  • connectedAccounts TConnectedAccount[] (required) — 链接到用户个人资料的外部帐户列表。

通知类型

使用通知服务时,您将使用这些类型来构建和向用户发送消息。

TNotification

这是定义通知的主要接口。它包括控制通知内容、外观和行为所需的所有字段。

  • id string — 通知的唯一标识符。
  • title string — 通知的主标题。
  • body string — 通知的主要内容或消息。
  • type 'notification' | 'connect' | 'feed' | 'hi' | 'passthrough' — 通知的类型,这会影响其处理和呈现方式。
  • severity 'normal' | 'success' | 'error' | 'warning' — 严重性级别,通常用于对通知进行颜色编码。
  • actions TNotificationAction[] — 包含在通知中的交互式操作按钮数组。
  • attachments TNotificationAttachment[] — 丰富内容附件的数组,例如图片、文本块或链接。
  • activity TNotificationActivity — 描述触发通知的社交活动,如评论或关注。
  • url string — 单击通知时要导航到的 URL。

TNotificationAttachment

附件允许您向通知中添加丰富的结构化内容。

  • type 'asset' | 'vc' | 'token' | 'text' | 'image' | 'divider' | 'transaction' | 'dapp' | 'link' | 'section' (required) — 要显示的内容类型。
  • data any — 附件的数据负载,具体取决于类型。例如,'image' 类型将具有一个带有 url 属性的对象。
  • fields any — 要在附件中显示的其他字段,通常用于 'section' 类型。

示例:图片附件

json
{
  "type": "image",
  "data": {
    "url": "https://path.to/your/image.png",
    "alt": "图片的描述性文本"
  }
}

TNotificationAction

操作是可添加到通知中的交互式按钮,允许用户直接响应。

  • name string (required) — 操作的名称,通常用作标识符。
  • title string — 按钮上显示的文本。如果未提供,则默认为 name。
  • link string — 单击按钮时要导航到的 URL。
  • color string — 按钮的文本颜色。
  • bgColor string — 按钮的背景颜色。

事件类型

在使用事件总线时,事件使用 TEvent 接口进行结构化。

TEvent

此接口定义了在 Blocklet 生态系统中发出和使用的事件的结构。

  • id string (required) — 事件实例的唯一标识符。
  • type string (required) — 事件类型名称(例如,'user'、'post')。
  • time Date (required) — 事件发生时的时间戳。
  • source unknown (required) — 事件的来源或发起者。
  • spec_version string (required) — CloudEvents 规范版本。
  • object_id string — 事件所属对象的 ID。
  • object_type string — 事件所属对象的类型。
  • data object (required) — 事件的负载,包含有关所发生事件的详细信息。

配置和状态类型

这些类型定义了 blocklet 的配置对象和状态信息的结构。

WindowBlocklet

在客户端,window.blocklet 对象提供了有关正在运行的 blocklet 的基本上下文。该对象类型为 WindowBlocklet

  • did string (required) — blocklet 实例的 DID。
  • appId string (required) — 应用程序 ID。
  • appName string (required) — 应用程序的显示名称。
  • appUrl string (required) — 应用程序的公共 URL。
  • webWalletUrl string (required) — 关联的网络钱包的 URL。
  • isComponent boolean (required) — 如果 blocklet 作为另一个 blocklet 的组件运行,则为 true。
  • prefix string (required) — blocklet 路由的 URL 前缀。
  • theme TTheme (required) — UI 的当前主题设置。
  • navigation TNavigationItem[] (required) — 应用程序菜单的导航项数组。

TBlockletState

此类型表示服务器上 blocklet 实例的完整状态,包括其元数据、状态、配置以及与其他组件的关系。

  • meta TBlockletMeta — blocklet 的元数据,来自其 blocklet.yml 文件。
  • status enum_pb.BlockletStatusMap (required) — blocklet 的当前运行状态(例如,'running'、'stopped')。
  • port number (required) — blocklet 正在运行的端口。
  • appDid string (required) — blocklet 实例的 DID。
  • children TComponentState[] (required) — 如果此 blocklet 有子组件,则为组件状态数组。
  • settings TBlockletSettings — 用户为 blocklet 配置的设置。
  • environments TConfigEntry[] (required) — 为 blocklet 配置的环境变量列表。