You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
1.0 KiB
29 lines
1.0 KiB
7 years ago
|
import { me } from '../initial_state';
|
||
|
|
||
|
export default new Promise((resolve, reject) => {
|
||
|
// Microsoft Edge 17 does not support getAll according to:
|
||
|
// Catalog of standard and vendor APIs across browsers - Microsoft Edge Development
|
||
|
// https://developer.microsoft.com/en-us/microsoft-edge/platform/catalog/?q=specName%3Aindexeddb
|
||
|
if (!me || !('getAll' in IDBObjectStore.prototype)) {
|
||
|
reject();
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
const request = indexedDB.open('mastodon:' + me);
|
||
|
|
||
|
request.onerror = reject;
|
||
|
request.onsuccess = ({ target }) => resolve(target.result);
|
||
|
|
||
|
request.onupgradeneeded = ({ target }) => {
|
||
|
const accounts = target.result.createObjectStore('accounts', { autoIncrement: true });
|
||
|
const statuses = target.result.createObjectStore('statuses', { autoIncrement: true });
|
||
|
|
||
|
accounts.createIndex('id', 'id', { unique: true });
|
||
|
accounts.createIndex('moved', 'moved');
|
||
|
|
||
|
statuses.createIndex('id', 'id', { unique: true });
|
||
|
statuses.createIndex('account', 'account');
|
||
|
statuses.createIndex('reblog', 'reblog');
|
||
|
};
|
||
|
});
|