common/corpus-common-addon/addon/utils/store.js
author ymh <ymh.work@gmail.com>
Tue, 27 Sep 2016 23:43:29 +0200
changeset 304 20071981ba2a
parent 182 1bcc373adabb
permissions -rw-r--r--
add location and geonames resolvers and api
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') {
182
1bcc373adabb Optimize resolver service to minimize number of requests
ymh <ymh.work@gmail.com>
parents: 127
diff changeset
     8
            expiration = constants.DEFAULT_STORE_EXP;
127
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) {
182
1bcc373adabb Optimize resolver service to minimize number of requests
ymh <ymh.work@gmail.com>
parents: 127
diff changeset
    14
        var info = store.get(key);
1bcc373adabb Optimize resolver service to minimize number of requests
ymh <ymh.work@gmail.com>
parents: 127
diff changeset
    15
        if (!info) { return null; }
1bcc373adabb Optimize resolver service to minimize number of requests
ymh <ymh.work@gmail.com>
parents: 127
diff changeset
    16
        if (new Date().getTime() - info.time > info.exp) { return null; }
1bcc373adabb Optimize resolver service to minimize number of requests
ymh <ymh.work@gmail.com>
parents: 127
diff changeset
    17
        return info.val;
127
5cd8c3065c38 extract common functionalities to common module. First application to lexvo name resolving
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
    }
182
1bcc373adabb Optimize resolver service to minimize number of requests
ymh <ymh.work@gmail.com>
parents: 127
diff changeset
    19
};