git.iko.soy/purescript-indexed-DB
on master help sign in
add documentation to IDBKeyRange
02acc70KtorZ
src/Database/IndexedDB/IDBKeyRange.purs+52−8
@@ -1,3 +1,4 @@
1+-- | A key has an associated type which is one of: number, date, string, binary, or array.
1module Database.IndexedDB.IDBKeyRange
2module Database.IndexedDB.IDBKeyRange
2 ( class IDBKeyRange, includes
3 ( class IDBKeyRange, includes
3 , only
4 , only
@@ -25,25 +26,56 @@ import Database.IndexedDB.IDBKey.Internal (class IDBKey, Key(..), toKey, extract
25--------------------
26--------------------
26-- INTERFACES
27-- INTERFACES
27--
28--
29+-- | The IDBKeyRange interface represents a key range.
28class IDBKeyRange range where
30class IDBKeyRange range where
31+ -- | Returns true if key is included in the range, and false otherwise.
29 includes :: range -> Key -> Boolean
32 includes :: range -> Key -> Boolean
30
33
31
34
35+-- | Type alias for open
36+type Open = Boolean
37+
38+
39+-- | Returns a new IDBKeyRange spanning only key.
40+only
32−only :: forall a. (IDBKey a) => a -> KeyRange
41+ :: forall a. (IDBKey a)
42+ => a
43+ -> KeyRange
33only key =
44only key =
34 _only (extractForeign $ toKey key)
45 _only (extractForeign $ toKey key)
35
46
36
47
48+-- | Returns a new IDBKeyRange starting at key with no upper bound.
49+-- | If `Open` is `true`, key is not included in the range.
50+lowerBound
37−lowerBound :: forall a. (IDBKey a) => a -> Boolean -> KeyRange
51+ :: forall a. (IDBKey a)
52+ => a
53+ -> Open
54+ -> KeyRange
38lowerBound key open =
55lowerBound key open =
39 Fn.runFn2 _lowerBound (extractForeign $ toKey key) open
56 Fn.runFn2 _lowerBound (extractForeign $ toKey key) open
40
57
41
58
59+-- | Returns a new IDBKeyRange with no lower bound and ending at key.
60+-- | If `Open` is `true`, key is not included in the range.
61+upperBound
42−upperBound :: forall a. (IDBKey a) => a -> Boolean -> KeyRange
62+ :: forall a. (IDBKey a)
63+ => a
64+ -> Open
65+ -> KeyRange
43upperBound key open =
66upperBound key open =
44 Fn.runFn2 _upperBound (extractForeign $ toKey key) open
67 Fn.runFn2 _upperBound (extractForeign $ toKey key) open
45
68
69+
70+-- | Returns a new IDBKeyRange spanning from `lower` to `upper`.
71+-- | If `lowerOpen` is `true`, `lower` is not included in the range.
72+-- | If `upperOpen` is `true`, `upper` is not included in the range.
73+-- |
74+-- | It throws a `DataError` if the bound is invalid.
75+bound
76+ :: forall a. (IDBKey a)
46−bound :: forall a. (IDBKey a) => { lower :: a, upper :: a, lowerOpen :: Boolean, upperOpen :: Boolean } -> Maybe KeyRange
77+ => { lower :: a, upper :: a, lowerOpen :: Boolean, upperOpen :: Boolean }
78+ -> Maybe KeyRange
47bound { lower: key1, upper: key2, lowerOpen: open1, upperOpen: open2 } =
79bound { lower: key1, upper: key2, lowerOpen: open1, upperOpen: open2 } =
48 toMaybe
80 toMaybe
49 $ Fn.runFn4 _bound (extractForeign $ toKey key1) (extractForeign $ toKey key2) open1 open2
81 $ Fn.runFn4 _bound (extractForeign $ toKey key1) (extractForeign $ toKey key2) open1 open2
@@ -52,22 +84,34 @@ bound { lower: key1, upper: key2, lowerOpen: open1, upperOpen: open2 } =
52--------------------
84--------------------
53-- ATTRIBUTES
85-- ATTRIBUTES
54--
86--
87+-- | Returns lower bound if any.
88+lower
55−lower :: KeyRange -> Maybe Key
89+ :: KeyRange
90+ -> Maybe Key
56lower =
91lower =
57 _lower >>> toMaybe >>> map Key
92 _lower >>> toMaybe >>> map Key
58
93
59
94
95+-- | Returns upper bound if any.
96+upper
60−upper :: KeyRange -> Maybe Key
97+ :: KeyRange
98+ -> Maybe Key
61upper =
99upper =
62 _upper >>> toMaybe >>> map Key
100 _upper >>> toMaybe >>> map Key
63
101
64
102
103+-- | Returns true if the lower open flag is set, false otherwise.
65−lowerOpen :: KeyRange -> Boolean
104+lowerOpen
105+ :: KeyRange
106+ -> Boolean
66lowerOpen =
107lowerOpen =
67 _lowerOpen
108 _lowerOpen
68
109
69
110
111+-- | Returns true if the upper open flag is set, false otherwise.
70−upperOpen :: KeyRange -> Boolean
112+upperOpen
113+ :: KeyRange
114+ -> Boolean
71upperOpen =
115upperOpen =
72 _upperOpen
116 _upperOpen
73
117