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
32 lines
770 B
JavaScript
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;
|
|
}
|