diff --git a/html/src/app.js b/html/src/app.js
index e79186f7..9fc4a36b 100644
--- a/html/src/app.js
+++ b/html/src/app.js
@@ -1084,7 +1084,7 @@ window.configRepository = configRepository;
ref
});
}
- sharedRepository.set('current_user_status', ref.status);
+ sharedRepository.setString('current_user_status', ref.status);
return ref;
};
diff --git a/html/src/repository/config.js b/html/src/repository/config.js
index 5c5b87ef..4ad7e7c9 100644
--- a/html/src/repository/config.js
+++ b/html/src/repository/config.js
@@ -1,19 +1,37 @@
import sqlite from '../sqlite.js';
-import sharedRepository from './shared.js';
+import sharedRepository, { SharedRepository } from './shared.js';
var dirtyKeySet = new Set();
-async function init() {
- try {
- await sqlite.executeNonQuery('CREATE TABLE IF NOT EXISTS configs (`key` TEXT PRIMARY KEY, `value` TEXT)');
- await sqlite.execute(
- (key, value) => sharedRepository.set(key, value),
- 'SELECT `key`, `value` FROM configs'
- );
- } catch (err) {
- console.error(err);
+class ConfigRepository extends SharedRepository {
+ async init() {
+ try {
+ await sqlite.executeNonQuery('CREATE TABLE IF NOT EXISTS configs (`key` TEXT PRIMARY KEY, `value` TEXT)');
+ await sqlite.execute(
+ (key, value) => sharedRepository.setString(key, value),
+ 'SELECT `key`, `value` FROM configs'
+ );
+ } catch (err) {
+ console.error(err);
+ }
+ syncLoop();
}
- syncLoop();
+
+ getString(key, defaultValue = null) {
+ key = transformKey(key);
+ return sharedRepository.getString(key, defaultValue);
+ }
+
+ setString(key, value) {
+ key = transformKey(key);
+ value = String(value);
+ sharedRepository.setString(key, value);
+ dirtyKeySet.add(key);
+ }
+}
+
+function transformKey(key) {
+ return `config:${String(key).toLowerCase()}`;
}
async function syncLoop() {
@@ -41,109 +59,9 @@ async function syncLoop() {
setTimeout(syncLoop, 100);
}
-function transformKey(key) {
- return `config:${String(key).toLowerCase()}`;
-}
+var self = new ConfigRepository();
-function get(key, defaultValue = null) {
- key = transformKey(key);
- return sharedRepository.get(key, defaultValue);
-}
-
-function set(key, value) {
- key = transformKey(key);
- value = String(value);
- sharedRepository.set(key, value);
- dirtyKeySet.add(key);
-}
-
-function getBool(key, defaultValue = null) {
- var value = get(key, null);
- if (value === null) {
- return defaultValue;
- }
- return value === 'true';
-}
-
-function setBool(key, value) {
- set(key, value ? 'true' : 'false');
-}
-
-function getInt(key, defaultValue = null) {
- var value = get(key, null);
- if (value === null) {
- return defaultValue;
- }
- value = parseInt(value, 10);
- if (isNaN(value) === true) {
- return defaultValue;
- }
- return value;
-}
-
-function setInt(key, value) {
- set(key, value);
-}
-
-function getFloat(key, defaultValue = null) {
- var value = get(key, null);
- if (value === null) {
- return defaultValue;
- }
- value = parseFloat(value);
- if (isNaN(value) === true) {
- return defaultValue;
- }
- return value;
-}
-
-function setFloat(key, value) {
- set(key, value);
-}
-
-function getObject(key, defaultValue = null) {
- var value = get(key, null);
- if (value === null) {
- return defaultValue;
- }
- try {
- value = JSON.parse(value);
- } catch (err) {
- }
- if (value !== Object(value)) {
- return defaultValue;
- }
- return value;
-}
-
-function setObject(key, value) {
- set(key, JSON.stringify(value));
-}
-
-function getArray(key, defaultValue = null) {
- var value = getObject(key, null);
- if (Array.isArray(value) === false) {
- return defaultValue;
- }
- return value;
-}
-
-function setArray(key, value) {
- setObject(key, value);
-}
-
-export default {
- init,
- get,
- set,
- getBool,
- setBool,
- getInt,
- setInt,
- getFloat,
- setFloat,
- getObject,
- setObject,
- getArray,
- setArray
+export {
+ self as default,
+ ConfigRepository
};
diff --git a/html/src/repository/shared.js b/html/src/repository/shared.js
index 4d5f78fb..caa931f1 100644
--- a/html/src/repository/shared.js
+++ b/html/src/repository/shared.js
@@ -1,110 +1,104 @@
// requires binding of SharedVariable
+class SharedRepository {
+ getString(key, defaultValue = null) {
+ key = transformKey(key);
+ var value = SharedVariable.Get(key);
+ if (value === undefined) {
+ return defaultValue;
+ }
+ return value;
+ }
+
+ setString(key, value) {
+ key = transformKey(key);
+ value = String(value);
+ SharedVariable.Set(key, value);
+ }
+
+ getBool(key, defaultValue = null) {
+ var value = this.getString(key, null);
+ if (value === null) {
+ return defaultValue;
+ }
+ return value === 'true';
+ }
+
+ setBool(key, value) {
+ this.setString(key, value ? 'true' : 'false');
+ }
+
+ getInt(key, defaultValue = null) {
+ var value = this.getString(key, null);
+ if (value === null) {
+ return defaultValue;
+ }
+ value = parseInt(value, 10);
+ if (isNaN(value) === true) {
+ return defaultValue;
+ }
+ return value;
+ }
+
+ setInt(key, value) {
+ this.setString(key, value);
+ }
+
+ getFloat(key, defaultValue = null) {
+ var value = this.getString(key, null);
+ if (value === null) {
+ return defaultValue;
+ }
+ value = parseFloat(value);
+ if (isNaN(value) === true) {
+ return defaultValue;
+ }
+ return value;
+ }
+
+ setFloat(key, value) {
+ this.setString(key, value);
+ }
+
+ getObject(key, defaultValue = null) {
+ var value = this.getString(key, null);
+ if (value === null) {
+ return defaultValue;
+ }
+ try {
+ value = JSON.parse(value);
+ } catch (err) {
+ }
+ if (value !== Object(value)) {
+ return defaultValue;
+ }
+ return value;
+ }
+
+ setObject(key, value) {
+ this.setString(key, JSON.stringify(value));
+ }
+
+ getArray(key, defaultValue = null) {
+ var value = this.getObject(key, null);
+ if (Array.isArray(value) === false) {
+ return defaultValue;
+ }
+ return value;
+ }
+
+ setArray(key, value) {
+ this.setObject(key, value);
+ }
+};
+
function transformKey(key) {
return String(key).toLowerCase();
}
-function get(key, defaultValue = null) {
- key = transformKey(key);
- var value = SharedVariable.Get(key);
- if (value === undefined) {
- return defaultValue;
- }
- return value;
-}
+var self = new SharedRepository();
-function set(key, value) {
- key = transformKey(key);
- value = String(value);
- SharedVariable.Set(key, value);
-}
-
-function getBool(key, defaultValue = null) {
- var value = get(key, null);
- if (value === null) {
- return defaultValue;
- }
- return value === 'true';
-}
-
-function setBool(key, value) {
- set(key, value ? 'true' : 'false');
-}
-
-function getInt(key, defaultValue = null) {
- var value = get(key, null);
- if (value === null) {
- return defaultValue;
- }
- value = parseInt(value, 10);
- if (isNaN(value) === true) {
- return defaultValue;
- }
- return value;
-}
-
-function setInt(key, value) {
- set(key, value);
-}
-
-function getFloat(key, defaultValue = null) {
- var value = get(key, null);
- if (value === null) {
- return defaultValue;
- }
- value = parseFloat(value);
- if (isNaN(value) === true) {
- return defaultValue;
- }
- return value;
-}
-
-function setFloat(key, value) {
- set(key, value);
-}
-
-function getObject(key, defaultValue = null) {
- var value = get(key, null);
- if (value === null) {
- return defaultValue;
- }
- try {
- value = JSON.parse(value);
- } catch (err) {
- }
- if (value !== Object(value)) {
- return defaultValue;
- }
- return value;
-}
-
-function setObject(key, value) {
- set(key, JSON.stringify(value));
-}
-
-function getArray(key, defaultValue = null) {
- var value = getObject(key, null);
- if (Array.isArray(value) === false) {
- return defaultValue;
- }
- return value;
-}
-
-function setArray(key, value) {
- setObject(key, value);
-}
-
-export default {
- get,
- set,
- getBool,
- setBool,
- getInt,
- setInt,
- getFloat,
- setFloat,
- getObject,
- setObject,
- getArray,
- setArray
+export {
+ self as default,
+ SharedRepository
};
diff --git a/html/src/vr.js b/html/src/vr.js
index 40daad57..cbe16a1e 100644
--- a/html/src/vr.js
+++ b/html/src/vr.js
@@ -615,7 +615,7 @@ window.configRepository = configRepository;
$app.methods.updateLoop = async function () {
try {
this.currentTime = new Date().toJSON();
- this.currentUserStatus = sharedRepository.get('current_user_status');
+ this.currentUserStatus = sharedRepository.getString('current_user_status');
if (configRepository.getBool('VRCX_hideDevicesFromFeed') === false) {
VRCX.GetVRDevices().then((devices) => {
devices.forEach((device) => {