Monaco for Discord Desktop

This commit is contained in:
Vendicated 2022-10-22 04:41:33 +02:00
parent 23d4cae123
commit 44f6f71c3e
No known key found for this signature in database
GPG key ID: EC781ADFB93EFFA3
11 changed files with 173 additions and 90 deletions

View file

@ -22,8 +22,10 @@ import { open, readFile, writeFile } from "fs/promises";
import { join } from "path";
import { debounce } from "../utils/debounce";
import IpcEvents from "../utils/IpcEvents";
import monacoHtml from "@fileContent/../components/monacoWin.html;base64";
import "./updater";
import { Queue } from "../utils/Queue";
const DATA_DIR = process.env.VENCORD_USER_DATA_DIR ?? (
process.env.DISCORD_USER_DATA_DIR
@ -71,15 +73,19 @@ ipcMain.handle(IpcEvents.OPEN_EXTERNAL, (_, url) => {
shell.openExternal(url);
});
const cssWriteQueue = new Queue();
const settingsWriteQueue = new Queue();
ipcMain.handle(IpcEvents.GET_QUICK_CSS, () => readCss());
ipcMain.handle(IpcEvents.SET_QUICK_CSS, (_, css) =>
cssWriteQueue.add(() => writeFile(QUICKCSS_PATH, css))
);
ipcMain.handle(IpcEvents.GET_SETTINGS_DIR, () => SETTINGS_DIR);
ipcMain.on(IpcEvents.GET_SETTINGS, e => e.returnValue = readSettings());
let settingsWriteQueue = Promise.resolve();
ipcMain.handle(IpcEvents.SET_SETTINGS, (_, s) => {
settingsWriteQueue = settingsWriteQueue.then(() => writeFile(SETTINGS_FILE, s));
settingsWriteQueue.add(() => writeFile(SETTINGS_FILE, s));
});
@ -91,3 +97,13 @@ export function initIpc(mainWindow: BrowserWindow) {
}, 50));
});
}
ipcMain.handle(IpcEvents.OPEN_MONACO_EDITOR, async () => {
const win = new BrowserWindow({
title: "QuickCss Editor",
webPreferences: {
preload: join(__dirname, "preload.js"),
}
});
await win.loadURL(`data:text/html;base64,${monacoHtml}`);
});