2018-01-17 19:59:33 +02:00
|
|
|
class Cache {
|
|
|
|
|
|
|
|
async getItem(name) {
|
|
|
|
let output = null;
|
|
|
|
try {
|
|
|
|
const storage = await Cache.storage();
|
|
|
|
output = await storage.getItem(name);
|
|
|
|
} catch (error) {
|
|
|
|
console.info(error);
|
|
|
|
// Defaults to returning null
|
|
|
|
}
|
|
|
|
return output;
|
|
|
|
}
|
|
|
|
|
|
|
|
async setItem(name, value, ttl = null) {
|
|
|
|
try {
|
|
|
|
const storage = await Cache.storage();
|
|
|
|
const options = {};
|
|
|
|
if (ttl !== null) options.ttl = ttl;
|
|
|
|
await storage.setItem(name, value, options);
|
|
|
|
} catch (error) {
|
|
|
|
// Defaults to not saving to cache
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
Cache.storage = async function() {
|
|
|
|
if (Cache.storage_) return Cache.storage_;
|
|
|
|
Cache.storage_ = require('node-persist');
|
2018-02-23 21:32:19 +02:00
|
|
|
await Cache.storage_.init({ dir: require('os').tmpdir() + '/joplin-cache', ttl: 1000 * 60 });
|
2018-01-17 19:59:33 +02:00
|
|
|
return Cache.storage_;
|
|
|
|
}
|
|
|
|
|
|
|
|
module.exports = Cache;
|