数据存储

每个插件按 pluginCode 获得独立存储命名空间。相同 key 在不同插件之间互不冲突。

db

db 用于保存 JSON 可序列化的数据。

db.put

api.db.put(key: string, value: unknown): boolean
const saved = api && api.db
  ? api.db.put('draft', { text: text.value, savedAt: Date.now() })
  : false

db.get

api.db.get<T>(key: string): T | null
const draft = api && api.db ? api.db.get('draft') : null
const draftText = draft && typeof draft.text === 'string' ? draft.text : ''

db.remove

api.db.remove(key: string): boolean
if (api && api.db) api.db.remove('draft')

dbStorage

dbStorage 保存字符串,语义与浏览器 localStorage 相同。

dbStorage.setItem

api.dbStorage.setItem(key: string, value: string): void
if (api && api.dbStorage) api.dbStorage.setItem('theme', 'dark')

dbStorage.getItem

api.dbStorage.getItem(key: string): string | null
const theme = api && api.dbStorage ? api.dbStorage.getItem('theme') : null

dbStorage.removeItem

api.dbStorage.removeItem(key: string): void
if (api && api.dbStorage) api.dbStorage.removeItem('theme')

不要在插件存储中保存密码、访问令牌或其他不必要的敏感信息。