Replace electron-config with electron-store. (#813)

This commit is contained in:
Daniele Basso 2023-10-23 06:43:18 +00:00 committed by GitHub
parent 62ab9f33be
commit 9dd8275be1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 271 additions and 277 deletions

@ -2,8 +2,8 @@
const http = require("http"); const http = require("http");
const crypto = require("crypto"); const crypto = require("crypto");
const log = require("electron-log"); const log = require("electron-log");
const Config = require("electron-config"); const Store = require("electron-store");
const config = new Config(); const store = new Store();
let server; let server;
let window; let window;
@ -100,7 +100,7 @@ async function initialize(win) {
}); });
}); });
const autostart = config.get("autostart", false); const autostart = store.get("autostart", false);
if (autostart) { if (autostart) {
try { try {
await enable(); await enable();
@ -118,8 +118,8 @@ function enable() {
return Promise.resolve(); return Promise.resolve();
} }
const port = config.get("port", 9990); const port = store.get("port", 9990);
const host = config.get("host", "127.0.0.1"); const host = store.get("host", "127.0.0.1");
log.log(`Starting http server on port ${port} - listening on ${host}`); log.log(`Starting http server on port ${port} - listening on ${host}`);
// https://stackoverflow.com/a/62289870 // https://stackoverflow.com/a/62289870
@ -165,20 +165,20 @@ function isListening() {
function toggleAutostart() { function toggleAutostart() {
const newValue = !isAutostart(); const newValue = !isAutostart();
config.set("autostart", newValue); store.set("autostart", newValue);
log.log(`New autostart value is '${newValue}'`); log.log(`New autostart value is '${newValue}'`);
} }
function isAutostart() { function isAutostart() {
return config.get("autostart"); return store.get("autostart");
} }
function getAuthenticationToken() { function getAuthenticationToken() {
const token = config.get("token"); const token = store.get("token");
if (token) return token; if (token) return token;
const newToken = generateToken(); const newToken = generateToken();
config.set("token", newToken); store.set("token", newToken);
return newToken; return newToken;
} }

@ -9,13 +9,13 @@ const achievements = require("./achievements");
const utils = require("./utils"); const utils = require("./utils");
const storage = require("./storage"); const storage = require("./storage");
const debounce = require("lodash/debounce"); const debounce = require("lodash/debounce");
const Config = require("electron-config"); const Store = require("electron-store");
const config = new Config(); const store = new Store();
const path = require("path"); const path = require("path");
const { fileURLToPath } = require("url"); const { fileURLToPath } = require("url");
log.transports.file.level = config.get("file-log-level", "info"); log.transports.file.level = store.get("file-log-level", "info");
log.transports.console.level = config.get("console-log-level", "debug"); log.transports.console.level = store.get("console-log-level", "debug");
log.catchErrors(); log.catchErrors();
log.info(`Started app: ${JSON.stringify(process.argv)}`); log.info(`Started app: ${JSON.stringify(process.argv)}`);
@ -105,7 +105,7 @@ function setStopProcessHandler(app, window) {
window.gameInfo = { ...arg }; window.gameInfo = { ...arg };
await storage.prepareSaveFolders(window); await storage.prepareSaveFolders(window);
const restoreNewest = config.get("onload-restore-newest", true); const restoreNewest = store.get("onload-restore-newest", true);
if (restoreNewest && !isRestoreDisabled) { if (restoreNewest && !isRestoreDisabled) {
try { try {
await storage.restoreIfNewerExists(window); await storage.restoreIfNewerExists(window);
@ -159,7 +159,7 @@ function setStopProcessHandler(app, window) {
utils.writeToast(window, "Could not save to Steam Cloud.", "error", 5000); utils.writeToast(window, "Could not save to Steam Cloud.", "error", 5000);
} }
}, },
config.get("cloud-save-min-time", 1000 * 60 * 15), store.get("cloud-save-min-time", 1000 * 60 * 15),
{ leading: true }, { leading: true },
); );
@ -174,7 +174,7 @@ function setStopProcessHandler(app, window) {
utils.writeToast(window, "Could not save to disk", "error", 5000); utils.writeToast(window, "Could not save to disk", "error", 5000);
} }
}, },
config.get("disk-save-min-time", 1000 * 60 * 5), store.get("disk-save-min-time", 1000 * 60 * 5),
{ leading: true }, { leading: true },
); );

@ -1,11 +1,11 @@
/* eslint-disable @typescript-eslint/no-var-requires */ /* eslint-disable @typescript-eslint/no-var-requires */
const { app, Menu, clipboard, dialog, shell } = require("electron"); const { app, Menu, clipboard, dialog, shell } = require("electron");
const log = require("electron-log"); const log = require("electron-log");
const Config = require("electron-config"); const Store = require("electron-store");
const api = require("./api-server"); const api = require("./api-server");
const utils = require("./utils"); const utils = require("./utils");
const storage = require("./storage"); const storage = require("./storage");
const config = new Config(); const store = new Store();
function getMenu(window) { function getMenu(window) {
const canZoomIn = utils.getZoomFactor() <= 2; const canZoomIn = utils.getZoomFactor() <= 2;
@ -153,9 +153,9 @@ function getMenu(window) {
{ {
label: "Restore Newest on Load", label: "Restore Newest on Load",
type: "checkbox", type: "checkbox",
checked: config.get("onload-restore-newest", true), checked: store.get("onload-restore-newest", true),
click: (menuItem) => { click: (menuItem) => {
config.set("onload-restore-newest", menuItem.checked); store.set("onload-restore-newest", menuItem.checked);
utils.writeToast( utils.writeToast(
window, window,
`${menuItem.checked ? "Enabled" : "Disabled"} Restore Newest on Load`, `${menuItem.checked ? "Enabled" : "Disabled"} Restore Newest on Load`,

@ -1,51 +1,106 @@
{ {
"name": "bitburner", "name": "bitburner",
"version": "2.5.1", "version": "2.5.1",
"lockfileVersion": 2, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "bitburner", "name": "bitburner",
"version": "2.5.1", "version": "2.5.1",
"dependencies": { "dependencies": {
"electron-config": "^2.0.0",
"electron-log": "^4.4.8", "electron-log": "^4.4.8",
"electron-store": "^8.1.0",
"lodash": "^4.17.21" "lodash": "^4.17.21"
} }
}, },
"node_modules/conf": { "node_modules/ajv": {
"version": "1.4.0", "version": "8.12.0",
"resolved": "https://registry.npmjs.org/conf/-/conf-1.4.0.tgz", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
"integrity": "sha512-bzlVWS2THbMetHqXKB8ypsXN4DQ/1qopGwNJi1eYbpwesJcd86FBjFciCQX/YwAhp9bM7NVnPFqZ5LpV7gP0Dg==", "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
"dependencies": { "dependencies": {
"dot-prop": "^4.1.0", "fast-deep-equal": "^3.1.1",
"env-paths": "^1.0.0", "json-schema-traverse": "^1.0.0",
"make-dir": "^1.0.0", "require-from-string": "^2.0.2",
"pkg-up": "^2.0.0", "uri-js": "^4.2.2"
"write-file-atomic": "^2.3.0" },
"funding": {
"type": "github",
"url": "https://github.com/sponsors/epoberezkin"
}
},
"node_modules/ajv-formats": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
"integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
"dependencies": {
"ajv": "^8.0.0"
},
"peerDependencies": {
"ajv": "^8.0.0"
},
"peerDependenciesMeta": {
"ajv": {
"optional": true
}
}
},
"node_modules/atomically": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz",
"integrity": "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==",
"engines": {
"node": ">=10.12.0"
}
},
"node_modules/conf": {
"version": "10.2.0",
"resolved": "https://registry.npmjs.org/conf/-/conf-10.2.0.tgz",
"integrity": "sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg==",
"dependencies": {
"ajv": "^8.6.3",
"ajv-formats": "^2.1.1",
"atomically": "^1.7.0",
"debounce-fn": "^4.0.0",
"dot-prop": "^6.0.1",
"env-paths": "^2.2.1",
"json-schema-typed": "^7.0.3",
"onetime": "^5.1.2",
"pkg-up": "^3.1.0",
"semver": "^7.3.5"
}, },
"engines": { "engines": {
"node": ">=4" "node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/debounce-fn": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz",
"integrity": "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==",
"dependencies": {
"mimic-fn": "^3.0.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/dot-prop": { "node_modules/dot-prop": {
"version": "4.2.1", "version": "6.0.1",
"resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz",
"integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==", "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==",
"dependencies": { "dependencies": {
"is-obj": "^1.0.0" "is-obj": "^2.0.0"
}, },
"engines": { "engines": {
"node": ">=4" "node": ">=10"
} },
}, "funding": {
"node_modules/electron-config": { "url": "https://github.com/sponsors/sindresorhus"
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/electron-config/-/electron-config-2.0.0.tgz",
"integrity": "sha512-5mGwRK4lsAo6tiy4KNF/zUInYpUGr7JJzLA8FHOoqBWV3kkKJWSrDXo4Uk2Ffm5aeQ1o73XuorfkYhaWFV2O4g==",
"deprecated": "Renamed to `electron-store`.",
"dependencies": {
"conf": "^1.0.0"
} }
}, },
"node_modules/electron-log": { "node_modules/electron-log": {
@ -53,56 +108,70 @@
"resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.4.8.tgz", "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.4.8.tgz",
"integrity": "sha512-QQ4GvrXO+HkgqqEOYbi+DHL7hj5JM+nHi/j+qrN9zeeXVKy8ZABgbu4CnG+BBqDZ2+tbeq9tUC4DZfIWFU5AZA==" "integrity": "sha512-QQ4GvrXO+HkgqqEOYbi+DHL7hj5JM+nHi/j+qrN9zeeXVKy8ZABgbu4CnG+BBqDZ2+tbeq9tUC4DZfIWFU5AZA=="
}, },
"node_modules/env-paths": { "node_modules/electron-store": {
"version": "1.0.0", "version": "8.1.0",
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz", "resolved": "https://registry.npmjs.org/electron-store/-/electron-store-8.1.0.tgz",
"integrity": "sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA=", "integrity": "sha512-2clHg/juMjOH0GT9cQ6qtmIvK183B39ZXR0bUoPwKwYHJsEF3quqyDzMFUAu+0OP8ijmN2CbPRAelhNbWUbzwA==",
"engines": { "dependencies": {
"node": ">=4" "conf": "^10.2.0",
"type-fest": "^2.17.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/env-paths": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
"integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
"engines": {
"node": ">=6"
}
},
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
},
"node_modules/find-up": { "node_modules/find-up": {
"version": "2.1.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
"integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
"dependencies": { "dependencies": {
"locate-path": "^2.0.0" "locate-path": "^3.0.0"
}, },
"engines": { "engines": {
"node": ">=4" "node": ">=6"
}
},
"node_modules/graceful-fs": {
"version": "4.2.8",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
"integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg=="
},
"node_modules/imurmurhash": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
"engines": {
"node": ">=0.8.19"
} }
}, },
"node_modules/is-obj": { "node_modules/is-obj": {
"version": "1.0.1", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
"integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
"engines": { "engines": {
"node": ">=0.10.0" "node": ">=8"
} }
}, },
"node_modules/json-schema-traverse": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
},
"node_modules/json-schema-typed": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz",
"integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A=="
},
"node_modules/locate-path": { "node_modules/locate-path": {
"version": "2.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
"integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
"dependencies": { "dependencies": {
"p-locate": "^2.0.0", "p-locate": "^3.0.0",
"path-exists": "^3.0.0" "path-exists": "^3.0.0"
}, },
"engines": { "engines": {
"node": ">=4" "node": ">=6"
} }
}, },
"node_modules/lodash": { "node_modules/lodash": {
@ -110,227 +179,152 @@
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
}, },
"node_modules/make-dir": { "node_modules/lru-cache": {
"version": "1.3.0", "version": "6.0.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dependencies": { "dependencies": {
"pify": "^3.0.0" "yallist": "^4.0.0"
}, },
"engines": { "engines": {
"node": ">=4" "node": ">=10"
}
},
"node_modules/mimic-fn": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz",
"integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==",
"engines": {
"node": ">=8"
}
},
"node_modules/onetime": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
"integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
"dependencies": {
"mimic-fn": "^2.1.0"
},
"engines": {
"node": ">=6"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/onetime/node_modules/mimic-fn": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
"integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
"engines": {
"node": ">=6"
} }
}, },
"node_modules/p-limit": { "node_modules/p-limit": {
"version": "1.3.0", "version": "2.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
"integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dependencies": { "dependencies": {
"p-try": "^1.0.0" "p-try": "^2.0.0"
}, },
"engines": { "engines": {
"node": ">=4" "node": ">=6"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/p-locate": { "node_modules/p-locate": {
"version": "2.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
"integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
"dependencies": { "dependencies": {
"p-limit": "^1.1.0" "p-limit": "^2.0.0"
}, },
"engines": { "engines": {
"node": ">=4" "node": ">=6"
} }
}, },
"node_modules/p-try": { "node_modules/p-try": {
"version": "1.0.0", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
"integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
"engines": { "engines": {
"node": ">=4" "node": ">=6"
} }
}, },
"node_modules/path-exists": { "node_modules/path-exists": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
"engines": {
"node": ">=4"
}
},
"node_modules/pify": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
"engines": { "engines": {
"node": ">=4" "node": ">=4"
} }
}, },
"node_modules/pkg-up": { "node_modules/pkg-up": {
"version": "2.0.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz",
"integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==",
"dependencies": { "dependencies": {
"find-up": "^2.1.0" "find-up": "^3.0.0"
}, },
"engines": { "engines": {
"node": ">=4" "node": ">=8"
} }
}, },
"node_modules/signal-exit": { "node_modules/punycode": {
"version": "3.0.6", "version": "2.3.0",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
"integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==" "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
"engines": {
"node": ">=6"
}
}, },
"node_modules/write-file-atomic": { "node_modules/require-from-string": {
"version": "2.4.3", "version": "2.0.2",
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
"integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/semver": {
"version": "7.5.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
"dependencies": { "dependencies": {
"graceful-fs": "^4.1.11", "lru-cache": "^6.0.0"
"imurmurhash": "^0.1.4", },
"signal-exit": "^3.0.2" "bin": {
} "semver": "bin/semver.js"
} },
}, "engines": {
"dependencies": { "node": ">=10"
"conf": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/conf/-/conf-1.4.0.tgz",
"integrity": "sha512-bzlVWS2THbMetHqXKB8ypsXN4DQ/1qopGwNJi1eYbpwesJcd86FBjFciCQX/YwAhp9bM7NVnPFqZ5LpV7gP0Dg==",
"requires": {
"dot-prop": "^4.1.0",
"env-paths": "^1.0.0",
"make-dir": "^1.0.0",
"pkg-up": "^2.0.0",
"write-file-atomic": "^2.3.0"
} }
}, },
"dot-prop": { "node_modules/type-fest": {
"version": "4.2.1", "version": "2.19.0",
"resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
"integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==", "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
"requires": { "engines": {
"is-obj": "^1.0.0" "node": ">=12.20"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"electron-config": { "node_modules/uri-js": {
"version": "2.0.0", "version": "4.4.1",
"resolved": "https://registry.npmjs.org/electron-config/-/electron-config-2.0.0.tgz", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
"integrity": "sha512-5mGwRK4lsAo6tiy4KNF/zUInYpUGr7JJzLA8FHOoqBWV3kkKJWSrDXo4Uk2Ffm5aeQ1o73XuorfkYhaWFV2O4g==", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
"requires": { "dependencies": {
"conf": "^1.0.0" "punycode": "^2.1.0"
} }
}, },
"electron-log": { "node_modules/yallist": {
"version": "4.4.8", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.4.8.tgz", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-QQ4GvrXO+HkgqqEOYbi+DHL7hj5JM+nHi/j+qrN9zeeXVKy8ZABgbu4CnG+BBqDZ2+tbeq9tUC4DZfIWFU5AZA==" "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
},
"env-paths": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz",
"integrity": "sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA="
},
"find-up": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
"integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
"requires": {
"locate-path": "^2.0.0"
}
},
"graceful-fs": {
"version": "4.2.8",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
"integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg=="
},
"imurmurhash": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
},
"is-obj": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
"integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8="
},
"locate-path": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
"integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
"requires": {
"p-locate": "^2.0.0",
"path-exists": "^3.0.0"
}
},
"lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
"make-dir": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
"integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
"requires": {
"pify": "^3.0.0"
}
},
"p-limit": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
"integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
"requires": {
"p-try": "^1.0.0"
}
},
"p-locate": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
"integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
"requires": {
"p-limit": "^1.1.0"
}
},
"p-try": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
"integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
},
"path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
},
"pify": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
},
"pkg-up": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz",
"integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=",
"requires": {
"find-up": "^2.1.0"
}
},
"signal-exit": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz",
"integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ=="
},
"write-file-atomic": {
"version": "2.4.3",
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
"integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
"requires": {
"graceful-fs": "^4.1.11",
"imurmurhash": "^0.1.4",
"signal-exit": "^3.0.2"
}
} }
} }
} }

@ -24,7 +24,7 @@
"buildResources": "public" "buildResources": "public"
}, },
"dependencies": { "dependencies": {
"electron-config": "^2.0.0", "electron-store": "^8.1.0",
"electron-log": "^4.4.8", "electron-log": "^4.4.8",
"lodash": "^4.17.21" "lodash": "^4.17.21"
} }

@ -10,8 +10,8 @@ const gunzip = promisify(zlib.gunzip);
const greenworks = require("./greenworks"); const greenworks = require("./greenworks");
const log = require("electron-log"); const log = require("electron-log");
const flatten = require("lodash/flatten"); const flatten = require("lodash/flatten");
const Config = require("electron-config"); const Store = require("electron-store");
const config = new Config(); const store = new Store();
// https://stackoverflow.com/a/69418940 // https://stackoverflow.com/a/69418940
const dirSize = async (directory) => { const dirSize = async (directory) => {
@ -79,23 +79,23 @@ async function getFolderSizeInBytes(saveFolder) {
} }
function setAutosaveConfig(value) { function setAutosaveConfig(value) {
config.set("autosave-enabled", value); store.set("autosave-enabled", value);
} }
function isAutosaveEnabled() { function isAutosaveEnabled() {
return config.get("autosave-enabled", true); return store.get("autosave-enabled", true);
} }
function setSaveCompressionConfig(value) { function setSaveCompressionConfig(value) {
config.set("save-compression-enabled", value); store.set("save-compression-enabled", value);
} }
function isSaveCompressionEnabled() { function isSaveCompressionEnabled() {
return config.get("save-compression-enabled", true); return store.get("save-compression-enabled", true);
} }
function setCloudEnabledConfig(value) { function setCloudEnabledConfig(value) {
config.set("cloud-enabled", value); store.set("cloud-enabled", value);
} }
async function getSaveFolder(window, root = false) { async function getSaveFolder(window, root = false) {
@ -112,7 +112,7 @@ function isCloudEnabled() {
if (!greenworks.isCloudEnabledForUser()) return false; if (!greenworks.isCloudEnabledForUser()) return false;
// Let's check the config file to see if it's been overriden // Let's check the config file to see if it's been overriden
const enabledInConf = config.get("cloud-enabled", true); const enabledInConf = store.get("cloud-enabled", true);
if (!enabledInConf) return false; if (!enabledInConf) return false;
const isAppEnabled = greenworks.isCloudEnabled(); const isAppEnabled = greenworks.isCloudEnabled();
@ -214,7 +214,7 @@ async function getSteamCloudSaveString() {
async function saveGameToDisk(window, saveData) { async function saveGameToDisk(window, saveData) {
const currentFolder = await getSaveFolder(window); const currentFolder = await getSaveFolder(window);
let saveFolderSizeBytes = await getFolderSizeInBytes(currentFolder); let saveFolderSizeBytes = await getFolderSizeInBytes(currentFolder);
const maxFolderSizeBytes = config.get("autosave-quota", 1e8); // 100Mb per playerIndentifier const maxFolderSizeBytes = store.get("autosave-quota", 1e8); // 100Mb per playerIndentifier
const remainingSpaceBytes = maxFolderSizeBytes - saveFolderSizeBytes; const remainingSpaceBytes = maxFolderSizeBytes - saveFolderSizeBytes;
log.debug(`Folder Usage: ${saveFolderSizeBytes} bytes`); log.debug(`Folder Usage: ${saveFolderSizeBytes} bytes`);
log.debug(`Folder Capacity: ${maxFolderSizeBytes} bytes`); log.debug(`Folder Capacity: ${maxFolderSizeBytes} bytes`);

@ -2,8 +2,8 @@
const { dialog, shell } = require("electron"); const { dialog, shell } = require("electron");
const log = require("electron-log"); const log = require("electron-log");
const Config = require("electron-config"); const Store = require("electron-store");
const config = new Config(); const store = new Store();
function reloadAndKill(window, killScripts) { function reloadAndKill(window, killScripts) {
log.info("Reloading & Killing all scripts..."); log.info("Reloading & Killing all scripts...");
@ -88,7 +88,7 @@ async function writeToast(window, message, type = "info", duration = 2000) {
} }
function getZoomFactor() { function getZoomFactor() {
const configZoom = config.get("zoom", 1); const configZoom = store.get("zoom", 1);
return configZoom; return configZoom;
} }
@ -96,7 +96,7 @@ function setZoomFactor(window, zoom = null) {
if (zoom === null) { if (zoom === null) {
zoom = 1; zoom = 1;
} else { } else {
config.set("zoom", zoom); store.set("zoom", zoom);
} }
window.webContents.setZoomFactor(zoom); window.webContents.setZoomFactor(zoom);
} }

@ -2,8 +2,8 @@
const { screen } = require("electron"); const { screen } = require("electron");
const log = require("electron-log"); const log = require("electron-log");
const debounce = require("lodash/debounce"); const debounce = require("lodash/debounce");
const Config = require("electron-config"); const Store = require("electron-store");
const config = new Config(); const store = new Store();
// https://stackoverflow.com/a/68627253 // https://stackoverflow.com/a/68627253
const windowTracker = (windowName) => { const windowTracker = (windowName) => {
@ -11,8 +11,8 @@ const windowTracker = (windowName) => {
const setBounds = () => { const setBounds = () => {
// Restore from appConfig // Restore from appConfig
if (config.has(`window.${windowName}`)) { if (store.has(`window.${windowName}`)) {
windowState = config.get(`window.${windowName}`); windowState = store.get(`window.${windowName}`);
return; return;
} }
@ -40,7 +40,7 @@ const windowTracker = (windowName) => {
windowState.isMaximized = window.isMaximized(); windowState.isMaximized = window.isMaximized();
log.silly(`Saving window.${windowName} to configs`); log.silly(`Saving window.${windowName} to configs`);
config.set(`window.${windowName}`, windowState); store.set(`window.${windowName}`, windowState);
log.silly(windowState); log.silly(windowState);
}, 1000); }, 1000);