Skip to content

Commit bdea015

Browse files
committed
fix: return Promise when opening the db
1 parent 186aa38 commit bdea015

3 files changed

Lines changed: 30 additions & 21 deletions

File tree

src/getter.js

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,31 @@ var db
55
function openDB(config) {
66
if (config.cache && typeof window !== 'undefined') {
77
const request = window.indexedDB.open("pokeapi-js-wrapper", 1);
8-
9-
request.onerror = (event) => {
10-
log('IndexedDB not available')
11-
}
12-
request.onupgradeneeded = (event) => {
13-
db = event.target.result;
14-
log('db opened and cache created')
15-
db.createObjectStore("cache", { autoIncrement: false });
16-
}
17-
request.onsuccess = (event) => {
18-
log('db opened')
19-
db = event.target.result;
20-
}
21-
request.onversionchange = (event) => {
22-
db.close()
23-
}
8+
return new Promise((resolve, reject) => {
9+
request.onerror = (event) => {
10+
log('IndexedDB not available')
11+
reject()
12+
}
13+
request.onupgradeneeded = (event) => {
14+
db = event.target.result;
15+
log('db opened and cache created')
16+
db.createObjectStore("cache", { autoIncrement: false });
17+
resolve(db)
18+
}
19+
request.onsuccess = (event) => {
20+
log('db opened')
21+
db = event.target.result;
22+
resolve(db)
23+
}
24+
request.onversionchange = (event) => {
25+
db.close()
26+
reject()
27+
}
28+
request.onblocked = (event) => {
29+
db.close()
30+
reject()
31+
}
32+
});
2433
}
2534
}
2635

@@ -37,7 +46,6 @@ async function loadResource(config, url) {
3746
url = url.replace(/^\//, '');
3847
url = `${config.protocol}://${config.hostName}/${url}`
3948
}
40-
4149
if (canUseCache(config, db)) {
4250
const transaction = db.transaction("cache", "readonly");
4351
const objectStore = transaction.objectStore("cache");

test/cdn.html

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@
66
// var PJSW_DEBUG=1
77
</script>
88
<script type="module">
9-
import {Pokedex} from "https://cdn.jsdelivr.net/gh/pokeapi/pokeapi-js-wrapper@beta/src/index.js"
10-
const P = await Pokedex.init();
11-
const version = await P.getVersionByName(1)
9+
//import {Pokedex} from "https://cdn.jsdelivr.net/gh/pokeapi/pokeapi-js-wrapper@beta/src/index.js"
10+
import {Pokedex} from "../src/index.js"
11+
const pokedex = await Pokedex.init();
12+
const version = await pokedex.getVersionByName(1)
1213
document.getElementById("version").textContent = version.name;
1314
</script>
1415
</html>

test/test.html.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ describe("pokedex", function () {
4040

4141
// --- Resource Methods ---
4242

43-
describe(".resource(Mixed: array)", function () {
43+
describe(".resource(Mixed: array) not cached", function () {
4444
it("should have property name", async function () {
4545
const res = await customP.resource(['/api/v2/pokemon/36', 'api/v2/berry/8', 'https://pokeapi.co/api/v2/ability/9/']);
4646
expect(res[0]).to.have.property('name');

0 commit comments

Comments
 (0)