towerdb

0.1.1 • Public • Published

🗼 towerdb

towerdb towerdb towerdb

resiliently redundant storage stacks

Quick Usage

const Tower = require('towerdb')
 
//create a tower
const tower = new Tower()
 
//create a store from memory
const table = {}
const tmem = Tower.createStore({
    function get(key,options){
        return table[key]
    },
    function set(key,val,options){
        table[key] = val
    }
})
 
//add store to tower
tower.use(tmem)
 
async function demo() {
    await tower.get('hello', {default:'world'}) //=> world
    await tower.get('hello') //=> world
 
    //default option with sync function
    await tower.get('hello:random', {
        default: () => `world-${Math.random().toFixed(10) * Math.pow(10,10)}` //dynamic default value
    })
 
    await tower.get('hello:random') //=> world-0123456789
 
    //default option with a promise bearing function
    function fetchWorld() {
        return new Promise((resolve,reject) => {
            setTimeout(() => resolve('world'), 2000)
        })
    }
 
    await tower.get('hello:promise', {default: fetchWorld }) //=> world (after waiting 2 seconds)
    await tower.get('hello:promise') //=> world
 
}
 
demo()
 

Readme

Keywords

Package Sidebar

Install

npm i towerdb

Weekly Downloads

1

Version

0.1.1

License

MIT

Unpacked Size

5.04 kB

Total Files

5

Last publish

Collaborators

  • json2d