@ carddb/ 浏览器
用于浏览器的卡DB客户端.
安装
npm install @carddb/browser
# or
bun add @carddb/browser
快速启动
import { CardDBClient, BrowserCache, gte, ilike } from '@carddb/browser'
const client = new CardDBClient({
publishableKey: 'carddb_pk_xxx...', // Browser-safe public key
cache: new BrowserCache(), // Optional localStorage-based caching
defaultPublisher: 'pokemon',
defaultGame: 'tcg',
})
// Search for cards with filtering
const cards = await client.records.search({
datasetKey: 'cards',
filter: (f) => f.where('hp', gte(100)).where('name', ilike('%pikachu%')),
})
// Iterate through all results (auto-paginates)
for await (const card of cards) {
console.log(card.data.name)
}
使用 accessToken 改为 publishableKey 用于用户授权的OAuth甲板工作流程. secretKey 只有服务器,而且浏览器客户端在构建时拒绝。 浏览器客户端也拒绝遗留 apiKey 因为它模糊不清,可以意外地暴露出密钥 publishableKey 专供公共浏览器阅读.
出版商管理助手, 如 games.create, (中文(简体) ), records.upsertBatch, (中文(简体) ), imports.run, (中文(简体) ), exports.run,以及 files.requestUpload 需要服务器端的秘密证书,并且应当从 @carddb/node 在信任的后端中,而不是直接从浏览器代码中。 保留内容管道,源 URL 导入,上传文件导入,批量删除,以及服务器端的出口.
const client = new CardDBClient({
accessToken: oauthAccessToken,
})
const decks = await client.decks.listMine()
const updated = await client.decks.updateMetadata(deck.id, {
expectedDraftRevision: deck.draftRevision,
title: 'Updated title',
})
浏览器缓存
基于本地Storage或会话的浏览器缓存Storage:
import { BrowserCache } from '@carddb/browser'
// localStorage (default, persistent across sessions)
const persistentCache = new BrowserCache()
// sessionStorage (cleared when tab closes)
const sessionCache = new BrowserCache({ storage: 'sessionStorage' })
// Custom key prefix (default: 'carddb:')
const customCache = new BrowserCache({ prefix: 'myapp:carddb:' })
// Use with client
const client = new CardDBClient({
cache: persistentCache,
cacheTtl: 300, // 5 minutes default
cacheTtls: {
publishers: 3600, // 1 hour for publishers
records: 60, // 1 minute for records
},
})
// Manual cache management
cache.cleanup() // Remove expired entries
cache.clear() // Clear all CardDB entries
cache.size // Number of cached entries
套装大小
浏览器包被优化为最小捆绑大小. 树摇被全力支持.
完整文档
见 主读取器 用于完整文档.
许可证
麻省理工学院