Allow RED.settings.get/set to use full property desc

This commit is contained in:
Nick O'Leary
2019-05-21 17:19:12 +01:00
parent 5cb888328e
commit afa25df1af
2 changed files with 69 additions and 3 deletions

View File

@@ -37,7 +37,7 @@ RED.settings = (function () {
if (key === "auth-tokens") {
localStorage.setItem(key, JSON.stringify(value));
} else {
userSettings[key] = value;
RED.utils.setMessageProperty(userSettings,key,value);
saveUserSettings();
}
};
@@ -46,16 +46,25 @@ RED.settings = (function () {
* If the key is not set in the localStorage it returns <i>undefined</i>
* Else return the JSON parsed value
* @param key
* @param defaultIfUndefined
* @returns {*}
*/
var get = function (key) {
var get = function (key,defaultIfUndefined) {
if (!hasLocalStorage()) {
return undefined;
}
if (key === "auth-tokens") {
return JSON.parse(localStorage.getItem(key));
} else {
return userSettings[key];
try {
var v = RED.utils.getMessageProperty(userSettings,key);
if (v === undefined) {
v = defaultIfUndefined;
}
} catch(err) {
v = defaultIfUndefined;
}
return v;
}
};