diff --git a/client/src/index.js b/client/src/index.js index 47d0519d..15c09440 100644 --- a/client/src/index.js +++ b/client/src/index.js @@ -11,11 +11,12 @@ import { DOM, BdUI } from 'ui'; import BdCss from './styles/index.scss'; import { Events, CssEditor, Globals, PluginManager, ThemeManager, ModuleManager, WebpackModules } from 'modules'; -import { ClientLogger as Logger } from 'common'; +import { ClientLogger as Logger, ClientIPC } from 'common'; class BetterDiscord { constructor() { + window.ClientIPC = ClientIPC; window.css = CssEditor; window.pm = PluginManager; window.events = Events; diff --git a/common/modules/bdipc.js b/common/modules/bdipc.js index 89d287cc..97d598b4 100644 --- a/common/modules/bdipc.js +++ b/common/modules/bdipc.js @@ -20,7 +20,12 @@ export class ClientIPC { const __eid = Date.now().toString(); ipcRenderer.send(channel, Object.assign(message ? message : {}, { __eid })); return new Promise((resolve, reject) => { - ipcRenderer.once(__eid, (event, arg) => resolve(arg)); + ipcRenderer.once(__eid, (event, arg) => { + if (arg.err) { + return reject(arg.err); + } + resolve(arg); + }); }); } } diff --git a/core/src/main.js b/core/src/main.js index 05b1b78a..0429ebb0 100644 --- a/core/src/main.js +++ b/core/src/main.js @@ -9,6 +9,7 @@ */ const path = require('path'); +const sass = require('node-sass'); /** * DEVELOPMENT VARIABLES @@ -62,6 +63,22 @@ class Comms { o.reply(filenames); }); }); + + BDIpc.on('bd-compileSass', o => { + const { scss, path } = o.args; + if (!scss && !path) return; + + sass.render({ + file: path, + data: scss + }, (err, result) => { + if (err) { + o.reply({ err }); + return; + } + o.reply(result.css.toString()); + }); + }); } async readFile(o, json) {