UNPKG

byokay-kit

Version:

Byokay Kit lets users bring their own AI API keys and store them securely in their browser. This eliminates the need for your app to manage sensitive credentials or maintain AI API backend infrastructure.

47 lines (46 loc) 1.56 kB
export class ByokayKey { constructor(options = {}) { // Use renamed options interface this.storage = options.storage || (typeof window !== "undefined" ? localStorage : this.createMemoryStorage()); this.memoryStorage = new Map(); } setKey(provider, key) { const keyName = this.getStorageKey(provider); this.storage.setItem(keyName, key); this.memoryStorage.set(keyName, key); } getKey(provider) { const keyName = this.getStorageKey(provider); return this.memoryStorage.get(keyName) || this.storage.getItem(keyName); } getKeys(...providers) { const result = {}; for (const provider of providers) { result[provider] = this.getKey(provider); } return result; } removeKey(provider) { const keyName = this.getStorageKey(provider); this.storage.removeItem(keyName); this.memoryStorage.delete(keyName); } getStorageKey(provider) { return `byokay-${provider}-key`; } createMemoryStorage() { const localMemory = new Map(); return { getItem: (key) => localMemory.get(key) || null, setItem: (key, value) => localMemory.set(key, value), removeItem: (key) => localMemory.delete(key), clear: () => localMemory.clear(), key: (index) => Array.from(localMemory.keys())[index] || null, length: localMemory.size, }; } }