From 934f5638d4df5b19443e03fa981f5b441ea9043f Mon Sep 17 00:00:00 2001 From: recuedav Date: Tue, 4 Oct 2016 11:40:55 +0200 Subject: [PATCH 1/2] UPDATE localForage type definitions --- localForage/localForage-tests.ts | 85 ++++++++++++++++++++------------ localForage/localForage.d.ts | 30 ++++++++--- 2 files changed, 75 insertions(+), 40 deletions(-) diff --git a/localForage/localForage-tests.ts b/localForage/localForage-tests.ts index 6f162e8c4b..4a885f18fc 100644 --- a/localForage/localForage-tests.ts +++ b/localForage/localForage-tests.ts @@ -1,65 +1,86 @@ /// -declare var localForage: LocalForage; +declare let localForage: LocalForage; -() => { +namespace LocalForageTest { localForage.clear((err: any) => { - var newError: any = err; + let newError: any = err; }); localForage.iterate((str: string, key: string, num: number) => { - var newStr: string = str; - var newKey: string = key; - var newNum: number = num; + let newStr: string = str; + let newKey: string = key; + let newNum: number = num; }); localForage.length((err: any, num: number) => { - var newError: any = err; - var newNumber: number = num; + let newError: any = err; + let newNumber: number = num; }); localForage.key(0, (err: any, value: string) => { - var newError: any = err; - var newValue: string = value; + let newError: any = err; + let newValue: string = value; }); localForage.keys((err: any, keys: Array) => { - var newError: any = err; - var newArray: Array = keys; + let newError: any = err; + let newArray: Array = keys; }); localForage.getItem("key",(err: any, str: string) => { - var newError: any = err; - var newStr: string = str + let newError: any = err; + let newStr: string = str }); localForage.getItem("key").then((str: string) => { - var newStr: string = str; + let newStr: string = str; }); - + localForage.setItem("key", "value",(err: any, str: string) => { - var newError: any = err; - var newStr: string = str + let newError: any = err; + let newStr: string = str }); localForage.setItem("key", "value").then((str: string) => { - var newStr: string = str; + let newStr: string = str; }); - + localForage.removeItem("key",(err: any) => { - var newError: any = err; + let newError: any = err; }); localForage.removeItem("key").then(() => { }); - - var config = localForage.config({ - name: "testyo", - driver: localForage.LOCALSTORAGE - }); - - var store = localForage.createInstance({ - name: "da instance", - driver: localForage.LOCALSTORAGE - }); -} \ No newline at end of file + + { + let config: boolean; + + config = localForage.config({ + name: "testyo", + driver: localForage.LOCALSTORAGE + }); + } + + { + let store: LocalForage; + + store = localForage.createInstance({ + name: "da instance", + driver: localForage.LOCALSTORAGE + }); + } + + { + let testSerializer: LocalForageSerializer; + + localForage.getSerializer() + .then((serializer: LocalForageSerializer) => { + testSerializer = serializer; + }); + + localForage.getSerializer((serializer: LocalForageSerializer) => { + testSerializer = serializer; + }); + } +} diff --git a/localForage/localForage.d.ts b/localForage/localForage.d.ts index 803bde9e57..89dae93ca0 100644 --- a/localForage/localForage.d.ts +++ b/localForage/localForage.d.ts @@ -39,6 +39,16 @@ interface LocalForageDriver { setItem(key: string, value: any, callback: (err: any, value: any) => void): void; } +interface LocalForageSerializer { + serialize(value: T | ArrayBuffer | Blob, callback: (value: string, error: any) => {}): void; + + deserialize(value: string): T | ArrayBuffer | Blob; + + stringToBuffer(serializedString: string): ArrayBuffer; + + bufferToString(buffer: ArrayBuffer): string; +} + interface LocalForage { LOCALSTORAGE: string; WEBSQL: string; @@ -50,6 +60,12 @@ interface LocalForage { * @param {ILocalForageConfig} options? */ config(options: LocalForageOptions): boolean; + + /** + * 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; @@ -62,6 +78,11 @@ interface LocalForage { defineDriver(driver: LocalForageDriver): Promise; defineDriver(driver: LocalForageDriver, callback: () => void, errorCallback: (error: any) => void): void; + getSerializer(): Promise; + getSerializer(callback: (serializer: LocalForageSerializer) => void): void; + + supports(driverName: string): boolean; + getItem(key: string): Promise; getItem(key: string, callback: (err: any, value: T) => void): void; @@ -86,16 +107,9 @@ interface LocalForage { iterate(iteratee: (value: any, key: string, iterationNumber: number) => any): Promise; iterate(iteratee: (value: any, key: string, iterationNumber: number) => any, callback: (err: any, result: any) => void): void; - - /** - * 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; } declare module "localforage" { export var localforage: LocalForage; - export default localforage; + export default localforage; } From 20aff2bdb6082f4f51eac9d4e6e64a2be786e346 Mon Sep 17 00:00:00 2001 From: recuedav Date: Wed, 2 Nov 2016 11:34:49 +0100 Subject: [PATCH 2/2] UPDATE localForage typings --- localForage/localForage-tests.ts | 12 ++++++++++-- localForage/localForage.d.ts | 11 +++++++---- .../localforage-cordovasqlitedriver-tests.ts | 6 +++--- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/localForage/localForage-tests.ts b/localForage/localForage-tests.ts index f77f57cd21..3907696d6b 100644 --- a/localForage/localForage-tests.ts +++ b/localForage/localForage-tests.ts @@ -61,8 +61,7 @@ namespace LocalForageTest { localForage.removeItem("key").then(() => { }); - localForage.getDriver("CustomDriver").then((result: LocalForageDriver) => { - var driver: LocalForageDriver = result; + localForage.getDriver("CustomDriver").then((driver: LocalForageDriver) => { // we need to use a variable for proper type guards before TS 2.0 var _support = driver._support; if (typeof _support === "function") { @@ -105,4 +104,13 @@ namespace LocalForageTest { testSerializer = serializer; }); } + + { + let store: LocalForage; + + store.ready() + .then(() => {}); + + store.ready(() => {}); + } } diff --git a/localForage/localForage.d.ts b/localForage/localForage.d.ts index bd8682c1ab..bf4f621652 100644 --- a/localForage/localForage.d.ts +++ b/localForage/localForage.d.ts @@ -41,7 +41,7 @@ interface LocalForageDbMethods { iterate(iteratee: (value: any, key: string, iterationNumber: number) => any): Promise; iterate(iteratee: (value: any, key: string, iterationNumber: number) => any, - callback: (err: any, result: any) => void): void; + callback: (err: any, result: any) => void): void; } interface LocalForageDriverSupportFunc { @@ -53,11 +53,11 @@ interface LocalForageDriver extends LocalForageDbMethods { _initStorage(options: LocalForageOptions): void; - _support: boolean | LocalForageDriverSupportFunc; + _support?: boolean | LocalForageDriverSupportFunc; } interface LocalForageSerializer { - serialize(value: T | ArrayBuffer | Blob, callback: (value: string, error: any) => {}): void; + serialize(value: T | ArrayBuffer | Blob, callback: (value: string, error: any) => void): void; deserialize(value: string): T | ArrayBuffer | Blob; @@ -74,7 +74,7 @@ interface LocalForage extends LocalForageDbMethods { /** * 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 {ILocalForageConfig} options? + * @param {LocalForageOptions} options? */ config(options: LocalForageOptions): boolean; @@ -104,6 +104,9 @@ interface LocalForage extends LocalForageDbMethods { getSerializer(callback: (serializer: LocalForageSerializer) => void): void; supports(driverName: string): boolean; + + ready(callback: () => void): void; + ready(): Promise; } declare module "localforage" { diff --git a/localforage-cordovasqlitedriver/localforage-cordovasqlitedriver-tests.ts b/localforage-cordovasqlitedriver/localforage-cordovasqlitedriver-tests.ts index d6a9ac4ae2..c3d35b710b 100644 --- a/localforage-cordovasqlitedriver/localforage-cordovasqlitedriver-tests.ts +++ b/localforage-cordovasqlitedriver/localforage-cordovasqlitedriver-tests.ts @@ -36,7 +36,7 @@ declare var cordovaSQLiteDriver: LocalForageDriver; var newError: any = err; var newStr: string = str }); - + cordovaSQLiteDriver.setItem("key", "value", (err: any, str: string) => { var newError: any = err; var newStr: string = str @@ -45,7 +45,7 @@ declare var cordovaSQLiteDriver: LocalForageDriver; cordovaSQLiteDriver.setItem("key", "value", (str: string) => { var newStr: string = str; }); - + cordovaSQLiteDriver.removeItem("key",(err: any) => { var newError: any = err; }); @@ -53,4 +53,4 @@ declare var cordovaSQLiteDriver: LocalForageDriver; cordovaSQLiteDriver.removeItem("key", (err: any) => { var newError: any = err; }); -} \ No newline at end of file +}