(n, callback)
| 2153 | } |
| 2154 | |
| 2155 | function key(n, callback) { |
| 2156 | var self = this; |
| 2157 | |
| 2158 | var promise = new Promise$1(function (resolve, reject) { |
| 2159 | if (n < 0) { |
| 2160 | resolve(null); |
| 2161 | |
| 2162 | return; |
| 2163 | } |
| 2164 | |
| 2165 | self.ready().then(function () { |
| 2166 | createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) { |
| 2167 | if (err) { |
| 2168 | return reject(err); |
| 2169 | } |
| 2170 | |
| 2171 | try { |
| 2172 | var store = transaction.objectStore(self._dbInfo.storeName); |
| 2173 | var advanced = false; |
| 2174 | var req = store.openKeyCursor(); |
| 2175 | |
| 2176 | req.onsuccess = function () { |
| 2177 | var cursor = req.result; |
| 2178 | if (!cursor) { |
| 2179 | // this means there weren't enough keys |
| 2180 | resolve(null); |
| 2181 | |
| 2182 | return; |
| 2183 | } |
| 2184 | |
| 2185 | if (n === 0) { |
| 2186 | // We have the first key, return it if that's what they |
| 2187 | // wanted. |
| 2188 | resolve(cursor.key); |
| 2189 | } else { |
| 2190 | if (!advanced) { |
| 2191 | // Otherwise, ask the cursor to skip ahead n |
| 2192 | // records. |
| 2193 | advanced = true; |
| 2194 | cursor.advance(n); |
| 2195 | } else { |
| 2196 | // When we get here, we've got the nth key. |
| 2197 | resolve(cursor.key); |
| 2198 | } |
| 2199 | } |
| 2200 | }; |
| 2201 | |
| 2202 | req.onerror = function () { |
| 2203 | reject(req.error); |
| 2204 | }; |
| 2205 | } catch (e) { |
| 2206 | reject(e); |
| 2207 | } |
| 2208 | }); |
| 2209 | })["catch"](reject); |
| 2210 | }); |
| 2211 | |
| 2212 | executeCallback(promise, callback); |
nothing calls this directly
no test coverage detected