[TASK] Split `Storage` module
[Packages/TYPO3.CMS.git] / typo3 / sysext / backend / Resources / Private / TypeScript / Storage / Client.ts
1 /*
2  * This file is part of the TYPO3 CMS project.
3  *
4  * It is free software; you can redistribute it and/or modify it under
5  * the terms of the GNU General Public License, either version 2
6  * of the License, or any later version.
7  *
8  * For the full copyright and license information, please read the
9  * LICENSE.txt file that was distributed with this source code.
10  *
11  * The TYPO3 project - inspiring people to share!
12  */
13
14 /**
15  * Module: TYPO3/CMS/Backend/Storage/Client
16  * Wrapper for localStorage
17  * @exports TYPO3/CMS/Backend/Storage/Client
18  */
19 class Client {
20   /**
21    * Simple localStorage wrapper, to get value from localStorage
22    * @param {string} key
23    * @returns {string}
24    */
25   public get = (key: string): string => {
26     return localStorage.getItem('t3-' + key);
27   }
28
29   /**
30    * Simple localStorage wrapper, to set value from localStorage
31    *
32    * @param {string} key
33    * @param {string} value
34    * @returns {string}
35    */
36   public set = (key: string, value: string): void => {
37     localStorage.setItem('t3-' + key, value);
38   }
39
40   /**
41    * Simple localStorage wrapper, to unset value from localStorage
42    *
43    * @param {string} key
44    */
45   public unset = (key: string): void => {
46     localStorage.removeItem('t3-' + key);
47   }
48
49   /**
50    * Simple localStorage wrapper, to clear localStorage
51    */
52   public clear = (): void => {
53     localStorage.clear();
54   }
55
56   /**
57    * Checks if a key was set before, useful to not do all the undefined checks all the time
58    *
59    * @param {string} key
60    * @returns {boolean}
61    */
62   public isset = (key: string): boolean => {
63     const value = this.get(key);
64     return (typeof value !== 'undefined' && value !== null);
65   }
66 }
67
68 export = new Client();