electron-compile
Version:
Electron supporting package to compile JS and CSS in Electron applications
59 lines (43 loc) • 5.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.initializeRendererProcess = initializeRendererProcess;
require('./babel-maybefill');
var _compilerHost = require('./compiler-host');
var _compilerHost2 = _interopRequireDefault(_compilerHost);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// NB: These are duped in protocol-hook so we can save startup time, make
// sure to run both!
var magicGlobalForRootCacheDir = '__electron_compile_root_cache_dir';
var magicGlobalForAppRootDir = '__electron_compile_app_root_dir';
var d = require('debug-electron')('electron-compile:initialize-renderer');
var rendererInitialized = false;
/**
* Called by our rigged script file at the top of every HTML file to set up
* the same compilers as the browser process that created us
*
* @private
*/
function initializeRendererProcess(readOnlyMode) {
if (rendererInitialized) return;
var rootCacheDir = require('electron').remote.getGlobal(magicGlobalForRootCacheDir);
var appRoot = require('electron').remote.getGlobal(magicGlobalForAppRootDir);
var compilerHost = null;
// NB: This has to be synchronous because we need to block HTML parsing
// until we're set up
if (readOnlyMode) {
d('Setting up electron-compile in precompiled mode with cache dir: ' + rootCacheDir);
compilerHost = _compilerHost2.default.createReadonlyFromConfigurationSync(rootCacheDir, appRoot);
} else {
d('Setting up electron-compile in development mode with cache dir: ' + rootCacheDir);
var _require = require('./config-parser');
var createCompilers = _require.createCompilers;
var compilersByMimeType = createCompilers();
compilerHost = _compilerHost2.default.createFromConfigurationSync(rootCacheDir, appRoot, compilersByMimeType);
}
require('./x-require');
require('./require-hook').default(compilerHost);
rendererInitialized = true;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbml0aWFsaXplLXJlbmRlcmVyLmpzIl0sIm5hbWVzIjpbImluaXRpYWxpemVSZW5kZXJlclByb2Nlc3MiLCJtYWdpY0dsb2JhbEZvclJvb3RDYWNoZURpciIsIm1hZ2ljR2xvYmFsRm9yQXBwUm9vdERpciIsImQiLCJyZXF1aXJlIiwicmVuZGVyZXJJbml0aWFsaXplZCIsInJlYWRPbmx5TW9kZSIsInJvb3RDYWNoZURpciIsInJlbW90ZSIsImdldEdsb2JhbCIsImFwcFJvb3QiLCJjb21waWxlckhvc3QiLCJjcmVhdGVSZWFkb25seUZyb21Db25maWd1cmF0aW9uU3luYyIsImNyZWF0ZUNvbXBpbGVycyIsImNvbXBpbGVyc0J5TWltZVR5cGUiLCJjcmVhdGVGcm9tQ29uZmlndXJhdGlvblN5bmMiLCJkZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7OztRQWtCZ0JBLHlCLEdBQUFBLHlCOztBQWxCaEI7O0FBQ0E7Ozs7OztBQUVBO0FBQ0E7QUFDQSxJQUFNQyw2QkFBNkIsbUNBQW5DO0FBQ0EsSUFBTUMsMkJBQTJCLGlDQUFqQzs7QUFFQSxJQUFNQyxJQUFJQyxRQUFRLGdCQUFSLEVBQTBCLHNDQUExQixDQUFWOztBQUVBLElBQUlDLHNCQUFzQixLQUExQjs7QUFFQTs7Ozs7O0FBTU8sU0FBU0wseUJBQVQsQ0FBbUNNLFlBQW5DLEVBQWlEO0FBQ3RELE1BQUlELG1CQUFKLEVBQXlCOztBQUV6QixNQUFJRSxlQUFlSCxRQUFRLFVBQVIsRUFBb0JJLE1BQXBCLENBQTJCQyxTQUEzQixDQUFxQ1IsMEJBQXJDLENBQW5CO0FBQ0EsTUFBSVMsVUFBVU4sUUFBUSxVQUFSLEVBQW9CSSxNQUFwQixDQUEyQkMsU0FBM0IsQ0FBcUNQLHdCQUFyQyxDQUFkO0FBQ0EsTUFBSVMsZUFBZSxJQUFuQjs7QUFFQTtBQUNBO0FBQ0EsTUFBSUwsWUFBSixFQUFrQjtBQUNoQkgsMkVBQXFFSSxZQUFyRTtBQUNBSSxtQkFBZSx1QkFBYUMsbUNBQWIsQ0FBaURMLFlBQWpELEVBQStERyxPQUEvRCxDQUFmO0FBQ0QsR0FIRCxNQUdPO0FBQ0xQLDJFQUFxRUksWUFBckU7O0FBREssbUJBRXVCSCxRQUFRLGlCQUFSLENBRnZCOztBQUFBLFFBRUdTLGVBRkgsWUFFR0EsZUFGSDs7QUFHTCxRQUFNQyxzQkFBc0JELGlCQUE1Qjs7QUFFQUYsbUJBQWUsdUJBQWFJLDJCQUFiLENBQXlDUixZQUF6QyxFQUF1REcsT0FBdkQsRUFBZ0VJLG1CQUFoRSxDQUFmO0FBQ0Q7O0FBRURWLFVBQVEsYUFBUjtBQUNBQSxVQUFRLGdCQUFSLEVBQTBCWSxPQUExQixDQUFrQ0wsWUFBbEM7QUFDQU4sd0JBQXNCLElBQXRCO0FBQ0QiLCJmaWxlIjoiaW5pdGlhbGl6ZS1yZW5kZXJlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnLi9iYWJlbC1tYXliZWZpbGwnO1xuaW1wb3J0IENvbXBpbGVySG9zdCBmcm9tICcuL2NvbXBpbGVyLWhvc3QnO1xuXG4vLyBOQjogVGhlc2UgYXJlIGR1cGVkIGluIHByb3RvY29sLWhvb2sgc28gd2UgY2FuIHNhdmUgc3RhcnR1cCB0aW1lLCBtYWtlXG4vLyBzdXJlIHRvIHJ1biBib3RoIVxuY29uc3QgbWFnaWNHbG9iYWxGb3JSb290Q2FjaGVEaXIgPSAnX19lbGVjdHJvbl9jb21waWxlX3Jvb3RfY2FjaGVfZGlyJztcbmNvbnN0IG1hZ2ljR2xvYmFsRm9yQXBwUm9vdERpciA9ICdfX2VsZWN0cm9uX2NvbXBpbGVfYXBwX3Jvb3RfZGlyJztcblxuY29uc3QgZCA9IHJlcXVpcmUoJ2RlYnVnLWVsZWN0cm9uJykoJ2VsZWN0cm9uLWNvbXBpbGU6aW5pdGlhbGl6ZS1yZW5kZXJlcicpO1xuXG5sZXQgcmVuZGVyZXJJbml0aWFsaXplZCA9IGZhbHNlO1xuXG4vKipcbiAqIENhbGxlZCBieSBvdXIgcmlnZ2VkIHNjcmlwdCBmaWxlIGF0IHRoZSB0b3Agb2YgZXZlcnkgSFRNTCBmaWxlIHRvIHNldCB1cFxuICogdGhlIHNhbWUgY29tcGlsZXJzIGFzIHRoZSBicm93c2VyIHByb2Nlc3MgdGhhdCBjcmVhdGVkIHVzXG4gKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluaXRpYWxpemVSZW5kZXJlclByb2Nlc3MocmVhZE9ubHlNb2RlKSB7XG4gIGlmIChyZW5kZXJlckluaXRpYWxpemVkKSByZXR1cm47XG5cbiAgbGV0IHJvb3RDYWNoZURpciA9IHJlcXVpcmUoJ2VsZWN0cm9uJykucmVtb3RlLmdldEdsb2JhbChtYWdpY0dsb2JhbEZvclJvb3RDYWNoZURpcik7XG4gIGxldCBhcHBSb290ID0gcmVxdWlyZSgnZWxlY3Ryb24nKS5yZW1vdGUuZ2V0R2xvYmFsKG1hZ2ljR2xvYmFsRm9yQXBwUm9vdERpcik7XG4gIGxldCBjb21waWxlckhvc3QgPSBudWxsO1xuXG4gIC8vIE5COiBUaGlzIGhhcyB0byBiZSBzeW5jaHJvbm91cyBiZWNhdXNlIHdlIG5lZWQgdG8gYmxvY2sgSFRNTCBwYXJzaW5nXG4gIC8vIHVudGlsIHdlJ3JlIHNldCB1cFxuICBpZiAocmVhZE9ubHlNb2RlKSB7XG4gICAgZChgU2V0dGluZyB1cCBlbGVjdHJvbi1jb21waWxlIGluIHByZWNvbXBpbGVkIG1vZGUgd2l0aCBjYWNoZSBkaXI6ICR7cm9vdENhY2hlRGlyfWApO1xuICAgIGNvbXBpbGVySG9zdCA9IENvbXBpbGVySG9zdC5jcmVhdGVSZWFkb25seUZyb21Db25maWd1cmF0aW9uU3luYyhyb290Q2FjaGVEaXIsIGFwcFJvb3QpO1xuICB9IGVsc2Uge1xuICAgIGQoYFNldHRpbmcgdXAgZWxlY3Ryb24tY29tcGlsZSBpbiBkZXZlbG9wbWVudCBtb2RlIHdpdGggY2FjaGUgZGlyOiAke3Jvb3RDYWNoZURpcn1gKTtcbiAgICBjb25zdCB7IGNyZWF0ZUNvbXBpbGVycyB9ID0gcmVxdWlyZSgnLi9jb25maWctcGFyc2VyJyk7XG4gICAgY29uc3QgY29tcGlsZXJzQnlNaW1lVHlwZSA9IGNyZWF0ZUNvbXBpbGVycygpO1xuXG4gICAgY29tcGlsZXJIb3N0ID0gQ29tcGlsZXJIb3N0LmNyZWF0ZUZyb21Db25maWd1cmF0aW9uU3luYyhyb290Q2FjaGVEaXIsIGFwcFJvb3QsIGNvbXBpbGVyc0J5TWltZVR5cGUpO1xuICB9XG5cbiAgcmVxdWlyZSgnLi94LXJlcXVpcmUnKTtcbiAgcmVxdWlyZSgnLi9yZXF1aXJlLWhvb2snKS5kZWZhdWx0KGNvbXBpbGVySG9zdCk7XG4gIHJlbmRlcmVySW5pdGlhbGl6ZWQgPSB0cnVlO1xufVxuIl19