all files / src/ drivers.ts

100% Statements 12/12
100% Branches 0/0
100% Functions 5/5
100% Lines 12/12
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19      16×     20×    
import { StorageDriver } from './interfaces'
export default class StroageDriverImpl implements StorageDriver {
	private storage
	constructor(storage: Storage) {
		this.storage = storage
	}
	set(key: string, value: any) {
		this.storage.setItem(key, JSON.stringify(value))
	}
	get(key: string) {
		return JSON.parse(this.storage.getItem(key))
	}
	has(key: string) {
		return !!this.storage.getItem(key)
	}
}
export const localStorage = new StroageDriverImpl(window.localStorage)
export const sessionStorage = new StroageDriverImpl(window.sessionStorage)