类型定义
Blocklet SDK 是强类型的,可帮助您编写更健壮、更易于维护的代码。本节提供了在使用用户会话、通知、事件和 blocklet 配置时会遇到的最常见 TypeScript 类型和接口的参考。了解这些类型将有助于确保类型安全,并有效利用 IDE 的自动完成功能。
会话和用户类型#
这些类型是管理应用程序中用户身份验证和身份的基础。
SessionUser#
SessionUser 对象由会话中间件附加到 request 对象(作为 req.user)。它包含有关当前登录用户的基本信息。
SessionUser Type Definition
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' 类型。
示例:图片附件
{
"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:created'、'post:published')。
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 配置的环境变量列表。