Published
Edited
May 3, 2019
2 forks
Importers
51 stars
Insert cell
Insert cell
localStorage = {
try {
const storage = window.localStorage;
const key = "__storage_test__";
storage.setItem(key, key);
storage.removeItem(key);
return storage;
} catch (error) {
return new MemoryStorage;
}
}
Insert cell
class MemoryStorage {
constructor() {
Object.defineProperties(this, {_: {value: new Map}});
}
get length() {
return this._.size;
}
key(index) {
return Array.from(this._.keys())[index | 0];
}
getItem(key) {
return this._.has(key += "") ? this._.get(key) : null;
}
setItem(key, value) {
this._.set(key + "", value + "");
}
removeItem(key) {
this._.delete(key + "");
}
clear() {
this._.clear();
}
}
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more