dotfiles/common/hellcooling/config/ext/topaz/node.js

35 lines
1.1 KiB
JavaScript

const fs = require('fs');
const electron = require('electron');
const logger = hh.getLogger('Topaz');
module.exports = {
loadAce() {
if (process.browser) {
require('ace-builds/src-noconflict/ace');
require('ace-builds/src-noconflict/mode-javascript');
require('ace-builds/src-noconflict/mode-css');
require(`ace-builds/src-noconflict/theme-tomorrow_night`);
return require('react-ace/dist/react-ace.js/main.js');
} else {
let items = '';
try {
for (const item of [
'ace-builds/src-noconflict/ace',
'ace-builds/src-noconflict/mode-javascript',
'ace-builds/src-noconflict/mode-css',
`ace-builds/src-noconflict/theme-tomorrow_night`,
'react-ace/dist/react-ace.js/main.js',
]) {
items += `${fs.readFileSync(require.resolve(item), 'utf8')}\n`;
}
} catch (err) {
logger.warn("Config editing is disabled, install 'ace-builds' and 'react-ace'", err);
return null;
}
electron.webFrame.executeJavaScript(items);
return null;
}
},
};