git.iko.soy/purescript-indexed-DB
on master help sign in
change reference from Key to Foreign for FFI functions
808de4fKtorZ
src/Database/IndexedDB/IDBFactory.purs+3−3
@@ -18,7 +18,7 @@ import Database.IndexedDB.Core
18-- INTERFACE
18-- INTERFACE
19--
19--
20-- Type alias for binding listeners to an initial open action.
20-- Type alias for binding listeners to an initial open action.
21−type OpenRequest e =
21+type Callbacks e =
22 { onBlocked :: Maybe (Eff (| e) Unit)
22 { onBlocked :: Maybe (Eff (| e) Unit)
23 , onUpgradeNeeded :: Maybe (Database -> Transaction -> Eff (| e) Unit)
23 , onUpgradeNeeded :: Maybe (Database -> Transaction -> Eff (| e) Unit)
24 }
24 }
@@ -55,7 +55,7 @@ open
55 :: forall e e'
55 :: forall e e'
56 . DatabaseName
56 . DatabaseName
57 -> Maybe Version
57 -> Maybe Version
58− -> OpenRequest e'
58+ -> Callbacks e'
59 -> Aff (idb :: IDB | e) Database
59 -> Aff (idb :: IDB | e) Database
60open name mver req =
60open name mver req =
61 Fn.runFn4 _open fromMaybe name mver req
61 Fn.runFn4 _open fromMaybe name mver req
@@ -72,4 +72,4 @@ foreign import _deleteDatabase
72
72
73foreign import _open
73foreign import _open
74 :: forall a e e'
74 :: 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
4
4
5import Prelude
5import Prelude
6
6
7−import Control.Monad.Aff (Aff)
7+import Control.Monad.Aff (Aff)
8−import Control.Monad.Eff (Eff)
8+import Control.Monad.Eff (Eff)
9−import Control.Monad.Eff.Exception (Error)
9+import Control.Monad.Eff.Exception (Error)
10−import Data.Foreign (Foreign, unsafeFromForeign)
10+import Data.Foreign (Foreign, unsafeFromForeign)
11−import Data.Function.Uncurried as Fn
11+import Data.Function.Uncurried as Fn
12−import Data.Function.Uncurried (Fn2, Fn3, Fn4)
12+import Data.Function.Uncurried (Fn2, Fn3, Fn4)
13−import Data.Maybe (Maybe)
13+import Data.Maybe (Maybe)
14−import Data.Nullable (Nullable, toMaybe, toNullable)
14+import Data.Nullable (Nullable, toMaybe, toNullable)
15
15
16−import Database.IndexedDB.Core (IDB, CursorDirection, Index, Key, KeyCursor, KeyRange,
16+import Database.IndexedDB.Core (IDB, CursorDirection, Index, Key, KeyCursor, KeyRange, KeyPath, ObjectStore, ValueCursor)
17− KeyPath, ObjectStore, ValueCursor)
17+import Database.IndexedDB.IDBKey.Internal (class IDBKey, Key(..))
18
18
19
19
20--------------------
20--------------------
@@ -166,10 +166,10 @@ instance idbIndexIndex :: IDBIndex Index where
166 (toMaybe >>> map unsafeFromForeign) <$> Fn.runFn2 _get index range
166 (toMaybe >>> map unsafeFromForeign) <$> Fn.runFn2 _get index range
167
167
168 getAllKeys index range count =
168 getAllKeys index range count =
169− Fn.runFn3 _getAllKeys index (toNullable range) (toNullable count)
169+ map Key <$> Fn.runFn3 _getAllKeys index (toNullable range) (toNullable count)
170
170
171 getKey index range =
171 getKey index range =
172− toMaybe <$> Fn.runFn2 _getKey index range
172+ (toMaybe >>> map Key) <$> Fn.runFn2 _getKey index range
173
173
174 openCursor index range dir cb =
174 openCursor index range dir cb =
175 Fn.runFn4 _openCursor index (toNullable range) (show dir) cb
175 Fn.runFn4 _openCursor index (toNullable range) (show dir) cb
@@ -186,10 +186,10 @@ instance idbIndexObjectStore :: IDBIndex ObjectStore where
186 (toMaybe >>> map unsafeFromForeign) <$> Fn.runFn2 _get store range
186 (toMaybe >>> map unsafeFromForeign) <$> Fn.runFn2 _get store range
187
187
188 getAllKeys store range count =
188 getAllKeys store range count =
189− Fn.runFn3 _getAllKeys store (toNullable range) (toNullable count)
189+ map Key <$> Fn.runFn3 _getAllKeys store (toNullable range) (toNullable count)
190
190
191 getKey store range =
191 getKey store range =
192− toMaybe <$> Fn.runFn2 _getKey store range
192+ (toMaybe >>> map Key) <$> Fn.runFn2 _getKey store range
193
193
194 openCursor store range dir cb =
194 openCursor store range dir cb =
195 Fn.runFn4 _openCursor store (toNullable range) (show dir) cb
195 Fn.runFn4 _openCursor store (toNullable range) (show dir) cb
@@ -238,12 +238,12 @@ foreign import _get
238
238
239foreign import _getAllKeys
239foreign import _getAllKeys
240 :: forall index e
240 :: 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))
242
242
243
243
244foreign import _getKey
244foreign import _getKey
245 :: forall index e
245 :: forall index e
246− . Fn2 index KeyRange (Aff (idb :: IDB | e) (Nullable Key))
246+ . Fn2 index KeyRange (Aff (idb :: IDB | e) (Nullable Foreign))
247
247
248
248
249foreign import _openCursor
249foreign import _openCursor
src/Database/IndexedDB/IDBKeyRange.purs+26−12
@@ -29,8 +29,7 @@ import Database.IndexedDB.IDBKey.Internal (class IDBKey, Key(..), toKey, extract
29-- | The IDBKeyRange interface represents a key range.
29-- | The IDBKeyRange interface represents a key range.
30class IDBKeyRange range where
30class IDBKeyRange range where
31 -- | Returns true if key is included in the range, and false otherwise.
31 -- | Returns true if key is included in the range, and false otherwise.
32− includes :: range -> Key -> Boolean
32+ includes :: forall k. (IDBKey k) => range -> k -> Boolean
33−
34
33
35-- | Type alias for open
34-- | Type alias for open
36type Open = Boolean
35type Open = Boolean
@@ -121,34 +120,49 @@ upperOpen =
121--
120--
122instance idbKeyRangeKeyRange :: IDBKeyRange KeyRange where
121instance idbKeyRangeKeyRange :: IDBKeyRange KeyRange where
123 includes range =
122 includes range =
124− extractForeign >>> Fn.runFn2 _includes range
123+ toKey >>> extractForeign >>> Fn.runFn2 _includes range
125
124
126
125
127--------------------
126--------------------
128-- FFI
127-- FFI
129--
128--
129+foreign import _bound
130−foreign import _bound :: Fn4 Foreign Foreign Boolean Boolean (Nullable KeyRange)
130+ :: Fn4 Foreign Foreign Boolean Boolean (Nullable KeyRange)
131
131
132
132
133−foreign import _includes :: forall range. Fn2 range Foreign Boolean
133+foreign import _includes
134+ :: forall range
135+ . Fn2 range Foreign Boolean
134
136
135
137
136−foreign import _lower :: KeyRange -> Nullable Foreign
138+foreign import _lower
139+ :: KeyRange
140+ -> Nullable Foreign
137
141
138
142
143+foreign import _lowerBound
139−foreign import _lowerBound :: Fn2 Foreign Boolean KeyRange
144+ :: Fn2 Foreign Boolean KeyRange
140
145
141
146
142−foreign import _lowerOpen :: KeyRange -> Boolean
147+foreign import _lowerOpen
148+ :: KeyRange
149+ -> Boolean
143
150
144
151
145−foreign import _only :: Foreign -> KeyRange
152+foreign import _only
153+ :: Foreign
154+ -> KeyRange
146
155
147
156
148−foreign import _upper :: KeyRange -> Nullable Foreign
157+foreign import _upper
158+ :: KeyRange
159+ -> Nullable Foreign
149
160
150
161
162+foreign import _upperBound
151−foreign import _upperBound :: Fn2 Foreign Boolean KeyRange
163+ :: Fn2 Foreign Boolean KeyRange
152
164
153
165
154−foreign import _upperOpen :: KeyRange -> Boolean
166+foreign import _upperOpen
167+ :: KeyRange
168+ -> Boolean