This is an IndexedDB adapter for Fortune.js. Various performance and compatibility optimizations are included:
- Runs in a Web Worker so that database operations don't block the main thread, and uses MessagePack for messaging.
- Lazy loads records as they're requested and keeps them in memory.
- Primary keys are universally unique, which solves some compatibility problems.
$ npm install fortune-indexeddb
This module works in web browsers only, and falls back to memory if IndexedDB is not available:
const fortune = require('fortune')
const indexedDBAdapter = require('fortune-indexeddb')
const store = fortune(recordTypes, {
adapter: [ indexedDBAdapter, {
// Name of the IndexedDB database to use. Defaults to `db`.
name: 'db',
// These are optional to implement, if storage compression is needed.
compress: uint8array => uint8array,
decompress: uint8array => uint8array,
} ]
})
This software is licensed under the MIT license.