Changed electron fs-job to invoke, for simplefying storage (#1106)

* Changed electron fs-job to invoke, for simplefying storage
(And it helps for the modloader)

* Reverted some unneeded chages

* Uploaded wrong file

* Removed uneeded promise
This commit is contained in:
Thomas (DJ1TJOO) 2021-03-16 17:59:23 +01:00 committed by GitHub
parent 7f2132d763
commit 22b8777aa0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 39 additions and 51 deletions

View file

@ -7,24 +7,6 @@ const logger = createLogger("electron-storage");
export class StorageImplElectron extends StorageInterface {
constructor(app) {
super(app);
/** @type {Object.<number, {resolve:Function, reject: Function}>} */
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);
}
});
});
}
}