common/corpus-common-addon/addon/utils/store.js
author ymh <ymh.work@gmail.com>
Thu, 03 Mar 2016 17:34:12 +0100
changeset 137 1baa7c6bd370
parent 127 5cd8c3065c38
child 182 1bcc373adabb
permissions -rw-r--r--
add subject edition
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
127
5cd8c3065c38 extract common functionalities to common module. First application to lexvo name resolving
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
import store from 'store';
5cd8c3065c38 extract common functionalities to common module. First application to lexvo name resolving
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
import * as constants from 'corpus-common-addon/utils/constants';
5cd8c3065c38 extract common functionalities to common module. First application to lexvo name resolving
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
5cd8c3065c38 extract common functionalities to common module. First application to lexvo name resolving
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
export default {
5cd8c3065c38 extract common functionalities to common module. First application to lexvo name resolving
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
    set: function(key, val, exp) {
5cd8c3065c38 extract common functionalities to common module. First application to lexvo name resolving
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
        var expiration = exp;
5cd8c3065c38 extract common functionalities to common module. First application to lexvo name resolving
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
        if(typeof exp === 'undefined') {
5cd8c3065c38 extract common functionalities to common module. First application to lexvo name resolving
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
          expiration = constants.DEFAULT_STORE_EXP;
5cd8c3065c38 extract common functionalities to common module. First application to lexvo name resolving
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
        }
5cd8c3065c38 extract common functionalities to common module. First application to lexvo name resolving
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
        store.set(key, { val:val, exp:expiration, time:new Date().getTime() });
5cd8c3065c38 extract common functionalities to common module. First application to lexvo name resolving
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
        return val;
5cd8c3065c38 extract common functionalities to common module. First application to lexvo name resolving
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
    },
5cd8c3065c38 extract common functionalities to common module. First application to lexvo name resolving
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
    get: function(key) {
5cd8c3065c38 extract common functionalities to common module. First application to lexvo name resolving
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
        var info = store.get(key)
5cd8c3065c38 extract common functionalities to common module. First application to lexvo name resolving
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
        if (!info) { return null }
5cd8c3065c38 extract common functionalities to common module. First application to lexvo name resolving
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
        if (new Date().getTime() - info.time > info.exp) { return null }
5cd8c3065c38 extract common functionalities to common module. First application to lexvo name resolving
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
        return info.val
5cd8c3065c38 extract common functionalities to common module. First application to lexvo name resolving
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
    }
5cd8c3065c38 extract common functionalities to common module. First application to lexvo name resolving
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
}