const { ipcRenderer } = require('electron') const sass = require('sass'); const path = require('path'); const fs = require('fs'); const SASS_BASE_PATH = 'view/sass'; // TODO: Once configs are setup, make this section more dynamic!! var VARS = { COLOR_LIGHTER: "#fffcf2", COLOR_LIGHT: "#ccc5b9", COLOR_DARK: "#403d39", COLOR_DARKER: "#252422", COLOR_HIGHLIGHT: "#eb5e28", UI_SCALE: 1.0 }; console.log(ipcRenderer.sendSync("getPath", "app")); function handleFileLoad(url, prev, done){ let apppath = ipcRenderer.sendSync("getPath", "app"); let filepath = path.join(apppath, SASS_BASE_PATH, url + ".scss"); console.log("Attempting to load ", filepath); fs.readFile(filepath, 'utf-8', (err, data) => { if (err){ done(err); } else { done({contents: data.toString()}); } }); } function buildSASSVars(){ let res = ""; Object.keys(VARS).forEach((key)=>{ res = res + "$" + key + ": " + VARS[key] + ";\n"; }); return res; } function render(entryfile){ return new Promise((res, rej) => { let entry = buildSASSVars() + "@import '" + entryfile + "';\n"; sass.render({data: entry, importer:handleFileLoad}, (err, data) => { if (err){rej(err);} res(data); }); }); } module.exports = { render };