diff --git a/src/helpers/IStorageManager.ts b/src/helpers/IStorageManager.ts new file mode 100644 index 0000000..f738c08 --- /dev/null +++ b/src/helpers/IStorageManager.ts @@ -0,0 +1,7 @@ +interface IStorageManager { + getItem(key: string): T | null; + setItem(key: string, value: T): void; + removeItem(key: string): void; +} + +export default IStorageManager; \ No newline at end of file diff --git a/src/helpers/LocalStorageManager.ts b/src/helpers/LocalStorageManager.ts new file mode 100644 index 0000000..a701a90 --- /dev/null +++ b/src/helpers/LocalStorageManager.ts @@ -0,0 +1,20 @@ +import IStorageManager from "./IStorageManager.ts"; + +class LocalStorageManager implements IStorageManager { + setItem = (key: string, value: T): void => { + localStorage.setItem(key, JSON.stringify(value)); + } + + getItem = (key: string): T | null => { + const value = localStorage.getItem(key); + if (value === null) + return value; + return JSON.parse(value); + } + + removeItem = (key: string): void => { + localStorage.removeItem(key); + } +} + +export default LocalStorageManager; \ No newline at end of file