You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tobspr_shapez.io/src/js/platform/electron/storage.js

68 lines
1.8 KiB

import { StorageInterface } from "../storage";
import { getIPCRenderer } from "../../core/utils";
import { createLogger } from "../../core/logging";
const logger = createLogger("electron-storage");
export class StorageImplElectron extends StorageInterface {
constructor(app) {
super(app);
}
initialize() {
return Promise.resolve();
}
writeFileAsync(filename, contents) {
return new Promise((resolve, reject) => {
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) => {
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) => {
getIPCRenderer()
.invoke("fs-job", {
type: "delete",
filename,
})
.then(result => {
if (result.success) {
resolve(result.data);
} else {
reject(result.error);
}
});
});
}
}