From ecd4d36f8764bc07a6104077d0251a8c8b6ed1b5 Mon Sep 17 00:00:00 2001 From: DJ1TJOO Date: Sun, 14 Mar 2021 16:13:40 +0100 Subject: [PATCH 1/3] Changed electron fs-job to invoke, for simplefying storage (And it helps for the modloader) --- electron/index.js | 15 +++--- electron/package.json | 6 +-- electron/yarn.lock | 4 -- src/js/platform/electron/storage.js | 82 +++++++++++++---------------- 4 files changed, 48 insertions(+), 59 deletions(-) diff --git a/electron/index.js b/electron/index.js index 14a19a64..5df4219f 100644 --- a/electron/index.js +++ b/electron/index.js @@ -1,9 +1,8 @@ /* eslint-disable quotes,no-undef */ -const { app, BrowserWindow, Menu, MenuItem, session } = require("electron"); +const { app, BrowserWindow, Menu, MenuItem, ipcMain, shell } = require("electron"); const path = require("path"); const url = require("url"); -const { ipcMain, shell } = require("electron"); const fs = require("fs"); const steam = require("./steam"); const asyncLock = require("async-lock"); @@ -287,10 +286,14 @@ async function performFsJob(job) { } } -ipcMain.on("fs-job", async (event, arg) => { - const result = await performFsJob(arg); - event.reply("fs-response", { id: arg.id, result }); -}); +ipcMain.handle( + "fs-job", + (event, arg) => + new Promise(async (resolve, reject) => { + const result = await performFsJob(arg); + resolve(result); + }) +); steam.init(isDev); steam.listen(); diff --git a/electron/package.json b/electron/package.json index 893e3609..6aec6ab9 100644 --- a/electron/package.json +++ b/electron/package.json @@ -10,12 +10,10 @@ "start": "electron --disable-direct-composition --in-process-gpu ." }, "devDependencies": { - "electron": "10.4.0" + "electron": "10.4.0", + "async-lock": "^1.2.8" }, "optionalDependencies": { "shapez.io-private-artifacts": "github:tobspr/shapez.io-private-artifacts#abi-v85" - }, - "dependencies": { - "async-lock": "^1.2.8" } } diff --git a/electron/yarn.lock b/electron/yarn.lock index 8c5b1dec..cdeefc2c 100644 --- a/electron/yarn.lock +++ b/electron/yarn.lock @@ -503,10 +503,6 @@ serialize-error@^7.0.1: dependencies: type-fest "^0.13.1" -"shapez.io-private-artifacts@github:tobspr/shapez.io-private-artifacts#abi-v85": - version "0.1.0" - resolved "git+ssh://git@github.com/tobspr/shapez.io-private-artifacts.git#63adf7e0ea4b90c2a29053ce1f0ec9d573b3ac0a" - sprintf-js@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" diff --git a/src/js/platform/electron/storage.js b/src/js/platform/electron/storage.js index 41ed1746..bf4ed9ac 100644 --- a/src/js/platform/electron/storage.js +++ b/src/js/platform/electron/storage.js @@ -7,24 +7,6 @@ const logger = createLogger("electron-storage"); export class StorageImplElectron extends StorageInterface { constructor(app) { super(app); - - /** @type {Object.} */ - this.jobs = {}; - this.jobId = 0; - - getIPCRenderer().on("fs-response", (event, arg) => { - const id = arg.id; - if (!this.jobs[id]) { - logger.warn("Got unhandled FS response, job not known:", id); - return; - } - const { resolve, reject } = this.jobs[id]; - if (arg.result.success) { - resolve(arg.result.data); - } else { - reject(arg.result.error); - } - }); } initialize() { @@ -33,43 +15,53 @@ export class StorageImplElectron extends StorageInterface { writeFileAsync(filename, contents) { return new Promise((resolve, reject) => { - // ipcMain - const jobId = ++this.jobId; - this.jobs[jobId] = { resolve, reject }; - - getIPCRenderer().send("fs-job", { - type: "write", - filename, - contents, - id: jobId, - }); + getIPCRenderer() + .invoke("fs-job", { + type: "write", + filename, + contents, + }) + .then(result => { + if (result.success) { + resolve(result.data); + } else { + reject(result.error); + } + }); }); } readFileAsync(filename) { return new Promise((resolve, reject) => { - // ipcMain - const jobId = ++this.jobId; - this.jobs[jobId] = { resolve, reject }; - - getIPCRenderer().send("fs-job", { - type: "read", - filename, - id: jobId, - }); + getIPCRenderer() + .invoke("fs-job", { + type: "read", + filename, + }) + .then(result => { + if (result.success) { + resolve(result.data); + } else { + reject(result.error); + } + }); }); } deleteFileAsync(filename) { return new Promise((resolve, reject) => { - // ipcMain - const jobId = ++this.jobId; - this.jobs[jobId] = { resolve, reject }; - getIPCRenderer().send("fs-job", { - type: "delete", - filename, - id: jobId, - }); + getIPCRenderer() + .invoke("fs-job", { + type: "delete", + filename, + }) + .then(result => { + if (result.success) { + resolve(result.data); + } else { + reject(result.error); + } + }); }); } } From 05ad12f2e679bbeabc7be3bf60ca5d0c220f3a39 Mon Sep 17 00:00:00 2001 From: DJ1TJOO Date: Sun, 14 Mar 2021 16:17:34 +0100 Subject: [PATCH 2/3] Reverted some unneeded chages --- electron/package.json | 6 ++++-- electron/yarn.lock | 4 ++++ fetch_from_upstream.bat | 3 +++ 3 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 fetch_from_upstream.bat diff --git a/electron/package.json b/electron/package.json index 6aec6ab9..893e3609 100644 --- a/electron/package.json +++ b/electron/package.json @@ -10,10 +10,12 @@ "start": "electron --disable-direct-composition --in-process-gpu ." }, "devDependencies": { - "electron": "10.4.0", - "async-lock": "^1.2.8" + "electron": "10.4.0" }, "optionalDependencies": { "shapez.io-private-artifacts": "github:tobspr/shapez.io-private-artifacts#abi-v85" + }, + "dependencies": { + "async-lock": "^1.2.8" } } diff --git a/electron/yarn.lock b/electron/yarn.lock index cdeefc2c..8c5b1dec 100644 --- a/electron/yarn.lock +++ b/electron/yarn.lock @@ -503,6 +503,10 @@ serialize-error@^7.0.1: dependencies: type-fest "^0.13.1" +"shapez.io-private-artifacts@github:tobspr/shapez.io-private-artifacts#abi-v85": + version "0.1.0" + resolved "git+ssh://git@github.com/tobspr/shapez.io-private-artifacts.git#63adf7e0ea4b90c2a29053ce1f0ec9d573b3ac0a" + sprintf-js@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" diff --git a/fetch_from_upstream.bat b/fetch_from_upstream.bat new file mode 100644 index 00000000..77a7f9c9 --- /dev/null +++ b/fetch_from_upstream.bat @@ -0,0 +1,3 @@ +git fetch upstream +git reset --hard upstream/master +git push origin master --force \ No newline at end of file From b6c63504eacf9d3e806ec5955ddf7ccc11b1ae21 Mon Sep 17 00:00:00 2001 From: DJ1TJOO Date: Sun, 14 Mar 2021 16:18:20 +0100 Subject: [PATCH 3/3] Uploaded wrong file --- fetch_from_upstream.bat | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 fetch_from_upstream.bat diff --git a/fetch_from_upstream.bat b/fetch_from_upstream.bat deleted file mode 100644 index 77a7f9c9..00000000 --- a/fetch_from_upstream.bat +++ /dev/null @@ -1,3 +0,0 @@ -git fetch upstream -git reset --hard upstream/master -git push origin master --force \ No newline at end of file