Skip to content

A common front-end/Service Worker-based Key/Value database based on CacheStorage

License

Notifications You must be signed in to change notification settings

CrazyCreativeDream/CacheDB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cache-DB

A common Key/Value database working on both DOM/WebWorker with auto type convert, based on CacheStorage.

> const DBWithNoAuto = new CacheDB("DB1","PREFIX1") //this instance will not auto convert type
< undefined

> const DBWithAuto = new CacheDB("DB1","PREFIX2",{auto:1}) //this instance will auto convert type
< undefined

< await DBWithNoAuto.write("key1","content1")
> 1

< await DBWithAuto.write("key1","content2")
> 1

< await DBWithNoAuto.read("key1")
> "content1"

< await DBWithAuto.read("key1")
> "content2"

< await DBWithNoAuto.write("key1",{"123":456}) //CacheDB instances without type conversion require manual type conversion when writing, otherwise they will be directly converted to a '[object object]' string
> 1

< await DBWithNoAuto.read("key1") //CacheDB instances without type conversion also need to manually convert the type when reading, otherwise they will be returned in string form
> '[object Object]' 

< await DBWithNoAuto.write("key1",{"123":456},{type:"json"}) //You can specify the type when writing to avoid manual conversion
> 1

< await DBWithNoAuto.read("key1",{type:"json"}) //You can also specify the type when reading to avoid manual conversion
> {123: 456}

< await DBWithAuto.write("key1",{"123":789}) //CacheDB instances with type conversion do not require manual type conversion when writing.It will automatically convert the type according to the content.
> 1

< await DBWithAuto.read("key1") //Auto-Convert worked in both reading and writing.
> {123: 789}

< await DBWithAuto.has("key1") //After V1.1.5, CacheDB has a new method to check if the key exists.
> true

< await DBWithAuto.read("key3",{default:"default value"}) //After V1.1.5, CacheDB can read with default value when the key does not exist.
> "default value"

< await DBWithAuto.read("key3",{default:"diff value"}) //Default value could only overwrite when the key does not exist.
> "default value"

You can import this script as:

import '@chenyfan/cache-db' //WebWorker With Webpack
importScripts('https://unpkg.com/@chenyfan/cache-db') //WebWorker With Unpkg CDN
//or
importScripts('https://registry.npmmirror.com/@chenyfan/cache-db/latest/files') //WebWorker With NPM Mirror CDN
<script src="https://unpkg.com/@chenyfan/cache-db"></script> <!--In DOM-->

ANY WAY,DO NOT USE latest IN PRODUCTION!

Compatibility

CacheStorage has much much much stronger compatibility than WebWorker. And CacheDB is designed for both WebWorker and DOM.

So CacheDB will never check if CacheStorage API in browser or not.

If you just want to find a simple Key/Value database in DOM, please use localForge

CacheDB's compatibility is based on CacheStorage's compatibility.

CacheDB's compatibility

LICENSE

MIT License

About

A common front-end/Service Worker-based Key/Value database based on CacheStorage

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published