/
connectDatabase.js
26 lines (23 loc) · 1.01 KB
/
connectDatabase.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/** @returns {Promise<IDBDatabase>} */
export default function connectDatabase() {
return new Promise((resolve, reject) => {
const request = window.indexedDB.open('indexed-db', 5);
request.addEventListener('success', () => resolve(request.result));
request.addEventListener('error', () => reject('An open error occured.'));
request.addEventListener('blocked', () => reject('A blocked error occured.'));
request.addEventListener('upgradeneeded', event => {
if (event.oldVersion < 1) {
request.result.createObjectStore('items', { keyPath: 'id', autoIncrement: true });
}
if (event.oldVersion < 2) {
request.result.createObjectStore('dailies', { keyPath: 'id', autoIncrement: true });
}
if (event.oldVersion < 3) {
request.result.createObjectStore('weeklies', { keyPath: 'id', autoIncrement: true });
}
if (event.oldVersion < 5) {
request.result.createObjectStore('monthlies', { keyPath: 'id', autoIncrement: true });
}
});
});
}