diff --git a/ionic/platform/storage/local-storage.ts b/ionic/platform/storage/local-storage.ts index 14702c1f41..d3b36b93ae 100644 --- a/ionic/platform/storage/local-storage.ts +++ b/ionic/platform/storage/local-storage.ts @@ -79,4 +79,15 @@ export class LocalStorage extends StorageEngine { } }); } + + clear(): Promise { + return new Promise((resolve, reject) => { + try { + window.localStorage.clear(); + resolve(); + } catch (e) { + reject(e); + } + }); + } } diff --git a/ionic/platform/storage/sql.ts b/ionic/platform/storage/sql.ts index c7105c16d0..d8ef3577ee 100644 --- a/ionic/platform/storage/sql.ts +++ b/ionic/platform/storage/sql.ts @@ -142,6 +142,9 @@ export class SqlStorage extends StorageEngine { */ remove(key: string): Promise { return this.query('delete from kv where key = ?', [key]); + } + clear(): Promise { + return this.query('delete from kv'); } } diff --git a/ionic/platform/storage/storage.ts b/ionic/platform/storage/storage.ts index 0cc1b4eefd..a63f83cb2b 100644 --- a/ionic/platform/storage/storage.ts +++ b/ionic/platform/storage/storage.ts @@ -51,6 +51,10 @@ export class Storage { query(query: string, params?: any) { return this._strategy.query(query, params); } + + clear() { + return this._strategy.clear(); + } } export interface IStorageEngine { @@ -75,4 +79,7 @@ export class StorageEngine { query(query: string, params?: any): Promise { throw Error("query() not implemented for this storage engine"); } + clear(): Promise { + throw Error("clear() not implemented for this storage engine"); + } }