|
|
- export default () => new Promise((resolve, reject) => {
- // ServiceWorker is required to synchronize the login state.
- // 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 (!('caches' in self && 'getAll' in IDBObjectStore.prototype)) {
- reject();
- return;
- }
-
- const request = indexedDB.open('mastodon');
-
- 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');
- };
- });
|