Naboo's Podracing Misadventure

    angular-storage
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/angular-storage package

    0.0.15 • Public • Published

    angular-storage Build Status

    A Storage done right for AngularJS.

    Key Features

    • Uses localStorage or sessionStorage by default but if it's not available, it uses ngCookies.
    • Lets you save JS Objects
    • If you save a Number, you get a Number, not a String
    • Uses a caching system so that if you already have a value, it won't get it from the store again.

    Installing it

    You have several options:

    bower install a0-angular-storage
    npm install angular-storage
    <script type="text/javascript" src="https://cdn.rawgit.com/auth0/angular-storage/master/dist/angular-storage.js"></script>

    Using it

    angular.module('app', ['angular-storage'])
    .controller('Controller', function(store) {
      var myObj = {
        name: 'mgonto'
      };
     
      store.set('obj', myObj);
     
      var myNewObject = store.get('obj');
     
      angular.equals(myNewObject, myObj); // return true
     
      store.remove('obj');
     
      store.set('number', 2);
     
      typeof(store.get('number')) === 'number'
    });

    Namespaced Storages

    You can also create namespaced storages if you want

    angular.module('app', ['angular-storage'])
    .factory('Auth0Store', function(store) {
      return store.getNamespacedStore('auth0');
    })
    .controller('Controller', function(Auth0Store) {
     
      var myObj = {
        name: 'mgonto'
      };
     
      // This will be saved in localStorage as auth0.obj
      Auth0Store.set('obj', myObj);
     
      // This will look for auth0.obj
      var myNewObject = Auth0Store.get('obj');
     
      angular.equals(myNewObject, myObj); // return true
    });

    Changing storage type

    angular.module('app', ['angular-storage'])
      .config(function(storeProvider) {
        // Store defaults to localStorage but we can set sessionStorage or cookieStorage.
        storeProvider.setStore('sessionStorage');
      })
      .controller('Controller', function(store) {
     
      var myObj = {
        name: 'mgonto'
      };
     
      // This will be saved in sessionStorage as obj
      store.set('obj', myObj);
     
      // This will look for obj in sessionStorage
      var myNewObject = store.get('obj');
     
      angular.equals(myNewObject, myObj); // return true
    });

    API

    storeProvider.setStore(storageName)

    Sets the underlying store for the store service. It can be localStorage, sessionStorage or cookieStorage. Defaults to localStorage

    store.set(name, value)

    Sets a new value to the storage with the key name. It can be any object.

    store.get(name)

    Returns the saved value with they key name. If you saved an object, you get an object.

    store.remove(name)

    Deletes the saved value with the key name

    store.getNamespacedStore(namespace, delimiter)

    Returns a new store service that will use the namespace and delimiter when saving and getting values like the following namespace[delimiter]key. For example auth0.object considering auth0 as namespace and . as a delimiter

    Usages

    This library is used in auth0-angular

    Contributing

    Just clone the repo, run npm install, bower install and then gulp to work :).

    Issue Reporting

    If you have found a bug or if you have a feature request, please report them at this repository issues section. Please do not report security vulnerabilities on the public GitHub issue tracker. The Responsible Disclosure Program details the procedure for disclosing security issues.

    Author

    Auth0

    License

    This project is licensed under the MIT license. See the LICENSE file for more info.

    Keywords

    none

    Install

    npm i angular-storage

    DownloadsWeekly Downloads

    2,326

    Version

    0.0.15

    License

    none

    Last publish

    Collaborators

    • madhuri.rm23
    • willvedd
    • david.renaud.okta
    • jeff.shuman
    • cristian.j.gonzalez
    • auth0-oss
    • codepete
    • ziluvatar
    • iaco
    • cocojoe
    • auth0npm
    • auth0brokkr
    • hzalaz
    • glena
    • aaguiarz
    • charlesrea
    • lbalmaceda
    • jstrutz
    • julien.wollscheid
    • cristiandouce
    • heyitsry
    • sambego
    • stevehobbsdev
    • davidmoses
    • sandrinodimattia
    • lzychowski
    • joshcanhelp
    • rob.coles
    • faroceann
    • rosnovsky
    • davidpatrick0
    • widcket
    • adamjmcgrath
    • ldoorz
    • th3maio
    • jim.andersoon
    • fadymak
    • navrupt
    • frederikprijck
    • sergii.biienko
    • tomauth0
    • jpadilla
    • jessele
    • shushen
    • rhamzeh_auth0
    • greglopez
    • mgonto
    • sirchris
    • ryanchenkie