Registry / storage / keyv-browser

keyv-browser

JSON →
library0.1.1jsnpmunverified

Browser storage adapter for Keyv, supporting localStorage and IndexedDB. Version 0.1.1, released as an early-stage package with TypeScript types. It provides a Keyv-compatible store interface for browser environments, enabling caching and persistent storage. Differentiates by offering both localStorage and IndexedDB adapters for Keyv, plus a utility `makeField` for direct store access.

npm install keyv-browser
INSTALL
IMPORT
SIG · KEYV-BROWSER
K
keyv-browser
storagejavascriptv0.1.1
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

KeyvLocalStorage
import { KeyvLocalStorage } from 'keyv-browser'
import KeyvLocalStorage from 'keyv-browser'
This is a named export, not default. The package only exports named members.
KeyvIndexedDB
import { KeyvIndexedDB } from 'keyv-browser'
const { KeyvIndexedDB } = require('keyv-browser')
Package is ESM-only; CommonJS require will not work. Use dynamic import or ESM.
makeField
import { makeField } from 'keyv-browser'
import { makeField } from 'keyv'
makeField is a utility for direct store usage, not part of Keyv core.

Demonstrates using keyv-browser with Keyv (localStorage and IndexedDB) and the makeField utility for direct store access.

import Keyv from 'keyv'; import { KeyvLocalStorage, KeyvIndexedDB } from 'keyv-browser'; // localStorage adapter const keyv = new Keyv({ store: new KeyvLocalStorage() }); await keyv.set('foo', 'bar'); console.log(await keyv.get('foo')); // 'bar' // IndexedDB adapter const keyv2 = new Keyv({ store: new KeyvIndexedDB() }); await keyv2.set('baz', 42); console.log(await keyv2.get('baz')); // 42 // Using makeField for direct access import { makeField } from 'keyv-browser'; class MyStore extends KeyvLocalStorage { myField = makeField(this, 'my_key', 0); } const store = new MyStore(); await store.myField.set(100); console.log(await store.myField.get()); // 100
Debug
Known issues
gotchakeyv-browser uses browser-specific APIs (localStorage, IndexedDB) and will fail in Node.js without a polyfill.
fix
Use only in browser environments or provide appropriate polyfills.
affects: >=0.0.0
gotchaThe makeField utility sets default values and handles serialization automatically; fields persist across sessions via the underlying storage.
fix
Be aware that stored data is persistent unless explicitly deleted.
affects: >=0.0.0
gotchaKeyv expects a store with specific methods (get, set, delete, clear). Custom stores must implement these.
fix
Ensure your store adapter conforms to Keyv's store interface.
affects: >=0.0.0
Errors
Common errors & fixes
Cannot find module 'keyv-browser'
Package not installed or import path incorrect.
fix
Run `npm install keyv keyv-browser` and use correct import: `import { KeyvLocalStorage } from 'keyv-browser'`
TypeError: keyv.get is not a function
Keyv not instantiated or using non-Keyv store.
fix
Create a Keyv instance with the adapter: `const keyv = new Keyv({ store: new KeyvLocalStorage() })`
ReferenceError: localStorage is not defined
Running in non-browser environment (e.g., Node.js) without polyfill.
fix
Use a polyfill like `global.localStorage = require('localstorage-polyfill')` or avoid Node.js.
Upgrade
Version history
0.1.1latest on npm
Audit
Dependencies
keyvrequiredpeer dependency - Keyv is required to use this adapter as a store
Agent activity
13 hits · last 30 days
node
12
OpenAI (training)
1
Resources
keyv-browser — npm install keyv-browser · libregistry