关于 extension-data-viewer
面向 Caffeine 应用管理员和开发者的数据检查扩展,可用于管理面板或调试查看器。actor 引入 MixinViews() 后,它会为受支持的稳定可变集合自动生成仅控制器可访问的查询。
主要功能
- 01为受支持的集合生成检查查询
- 02通过游标和数量参数读取集合
- 03将生成的查询限制为控制器访问
- 04检查是否引入必需的 MixinViews()
适用场景
- 01在管理面板检查存储的集合
- 02调试时浏览应用数据
- 03确认 actor 已启用自动查看器查询
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ caffeinelabs/ skills --skill extension-data-viewer安装后在 Claude Code 中输入/extension-data-viewer确认已加载。
详细介绍
数据查看器
仅限管理员使用的 Caffeine AI 数据检查扩展。
概述
每个 Caffeine 应用都附带 caffeineai-data-viewer mops 包,并启用了 moc --generate-view-queries 标志。再配合 actor 中的 include MixinViews(),编译器会为每个受支持类型的稳定变量自动公开一个仅限控制器调用的 __<var> 查询:
Map.Map<K, V>—(?K, ?Nat) -> [(K, V)]Set.Set<K>—(?K, ?Nat) -> [K][V]、[var V]、List.List<V>、Stack.Stack<V>、Queue.Queue<V>—(?Nat, ?Nat) -> [V]
null 游标会从开头开始;null 数量会返回从游标位置开始的所有内容。每个生成的查询都会对任何非控制器调用者触发陷阱——这些查询用于管理面板和调试查看器,而非面向用户的端点。
后端
该包和 include 已在模板中配置好。无需添加或编辑任何内容即可使用查看器——声明一个受支持类型的稳定变量,__<var> 查询就会自动出现。
import Map "mo:core/Map";
import Principal "mo:core/Principal";
import MixinViews "mo:caffeineai-data-viewer/MixinViews";
actor {
include MixinViews();
let users = Map.empty<Principal, Text>();
// Generated automatically: __users : (ko : ?Principal, count : ?Nat) -> [(Principal, Text)] query
};
Lintoko 规则 include-mixin-views(随包提供)会在 actor 主体缺少 include MixinViews(); 时报告错误。请保留此 include——移除它会禁用所有自动生成的查看器。
规则
- 切勿将生成的
__<var>查询用作面向用户的端点的替代方案——任何非控制器调用者都会触发陷阱。公开的列表/动态内容/搜索方法仍需按常规编写为public query func listX(...)。 - 切勿声明名称以
__开头的 actor 成员——它可能与自动生成的查询冲突,或触及保留前缀。 - 不支持纯(不可变)集合(
pure/Map、pure/Set、pure/List、pure/Queue)。查看器按设计仅支持可变集合;而在 Caffeine 项目中,直接访问纯集合字段也已属于弃用模式。
评论
支持 Markdown