tauri-settings
Version:
A user settings manager for Tauri inspired by electron-settings.
39 lines (38 loc) • 985 B
JavaScript
/**
* @internal
*/
export function getDotNotation(settings, path) {
if (typeof path !== 'string')
throw 'Error: path must be a string';
const keys = path.split('.');
let current = settings;
for (let i = 0; i < keys.length; i++) {
const key = keys[i];
if (current[key] === undefined) {
return null;
}
else {
current = current[key];
}
}
return current;
}
/**
* @internal
*/
export function setDotNotation(settings, path, value) {
if (typeof path !== 'string')
throw 'Error: path must be a string';
const keys = path.split('.');
let current = settings;
for (let i = 0; i < keys.length - 1; i++) {
const key = keys[i];
if (current[key] === undefined) {
// if a key does not exist, create it
current[key] = {};
}
current = current[key];
}
current[keys[keys.length - 1]] = value;
return settings;
}