From 509bd72ddee81a680e470e2b490139e243900171 Mon Sep 17 00:00:00 2001 From: Juanma <35544967+juanmoide@users.noreply.github.com> Date: Wed, 30 Oct 2019 16:49:28 +0100 Subject: [PATCH] feat(secure-storage-echo): added wrapper for newest plugin (#3190) --- .../plugins/secure-storage-echo/index.ts | 149 ++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 src/@ionic-native/plugins/secure-storage-echo/index.ts diff --git a/src/@ionic-native/plugins/secure-storage-echo/index.ts b/src/@ionic-native/plugins/secure-storage-echo/index.ts new file mode 100644 index 000000000..d891fc5d9 --- /dev/null +++ b/src/@ionic-native/plugins/secure-storage-echo/index.ts @@ -0,0 +1,149 @@ +import { Injectable } from '@angular/core'; +import { CordovaCheck, CordovaInstance, IonicNativePlugin, Plugin, getPromise } from '@ionic-native/core'; + +/** + * @hidden + */ +export class SecureStorageEchoObject { + constructor(private _objectInstance: any) {} + + /** + * Gets a stored item + * @param key {string} + * @returns {Promise} + */ + @CordovaInstance({ + callbackOrder: 'reverse' + }) + get(key: string): Promise { + return; + } + + /** + * Stores a value + * @param key {string} + * @param value {string} + * @returns {Promise} + */ + @CordovaInstance({ + callbackOrder: 'reverse' + }) + set(key: string, value: string): Promise { + return; + } + + /** + * Removes a single stored item + * @param key {string} + * @returns {Promise} returns a promise that resolves with the key that was removed + */ + @CordovaInstance({ + callbackOrder: 'reverse' + }) + remove(key: string): Promise { + return; + } + + /** + * Get all references from the storage. + * @returns {Promise} returns a promise that resolves with array of keys storage + */ + @CordovaInstance({ + callbackOrder: 'reverse' + }) + keys(): Promise { + return; + } + + /** + * Clear all references from the storage. + * @returns {Promise} + */ + @CordovaInstance({ + callbackOrder: 'reverse' + }) + clear(): Promise { + return; + } + + /** + * Brings up the screen-lock settings + * @returns {Promise} + */ + @CordovaInstance() + secureDevice(): Promise { + return; + } +} + +/** + * @name Secure Storage Echo + * @description + * This plugin gets, sets and removes key,value pairs from a device's secure storage. + * + * Requires Cordova plugin: `cordova-plugin-secure-storage-echo`. For more info, please see the [Cordova Secure Storage docs](https://github.com/mibrito707/cordova-plugin-secure-storage-echo). + * + * The browser platform is supported as a mock only. Key/values are stored unencrypted in localStorage. + * + * @usage + * + * ```typescript + * import { SecureStorageEcho, SecureStorageEchoObject } from '@ionic-native/secure-storage-echo/ngx'; + * + * constructor(private secureStorageEcho: SecureStorageEcho) { } + * + * ... + * + * this.secureStorageEcho.create('my_store_name') + * .then((storage: SecureStorageEchoObject) => { + * + * storage.get('key') + * .then( + * data => console.log(data), + * error => console.log(error) + * ); + * + * storage.set('key', 'value') + * .then( + * data => console.log(data), + * error => console.log(error) + * ); + * + * storage.remove('key') + * .then( + * data => console.log(data), + * error => console.log(error) + * ); + * + * }); + * + * + * ``` + * @classes + * SecureStorageEchoObject + */ +@Plugin({ + pluginName: 'SecureStorageEcho', + plugin: 'cordova-plugin-secure-storage-echo', + pluginRef: 'cordova.plugins.SecureStorage', + repo: 'https://github.com/mibrito707/cordova-plugin-secure-storage-echo', + platforms: ['Android', 'Browser', 'iOS', 'Windows'] +}) +@Injectable() +export class SecureStorageEcho extends IonicNativePlugin { + /** + * Creates a namespaced storage. + * @param store {string} + * @returns {Promise} + */ + @CordovaCheck() + create(store: string): Promise { + return getPromise((res: Function, rej: Function) => { + const instance = new (SecureStorageEcho.getPlugin())( + () => res(new SecureStorageEchoObject(instance)), + rej, + store + ); + }); + } +}