mirror of
https://github.com/iNavFlight/inav-configurator.git
synced 2025-07-24 16:55:22 +03:00
Cache settings in local storage
This commit is contained in:
parent
b1f5f3210b
commit
e1c302438b
3 changed files with 53 additions and 6 deletions
46
js/settingsCache.js
Normal file
46
js/settingsCache.js
Normal file
|
@ -0,0 +1,46 @@
|
|||
'use strict';
|
||||
|
||||
const Store = require('electron-store');
|
||||
const store = new Store();
|
||||
const FC = require('./fc');
|
||||
|
||||
var settingsCache = (function() {
|
||||
|
||||
let publicScope = {};
|
||||
let privateScope = {};
|
||||
|
||||
const SETTINGS_KEY = 'settings';
|
||||
|
||||
privateScope.getSetingKey = function(settingName) {
|
||||
return FC.CONFIG.target + '_' + FC.CONFIG.flightControllerVersion + '_' + settingName;
|
||||
}
|
||||
|
||||
publicScope.flush = function() {
|
||||
store.delete(SETTINGS_KEY);
|
||||
};
|
||||
|
||||
publicScope.get = function(settingName) {
|
||||
let settings = store.get(SETTINGS_KEY, null);
|
||||
|
||||
if (settings === null) {
|
||||
return undefined;
|
||||
}
|
||||
let setting = settings[privateScope.getSetingKey(settingName)];
|
||||
return setting;
|
||||
};
|
||||
|
||||
publicScope.set = function(settingName, value) {
|
||||
let settings = store.get(SETTINGS_KEY, null);
|
||||
|
||||
if (settings === null) {
|
||||
settings = {};
|
||||
}
|
||||
|
||||
settings[privateScope.getSetingKey(settingName)] = value;
|
||||
store.set(SETTINGS_KEY, settings);
|
||||
};
|
||||
|
||||
return publicScope;
|
||||
}());
|
||||
|
||||
module.exports = settingsCache;
|
Loading…
Add table
Add a link
Reference in a new issue