BetterDiscordApp-rauenzi/src/localstorage.js

51 lines
1.4 KiB
JavaScript

/* Localstorage fix */
export default function() {
const fs = window.require("fs");
const platform = process.platform;
const dataPath = (platform === "win32" ? process.env.APPDATA : platform === "darwin" ? process.env.HOME + "/Library/Preferences" : process.env.HOME + "/.config") + "/BetterDiscord/";
const localStorageFile = "localStorage.json";
let data = {};
if (fs.existsSync(`${dataPath}${localStorageFile}`)) {
try {
data = JSON.parse(fs.readFileSync(`${dataPath}${localStorageFile}`));
}
catch (err) {
console.log(err);
}
}
else if (fs.existsSync(localStorageFile)) {
try {
data = JSON.parse(fs.readFileSync(localStorageFile));
}
catch (err) {
console.log(err);
}
}
const storage = data;
storage.setItem = function(i, v) {
storage[i] = v;
this.save();
};
storage.getItem = function(i) {
return storage[i] || null;
};
storage.save = function() {
fs.writeFileSync(`${dataPath}${localStorageFile}`, JSON.stringify(this), null, 4);
};
const lsProxy = new Proxy(storage, {
set: function(target, name, val) {
storage[name] = val;
storage.save();
},
get: function(target, name) {
return storage[name] || null;
}
});
window.localStorage = lsProxy;
}