UNPKG

@pollyjs/persister-local-storage

Version:

Local storage persister for @pollyjs

70 lines (57 loc) 1.41 kB
/** * @pollyjs/persister-local-storage v6.0.6 * * https://github.com/netflix/pollyjs * * Released under the Apache-2.0 License. */ 'use strict'; 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