Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/betaflight/betaflight-configurator.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/js/SessionStorage.js')
-rw-r--r--src/js/SessionStorage.js45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/js/SessionStorage.js b/src/js/SessionStorage.js
new file mode 100644
index 00000000..b25f395e
--- /dev/null
+++ b/src/js/SessionStorage.js
@@ -0,0 +1,45 @@
+'use strict';
+
+const SessionStorage = {
+ // key can be one string, or array of strings
+ get: function(key) {
+ let result = {};
+ if (Array.isArray(key)) {
+ key.forEach(function (element) {
+ try {
+ result = {...result, ...JSON.parse(sessionStorage.getItem(element))};
+ } catch (e) {
+ console.error(e);
+ }
+ });
+ } else {
+ const keyValue = sessionStorage.getItem(key);
+ if (keyValue) {
+ try {
+ result = JSON.parse(keyValue);
+ } catch (e) {
+ console.error(e);
+ }
+ }
+ }
+
+ return result;
+ },
+ set: function(input) {
+ Object.keys(input).forEach(function (element) {
+ const tmpObj = {};
+ tmpObj[element] = input[element];
+ try {
+ sessionStorage.setItem(element, JSON.stringify(tmpObj));
+ } catch (e) {
+ console.error(e);
+ }
+ });
+ },
+ remove: function(item) {
+ sessionStorage.removeItem(item);
+ },
+ clear: function() {
+ sessionStorage.clear();
+ },
+};