UNPKG

electron-compile

Version:

Electron supporting package to compile JS and CSS in Electron applications

59 lines (43 loc) 5.88 kB
'use strict'; 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