Files
flipper/flow-typed/indexedDB.js
Benjamin Elo e4601a89f3 Added IndexedDB utility functions for reading and writing bookmarks
Summary:
These are utility function for reading from the IndexedDB and writing to it. This will be used for persistant storage of bookmarks.

The reason I chose IndexedDB over local storage is due to the poor efficiency of stringifying and parsing a long list of bookmarks everytime we read and write to local storage.

With IndexedDB we can modify a single value at a time.

Bookmarks are passed around as a Map, with the key being the uri's and the common names being the values. This allows me to check if a specified uri is in the Map in O(1) time, so that I can highlight the star icon in the UI with gold.

Reviewed By: jknoxville

Differential Revision: D16498744

fbshipit-source-id: 7c7af28bf4eb3fcc985a71dfd61ffbdb8481b6a6
2019-07-28 12:50:31 -07:00

32 lines
770 B
JavaScript

declare class DOMStringList {
+[key: number]: string;
+length: number;
item: number => string | null;
contains: string => boolean;
}
declare interface IDBDatabase extends EventTarget {
close(): void;
createObjectStore(
name: string,
options?: {
keyPath?: ?(string | string[]),
autoIncrement?: boolean,
...
},
): IDBObjectStore;
deleteObjectStore(name: string): void;
transaction(
storeNames: string | string[],
mode?: 'readonly' | 'readwrite' | 'versionchange',
): IDBTransaction;
name: string;
version: number;
objectStoreNames: string[];
objectStoreNames: DOMStringList;
onabort: (e: any) => mixed;
onclose: (e: any) => mixed;
onerror: (e: any) => mixed;
onversionchange: (e: any) => mixed;
}