Skip to content

Commit

Permalink
feat(secure-storage): Add Secure Storage Wrapper (#347)
Browse files Browse the repository at this point in the history
* Add SecureStorage plugin.

* Add SecureStorage plugin.

* Added create() and removed init() to provide more consistency to ionic-native plugins.
Edited comments to reflect changes.

* Removed init and comment edit.
  • Loading branch information
begriffin authored and ihadeed committed Jul 23, 2016
1 parent 77d31cd commit 075842d
Show file tree
Hide file tree
Showing 2 changed files with 95 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ import {Printer} from './plugins/printer';
import {Push} from './plugins/push';
import {SafariViewController} from './plugins/safari-view-controller';
import {Screenshot} from './plugins/screenshot';
import {SecureStorage} from './plugins/securestorage';
import {Sim} from './plugins/sim';
import {SMS} from './plugins/sms';
import {SocialSharing} from './plugins/socialsharing';
Expand Down Expand Up @@ -139,6 +140,7 @@ export {
OneSignal,
PinDialog,
Screenshot,
SecureStorage,
SocialSharing,
Sim,
Splashscreen,
Expand Down Expand Up @@ -211,6 +213,7 @@ window['IonicNative'] = {
PinDialog: PinDialog,
SafariViewController: SafariViewController,
Screenshot: Screenshot,
SecureStorage: SecureStorage,
Sim: Sim,
SMS: SMS,
SocialSharing: SocialSharing,
Expand Down
92 changes: 92 additions & 0 deletions src/plugins/securestorage.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
import { CordovaInstance, Plugin } from './plugin';

declare var cordova: any;

/**
* @name Secure Storage
* @description
* This plugin gets, sets and removes key,value pairs from a device's secure storage.
*
* Requires Cordova plugin: `cordova-plugin-secure-storage`. For more info, please see the [Cordova Secure Storage docs](https://github.com/Crypho/cordova-plugin-secure-storage).
*
* @usage
*
* ```typescript
* import { SecureStorage } from 'ionic-native';
*
* let secureStorage: SecureStorage = new SecureStorage();
* secureStorage.create('my_store_name')
* .then(
* () => console.log('Success'),
* error => console.log(error);
* );
*
* secureStorage.get('myitem')
* .then(
* data => console.log(data),
* error => console.log(error)
* );
*
* secureStorage.set('myitem', 'myvalue')
* .then(
* data => console.log(data),
* error => console.log(error)
* );
*
* secureStorage.remove('myitem')
* .then(
* data => console.log(data),
* error => console.log(error)
* );
* ```
*/
@Plugin({
plugin: 'cordova-plugin-secure-storage',
pluginRef: 'plugins.securestorage',
repo: 'https://github.com/Crypho/cordova-plugin-secure-storage',
platforms: ['Android', 'iOS', 'Windows Phone', 'Browser']
})
export class SecureStorage {

private _objectInstance: any;

constructor() {}

/**
* Creates a namespaced storage.
* @param store {string}
*/
create(store: string): Promise<any> {
return new Promise((res, rej) => {
this._objectInstance = new cordova.plugins.SecureStorage(res, rej, store);
});
}

/**
* Gets a stored item
* @param reference {string}
*/
@CordovaInstance({
callbackOrder: 'reverse'
})
get(reference: string): Promise<any> { return; }

/**
* Stores a value
* @param reference {string}
* @param value {string}
*/
@CordovaInstance({
callbackOrder: 'reverse'
})
set(reference: string, value: string): Promise<any> { return; }

/**
* Removes a single stored item
* @param reference {string}
*/
@CordovaInstance({
callbackOrder: 'reverse'
})
remove(reference: string): Promise<any> { return; }
}

0 comments on commit 075842d

Please sign in to comment.