api-data-store
Advanced tools
Comparing version 0.1.5 to 0.1.6
{ | ||
"name": "api-data-store", | ||
"version": "0.1.5", | ||
"version": "0.1.6", | ||
"description": "API Data Store", | ||
@@ -5,0 +5,0 @@ "main": "src/index.js", |
const moment = require('moment'); | ||
const get = require('lodash/get'); | ||
const localStorageDriver = require('./localStorageDriver'); | ||
const LocalStorageDriver = require('./localStorageDriver'); | ||
const MemoryStorageDriver = require('./memoryStorageDriver'); | ||
@@ -11,3 +11,3 @@ const resolver = require('./resolver'); | ||
typeof localStorage !== 'undefined' | ||
? localStorageDriver | ||
? new LocalStorageDriver() | ||
: new MemoryStorageDriver(); | ||
@@ -14,0 +14,0 @@ |
@@ -5,35 +5,42 @@ const moment = require('moment'); | ||
const PREFIX = 'api-data-store:'; | ||
const keys = []; | ||
const setItem = (key, value) => { | ||
const item = { value, timestamp: moment().unix() }; | ||
localStorage.setItem(PREFIX + key, JSON.stringify(item)); | ||
keys.push(key); | ||
}; | ||
class LocalStorageDriver { | ||
constructor() { | ||
this.keys = Object.keys(localStorage); | ||
} | ||
const getItem = key => { | ||
const item = localStorage.getItem(PREFIX + key); | ||
return attempt(JSON.parse, item); | ||
}; | ||
clear() { | ||
this.keys.forEach(key => { | ||
localStorage.removeItem(PREFIX + key); | ||
}); | ||
} | ||
const hasItem = key => { | ||
return getItem(key) !== undefined && getItem(key) !== null; | ||
}; | ||
getItem(key) { | ||
const item = localStorage.getItem(PREFIX + key); | ||
return attempt(JSON.parse, item); | ||
} | ||
const reset = () => { | ||
keys.forEach(key => { | ||
localStorage.removeItem(PREFIX + key); | ||
}); | ||
}; | ||
setItem(key, value) { | ||
const item = { value, timestamp: moment().unix() }; | ||
localStorage.setItem(PREFIX + key, JSON.stringify(item)); | ||
keys.push(key); | ||
} | ||
const getKeys = () => { | ||
return keys; | ||
}; | ||
removeItem(key) { | ||
// delete this.store[key]; | ||
} | ||
module.exports = { | ||
setItem, | ||
getItem, | ||
hasItem, | ||
reset, | ||
getKeys, | ||
}; | ||
reset() { | ||
this.clear(); | ||
} | ||
hasItem(key) { | ||
return this.getItem(key) !== undefined && this.getItem(key) !== null; | ||
} | ||
getKeys() { | ||
return this.keys; | ||
} | ||
} | ||
module.exports = LocalStorageDriver; |
8324
220