api
Store API
查看 MarkdownTypeScript JSON 键值存储 API。
在 TypeScript 中读写应用私有目录内的 JSON 键值状态。
KSM.store 封装 Store 插件,适合主题、偏好和少量结构化状态。它不是数据库,不提供查询、
索引、事务或迁移。复杂关系数据使用 KSM.sql,大文件使用 KSM.fs。
实现入口是 frontend/src/api/store.ts 和 frontend/src/api/guards.ts。
| 能力 | Windows | Android |
|---|---|---|
| 五个 Store 命令 | 支持 | 支持 |
| 存储位置 | app://data/.kasumi/store.json | 同一虚拟路径 |
get({ key })const result = await KSM.store.get({ key: 'profile' });
if (result.found) {
console.info(result.value);
}未命中返回 { found: false, value: null }。
set({ key, value })await KSM.store.set({
key: 'profile',
value: { theme: 'light', compact: true }
});key 最大 256 字节,单个 value 最大 1 MiB。value 必须是合法 JSON 值。
delete({ key })、clear()、keys()const deleted = await KSM.store.delete({ key: 'profile' });
const keys = await KSM.store.keys();
await KSM.store.clear();keys() 按字典序返回键名。clear() 删除整个存储文件。
IO_ERROR,不会自动丢弃原始内容。| 错误码 | 场景 |
|---|---|
INVALID_ARGS | key、value 或大小非法 |
PERMISSION_DENIED | 没有 store 权限 |
IO_ERROR | 读取失败、写入失败、文件损坏或总量超限 |
NOT_SUPPORTED | 宿主未注册 Store 插件 |
TIMEOUT / CANCELLED | 请求被超时或取消 |
capabilities.query 返回 Store 命令和 store 权限。
评论