Skip to content

Instantly share code, notes, and snippets.

@Kyoss79
Last active April 1, 2019 09:39
Show Gist options
  • Select an option

  • Save Kyoss79/8cd37a54679804fdeb6d to your computer and use it in GitHub Desktop.

Select an option

Save Kyoss79/8cd37a54679804fdeb6d to your computer and use it in GitHub Desktop.

Revisions

  1. Kyoss79 revised this gist Apr 1, 2019. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions localStorageService.expire.js
    Original file line number Diff line number Diff line change
    @@ -28,7 +28,7 @@ app.config(($provide) => {

    // delete the key if it timed out
    if(data.expire < now) {
    $delegate.rm(key);
    $delegate.remove(key);
    return null;
    }

    @@ -51,7 +51,7 @@ app.config(($provide) => {
    var expiryDate = null;

    if(angular.isNumber(expires)) {
    expiryDate = Date.now() + (1000 * 60 * expires);
    expiryDate = Date.now() + (1000 * 60 * 60 * expires);
    originalSet(key, {
    data: val,
    expire: expiryDate
  2. Kyoss79 created this gist Oct 14, 2015.
    66 changes: 66 additions & 0 deletions localStorageService.expire.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,66 @@
    /**
    * extend the localStorageService (https://github.com/grevory/angular-local-storage)
    *
    * - now its possible that data stored in localStorage can expire and will be deleted automagically
    * - usage localStorageService.set(key, val, expire)
    * - expire is an integer defininig after how many hours the value expires
    * - when it expires, it is deleted from the localStorage
    */
    app.config(($provide) => {
    $provide.decorator('localStorageService', ($delegate) => {

    //store original get & set methods
    var originalGet = $delegate.get,
    originalSet = $delegate.set;

    /**
    * extending the localStorageService get method
    *
    * @param key
    * @returns {*}
    */
    $delegate.get = (key) => {
    if(originalGet(key)) {
    var data = originalGet(key);

    if(data.expire) {
    var now = Date.now();

    // delete the key if it timed out
    if(data.expire < now) {
    $delegate.rm(key);
    return null;
    }

    return data.data;
    } else {
    return data;
    }
    } else {
    return null;
    }
    };

    /**
    * set
    * @param key key
    * @param val value to be stored
    * @param {int} expires hours until the localStorage expires
    */
    $delegate.set = (key, val, expires) => {
    var expiryDate = null;

    if(angular.isNumber(expires)) {
    expiryDate = Date.now() + (1000 * 60 * expires);
    originalSet(key, {
    data: val,
    expire: expiryDate
    });
    } else {
    originalSet(key, val);
    }
    };

    return $delegate;
    });
    });