Skip to content

Instantly share code, notes, and snippets.

@davidbgk
Forked from DavidBruant/remember.js
Created March 3, 2016 20:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save davidbgk/bc8b5cd960db2d88e014 to your computer and use it in GitHub Desktop.
Save davidbgk/bc8b5cd960db2d88e014 to your computer and use it in GitHub Desktop.
Remember.js
"use strict";
function remember(...args){
const [key, value] = args;
if(args.length === 1){ // recall
return new Promise(resolve => {
setTimeout(() => {
const val = localStorage.getItem(key);
try{ resolve(JSON.parse(val)) }
catch(e){ resolve(val); }
})
});
}
if(args.length === 2){ // retain
return new Promise( (resolve, reject) => {
setTimeout(() => {
let toStore = value;
try{ if(Object(value) === value) toStore = JSON.stringify(value); }
catch(e){ reject(e) }
try{
localStorage.setItem(key, toStore);
resolve(key);
}
catch(e){ reject(e); }
})
});
}
}
function forget(key){
return new Promise( (resolve, reject) => {
setTimeout(() => {
try{
resolve(localStorage.removeItem(key))
}
catch(e){
reject(e);
}
})
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment