|
@@ -0,0 +1,166 @@
|
|
|
+// https://github.com/localForage/localForage/blob/master/typings/localforage.d.ts
|
|
|
+
|
|
|
+interface LocalForageDbInstanceOptions {
|
|
|
+ name?: string;
|
|
|
+
|
|
|
+ storeName?: string;
|
|
|
+}
|
|
|
+
|
|
|
+interface LocalForageOptions extends LocalForageDbInstanceOptions {
|
|
|
+ driver?: string | string[];
|
|
|
+
|
|
|
+ size?: number;
|
|
|
+
|
|
|
+ version?: number;
|
|
|
+
|
|
|
+ description?: string;
|
|
|
+}
|
|
|
+
|
|
|
+interface LocalForageDbMethodsCore {
|
|
|
+ getItem<T>(
|
|
|
+ key: string,
|
|
|
+ callback?: (err: any, value: T | null) => void
|
|
|
+ ): Promise<T | null>;
|
|
|
+
|
|
|
+ setItem<T>(
|
|
|
+ key: string,
|
|
|
+ value: T,
|
|
|
+ callback?: (err: any, value: T) => void
|
|
|
+ ): Promise<T>;
|
|
|
+
|
|
|
+ removeItem(key: string, callback?: (err: any) => void): Promise<void>;
|
|
|
+
|
|
|
+ clear(callback?: (err: any) => void): Promise<void>;
|
|
|
+
|
|
|
+ length(callback?: (err: any, numberOfKeys: number) => void): Promise<number>;
|
|
|
+
|
|
|
+ key(
|
|
|
+ keyIndex: number,
|
|
|
+ callback?: (err: any, key: string) => void
|
|
|
+ ): Promise<string>;
|
|
|
+
|
|
|
+ keys(callback?: (err: any, keys: string[]) => void): Promise<string[]>;
|
|
|
+
|
|
|
+ iterate<T, U>(
|
|
|
+ iteratee: (value: T, key: string, iterationNumber: number) => U,
|
|
|
+ callback?: (err: any, result: U) => void
|
|
|
+ ): Promise<U>;
|
|
|
+}
|
|
|
+
|
|
|
+interface LocalForageDropInstanceFn {
|
|
|
+ (
|
|
|
+ dbInstanceOptions?: LocalForageDbInstanceOptions,
|
|
|
+ callback?: (err: any) => void
|
|
|
+ ): Promise<void>;
|
|
|
+}
|
|
|
+
|
|
|
+interface LocalForageDriverMethodsOptional {
|
|
|
+ dropInstance?: LocalForageDropInstanceFn;
|
|
|
+}
|
|
|
+
|
|
|
+// duplicating LocalForageDriverMethodsOptional to preserve TS v2.0 support,
|
|
|
+// since Partial<> isn't supported there
|
|
|
+interface LocalForageDbMethodsOptional {
|
|
|
+ dropInstance: LocalForageDropInstanceFn;
|
|
|
+}
|
|
|
+
|
|
|
+interface LocalForageDriverDbMethods
|
|
|
+ extends LocalForageDbMethodsCore,
|
|
|
+ LocalForageDriverMethodsOptional {}
|
|
|
+
|
|
|
+interface LocalForageDriverSupportFunc {
|
|
|
+ (): Promise<boolean>;
|
|
|
+}
|
|
|
+
|
|
|
+interface LocalForageDriver extends LocalForageDriverDbMethods {
|
|
|
+ _driver: string;
|
|
|
+
|
|
|
+ _initStorage(options: LocalForageOptions): void;
|
|
|
+
|
|
|
+ _support?: boolean | LocalForageDriverSupportFunc;
|
|
|
+}
|
|
|
+
|
|
|
+interface LocalForageSerializer {
|
|
|
+ serialize<T>(
|
|
|
+ value: T | ArrayBuffer | Blob,
|
|
|
+ callback: (value: string, error: any) => void
|
|
|
+ ): void;
|
|
|
+
|
|
|
+ deserialize<T>(value: string): T | ArrayBuffer | Blob;
|
|
|
+
|
|
|
+ stringToBuffer(serializedString: string): ArrayBuffer;
|
|
|
+
|
|
|
+ bufferToString(buffer: ArrayBuffer): string;
|
|
|
+}
|
|
|
+
|
|
|
+interface LocalForageDbMethods
|
|
|
+ extends LocalForageDbMethodsCore,
|
|
|
+ LocalForageDbMethodsOptional {}
|
|
|
+
|
|
|
+export interface LocalForage extends LocalForageDbMethods {
|
|
|
+ LOCALSTORAGE: string;
|
|
|
+ WEBSQL: string;
|
|
|
+ INDEXEDDB: string;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Set and persist localForage options. This must be called before any other calls to localForage are made, but can be called after localForage is loaded.
|
|
|
+ * If you set any config values with this method they will persist after driver changes, so you can call config() then setDriver()
|
|
|
+ * @param {LocalForageOptions} options?
|
|
|
+ */
|
|
|
+ config(options: LocalForageOptions): boolean;
|
|
|
+ config(options: string): any;
|
|
|
+ config(): LocalForageOptions;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Create a new instance of localForage to point to a different store.
|
|
|
+ * All the configuration options used by config are supported.
|
|
|
+ * @param {LocalForageOptions} options
|
|
|
+ */
|
|
|
+ createInstance(options: LocalForageOptions): LocalForage;
|
|
|
+
|
|
|
+ driver(): string;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Force usage of a particular driver or drivers, if available.
|
|
|
+ * @param {string} driver
|
|
|
+ */
|
|
|
+ setDriver(
|
|
|
+ driver: string | string[],
|
|
|
+ callback?: () => void,
|
|
|
+ errorCallback?: (error: any) => void
|
|
|
+ ): Promise<void>;
|
|
|
+
|
|
|
+ defineDriver(
|
|
|
+ driver: LocalForageDriver,
|
|
|
+ callback?: () => void,
|
|
|
+ errorCallback?: (error: any) => void
|
|
|
+ ): Promise<void>;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Return a particular driver
|
|
|
+ * @param {string} driver
|
|
|
+ */
|
|
|
+ getDriver(driver: string): Promise<LocalForageDriver>;
|
|
|
+
|
|
|
+ getSerializer(
|
|
|
+ callback?: (serializer: LocalForageSerializer) => void
|
|
|
+ ): Promise<LocalForageSerializer>;
|
|
|
+
|
|
|
+ supports(driverName: string): boolean;
|
|
|
+
|
|
|
+ ready(callback?: (error: any) => void): Promise<void>;
|
|
|
+}
|
|
|
+
|
|
|
+// Customize
|
|
|
+
|
|
|
+export interface ProxyStorage {
|
|
|
+ setItem<T>(k: string, v: T, m: number): Promise<T>;
|
|
|
+ getItem<T>(k: string): Promise<T>;
|
|
|
+ removeItem(k: string): Promise<void>;
|
|
|
+ clear(): Promise<void>;
|
|
|
+}
|
|
|
+
|
|
|
+export interface ExpiresData<T> {
|
|
|
+ data: T;
|
|
|
+ expires: number;
|
|
|
+}
|