An API wrapper around indexedDB
Go to file
2017-07-07 11:37:21 +02:00
.github rework README 2017-06-30 23:47:30 +02:00
src/Database/IndexedDB make Key polymorphic in IDBCursor 2017-07-07 11:37:21 +02:00
test add few test cases for IDBIndex 2017-06-30 22:50:57 +02:00
.eslintignore review test cases and add some for IDBIndex 2017-06-30 18:39:57 +02:00
.eslintrc add IDBKeyRange API bindings 2017-06-29 15:41:30 +02:00
.gitignore prepare CI environment 2017-07-06 12:26:28 +02:00
.travis.yml prepare CI environment 2017-07-06 12:26:28 +02:00
bower.json remove Test.Spec.Mocha from src and add it as an external dependency 2017-07-06 15:38:18 +02:00
deploy.sh prepare CI environment 2017-07-06 12:26:28 +02:00
karma.browserstack.conf.js prepare CI environment 2017-07-06 12:26:28 +02:00
karma.conf.js move --single-run option in the karma.conf.js 2017-07-06 15:17:49 +02:00
LICENSE Initial commit 2017-06-16 15:12:20 +02:00
package.json move --single-run option in the karma.conf.js 2017-07-06 15:17:49 +02:00
README.md update README browser compatibility matrix 2017-07-06 15:39:52 +02:00

PureScript IndexedDB Build Status

This package offers complete bindings and type-safety upon the IndexedDB API.

Overview

main :: Eff (idb :: IDB, exception :: EXCEPTION, console :: CONSOLE) Unit
main = launchAff' do
  db <- IDBFactory.open "db" Nothing { onBlocked       : Nothing
                                     , onUpgradeNeeded : Just onUpgradeNeeded
                                     }

  tx    <- IDBDatabase.transaction db ["store"] ReadOnly
  store <- IDBTransaction.objectStore tx "store"
  (val :: Maybe String) <-  IDBObjectStore.get store (IDBKeyRange.only 1)
  log $ maybe "not found" id val


onUpgradeNeeded :: forall e. Database -> Transaction -> Eff (idb :: IDB, exception :: EXCEPTION | e) Unit
onUpgradeNeeded db _ = launchAff' do
  store <- IDBDatabase.createObjectStore db "store" IDBObjectStore.defaultParameters
  _     <- IDBObjectStore.add store "patate" (Just 1)
  _     <- IDBObjectStore.add store { property: 42 } (Just 2)
  _     <- IDBObjectStore.createIndex store "index" ["property"] IDBIndex.defaultParameters
  pure unit

Changelog

  • Release incoming

TODO

  • Add support for index.getAll method
  • Complete the specifications with the official tests list provided by W3C

Documentation

Module documentation is published on Pursuit.

Testing

Tested in the cloud on multiple browsers and operating systems thanks to BrowserStack

IE / Edge Chrome Firefox Safari Opera Android iOS Safari
- >= 57 >= 51 - >= 46 - -

browserstack