git.iko.soy/purescript-indexed-DB
on master help sign in
change reference from Key to Foreign for FFI functions
commit808de4f3c3414160b3412cf1ad942266eb8642e7 authorKtorZ <matthias.benkort@gmail.com> dateFri 7 Jul 2017, 12:57 (9 years ago) parent3705bbc
3 files changed+45−31
src/Database/IndexedDB/IDBFactory.purs+3−3 src/Database/IndexedDB/IDBIndex/Internal.purs+16−16 src/Database/IndexedDB/IDBKeyRange.purs+26−12
src/Database/IndexedDB/IDBFactory.purs+3−3
@@ -18,7 +18,7 @@ import Database.IndexedDB.Core
1818-- INTERFACE
1919--
2020-- Type alias for binding listeners to an initial open action.
21−type OpenRequest e =
21+type Callbacks e =
2222 { onBlocked :: Maybe (Eff (| e) Unit)
2323 , onUpgradeNeeded :: Maybe (Database -> Transaction -> Eff (| e) Unit)
2424 }
@@ -55,7 +55,7 @@ open
5555 :: forall e e'
5656 . DatabaseName
5757 -> Maybe Version
58− -> OpenRequest e'
58+ -> Callbacks e'
5959 -> Aff (idb :: IDB | e) Database
6060open name mver req =
6161 Fn.runFn4 _open fromMaybe name mver req
@@ -72,4 +72,4 @@ foreign import _deleteDatabase
7272
7373foreign import _open
7474 :: forall a e e'
75− . Fn4 (a -> Maybe a -> a) String (Maybe Int) (OpenRequest e') (Aff (idb :: IDB | e) Database)
75+ . Fn4 (a -> Maybe a -> a) String (Maybe Int) (Callbacks e') (Aff (idb :: IDB | e) Database)
src/Database/IndexedDB/IDBIndex/Internal.purs+16−16
@@ -4,17 +4,17 @@ module Database.IndexedDB.IDBIndex.Internal where
44
55import Prelude
66
7−import Control.Monad.Aff (Aff)
8−import Control.Monad.Eff (Eff)
9−import Control.Monad.Eff.Exception (Error)
10−import Data.Foreign (Foreign, unsafeFromForeign)
11−import Data.Function.Uncurried as Fn
12−import Data.Function.Uncurried (Fn2, Fn3, Fn4)
13−import Data.Maybe (Maybe)
14−import Data.Nullable (Nullable, toMaybe, toNullable)
7+import Control.Monad.Aff (Aff)
8+import Control.Monad.Eff (Eff)
9+import Control.Monad.Eff.Exception (Error)
10+import Data.Foreign (Foreign, unsafeFromForeign)
11+import Data.Function.Uncurried as Fn
12+import Data.Function.Uncurried (Fn2, Fn3, Fn4)
13+import Data.Maybe (Maybe)
14+import Data.Nullable (Nullable, toMaybe, toNullable)
1515
16−import Database.IndexedDB.Core (IDB, CursorDirection, Index, Key, KeyCursor, KeyRange,
17− KeyPath, ObjectStore, ValueCursor)
16+import Database.IndexedDB.Core (IDB, CursorDirection, Index, Key, KeyCursor, KeyRange, KeyPath, ObjectStore, ValueCursor)
17+import Database.IndexedDB.IDBKey.Internal (class IDBKey, Key(..))
1818
1919
2020--------------------
@@ -166,10 +166,10 @@ instance idbIndexIndex :: IDBIndex Index where
166166 (toMaybe >>> map unsafeFromForeign) <$> Fn.runFn2 _get index range
167167
168168 getAllKeys index range count =
169− Fn.runFn3 _getAllKeys index (toNullable range) (toNullable count)
169+ map Key <$> Fn.runFn3 _getAllKeys index (toNullable range) (toNullable count)
170170
171171 getKey index range =
172− toMaybe <$> Fn.runFn2 _getKey index range
172+ (toMaybe >>> map Key) <$> Fn.runFn2 _getKey index range
173173
174174 openCursor index range dir cb =
175175 Fn.runFn4 _openCursor index (toNullable range) (show dir) cb
@@ -186,10 +186,10 @@ instance idbIndexObjectStore :: IDBIndex ObjectStore where
186186 (toMaybe >>> map unsafeFromForeign) <$> Fn.runFn2 _get store range
187187
188188 getAllKeys store range count =
189− Fn.runFn3 _getAllKeys store (toNullable range) (toNullable count)
189+ map Key <$> Fn.runFn3 _getAllKeys store (toNullable range) (toNullable count)
190190
191191 getKey store range =
192− toMaybe <$> Fn.runFn2 _getKey store range
192+ (toMaybe >>> map Key) <$> Fn.runFn2 _getKey store range
193193
194194 openCursor store range dir cb =
195195 Fn.runFn4 _openCursor store (toNullable range) (show dir) cb
@@ -238,12 +238,12 @@ foreign import _get
238238
239239foreign import _getAllKeys
240240 :: forall index e
241− . Fn3 index (Nullable KeyRange) (Nullable Int) (Aff (idb :: IDB | e) (Array Key))
241+ . Fn3 index (Nullable KeyRange) (Nullable Int) (Aff (idb :: IDB | e) (Array Foreign))
242242
243243
244244foreign import _getKey
245245 :: forall index e
246− . Fn2 index KeyRange (Aff (idb :: IDB | e) (Nullable Key))
246+ . Fn2 index KeyRange (Aff (idb :: IDB | e) (Nullable Foreign))
247247
248248
249249foreign import _openCursor
src/Database/IndexedDB/IDBKeyRange.purs+26−12
@@ -29,8 +29,7 @@ import Database.IndexedDB.IDBKey.Internal (class IDBKey, Key(..), toKey, extract
2929-- | The IDBKeyRange interface represents a key range.
3030class IDBKeyRange range where
3131 -- | Returns true if key is included in the range, and false otherwise.
32− includes :: range -> Key -> Boolean
33−
32+ includes :: forall k. (IDBKey k) => range -> k -> Boolean
3433
3534-- | Type alias for open
3635type Open = Boolean
@@ -121,34 +120,49 @@ upperOpen =
121120--
122121instance idbKeyRangeKeyRange :: IDBKeyRange KeyRange where
123122 includes range =
124− extractForeign >>> Fn.runFn2 _includes range
123+ toKey >>> extractForeign >>> Fn.runFn2 _includes range
125124
126125
127126--------------------
128127-- FFI
129128--
130−foreign import _bound :: Fn4 Foreign Foreign Boolean Boolean (Nullable KeyRange)
129+foreign import _bound
130+ :: Fn4 Foreign Foreign Boolean Boolean (Nullable KeyRange)
131131
132132
133−foreign import _includes :: forall range. Fn2 range Foreign Boolean
133+foreign import _includes
134+ :: forall range
135+ . Fn2 range Foreign Boolean
134136
135137
136−foreign import _lower :: KeyRange -> Nullable Foreign
138+foreign import _lower
139+ :: KeyRange
140+ -> Nullable Foreign
137141
138142
139−foreign import _lowerBound :: Fn2 Foreign Boolean KeyRange
143+foreign import _lowerBound
144+ :: Fn2 Foreign Boolean KeyRange
140145
141146
142−foreign import _lowerOpen :: KeyRange -> Boolean
147+foreign import _lowerOpen
148+ :: KeyRange
149+ -> Boolean
143150
144151
145−foreign import _only :: Foreign -> KeyRange
152+foreign import _only
153+ :: Foreign
154+ -> KeyRange
146155
147156
148−foreign import _upper :: KeyRange -> Nullable Foreign
157+foreign import _upper
158+ :: KeyRange
159+ -> Nullable Foreign
149160
150161
151−foreign import _upperBound :: Fn2 Foreign Boolean KeyRange
162+foreign import _upperBound
163+ :: Fn2 Foreign Boolean KeyRange
152164
153165
154−foreign import _upperOpen :: KeyRange -> Boolean
166+foreign import _upperOpen
167+ :: KeyRange
168+ -> Boolean