@meanie/angular-storage
Version:
An Angular service for interacting with local storage, session storage and cookie storage
80 lines (67 loc) • 1.36 kB
JavaScript
/**
* Module definition and dependencies
*/
angular.module('Storage.MemoryStorage.Service', [])
/**
* Memory storage engine service
*/
.factory('$memoryStorage', function $memoryStorage() {
/**
* Store
*/
let memoryStore = {};
/**
* Storage engine interface
*/
return {
/**
* Always supported
*/
isSupported: function() {
return true;
},
/**
* Get fallback engine
*/
getFallbackEngine: function() {
return '';
},
/**
* Set an item
*/
set: function(key, value) {
memoryStore[key] = value;
},
/**
* Get an item
*/
get: function(key) {
if (typeof memoryStore[key] === 'undefined') {
return null;
}
return memoryStore[key];
},
/**
* Remove an item
*/
remove: function(key) {
if (typeof memoryStore[key] !== 'undefined') {
delete memoryStore[key];
}
},
/**
* Clear items
*/
clear: function(prefix) {
//Get regex for prefix and keys
let prefixRegex = prefix ? new RegExp('^' + prefix) : null;
let keys = Object.keys(memoryStore);
//Loop keys
for (let k = 0; k < keys.length; k++) {
if (!prefix || prefixRegex.test(keys[k])) {
delete memoryStore[keys[k]];
}
}
},
};
});