@pollyjs/persister-local-storage
Version:
Local storage persister for @pollyjs
70 lines (57 loc) • 1.41 kB
JavaScript
/**
* @pollyjs/persister-local-storage v6.0.6
*
* https://github.com/netflix/pollyjs
*
* Released under the Apache-2.0 License.
*/
;
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
var Persister = _interopDefault(require('@pollyjs/persister'));
const {
parse
} = JSON;
class LocalStoragePersister extends Persister {
static get id() {
return 'local-storage';
}
get defaultOptions() {
return {
key: 'pollyjs',
context: global
};
}
get localStorage() {
const {
context
} = this.options;
this.assert(`Could not find "localStorage" on the given context "${context}".`, context && context.localStorage);
return context.localStorage;
}
get db() {
const items = this.localStorage.getItem(this.options.key);
return items ? parse(items) : {};
}
set db(db) {
this.localStorage.setItem(this.options.key, this.stringify(db));
}
onFindRecording(recordingId) {
return this.db[recordingId] || null;
}
onSaveRecording(recordingId, data) {
const {
db
} = this;
db[recordingId] = data;
this.db = db;
}
onDeleteRecording(recordingId) {
const {
db
} = this;
delete db[recordingId];
this.db = db;
}
}
module.exports = LocalStoragePersister;
//# sourceMappingURL=pollyjs-persister-local-storage.js.map