electron-compile
Version:
Electron supporting package to compile JS and CSS in Electron applications
40 lines (29 loc) • 3.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _keys = require('babel-runtime/core-js/object/keys');
var _keys2 = _interopRequireDefault(_keys);
exports.default = registerRequireExtension;
var _mimeTypes = require('@paulcbetts/mime-types');
var _mimeTypes2 = _interopRequireDefault(_mimeTypes);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* Initializes the node.js hook that allows us to intercept files loaded by
* node.js and rewrite them. This method along with {@link initializeProtocolHook}
* are the top-level methods that electron-compile actually uses to intercept
* code that Electron loads.
*
* @param {CompilerHost} compilerHost The compiler host to use for compilation.
*/
function registerRequireExtension(compilerHost) {
(0, _keys2.default)(compilerHost.compilersByMimeType).forEach(function (mimeType) {
var ext = _mimeTypes2.default.extension(mimeType);
require.extensions['.' + ext] = function (module, filename) {
var _compilerHost$compile = compilerHost.compileSync(filename);
var code = _compilerHost$compile.code;
module._compile(code, filename);
};
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZXF1aXJlLWhvb2suanMiXSwibmFtZXMiOlsicmVnaXN0ZXJSZXF1aXJlRXh0ZW5zaW9uIiwiY29tcGlsZXJIb3N0IiwiY29tcGlsZXJzQnlNaW1lVHlwZSIsImZvckVhY2giLCJtaW1lVHlwZSIsImV4dCIsImV4dGVuc2lvbiIsInJlcXVpcmUiLCJleHRlbnNpb25zIiwibW9kdWxlIiwiZmlsZW5hbWUiLCJjb21waWxlU3luYyIsImNvZGUiLCJfY29tcGlsZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztrQkFVd0JBLHdCOztBQVZ4Qjs7Ozs7O0FBRUE7Ozs7Ozs7O0FBUWUsU0FBU0Esd0JBQVQsQ0FBa0NDLFlBQWxDLEVBQWdEO0FBQzdELHNCQUFZQSxhQUFhQyxtQkFBekIsRUFBOENDLE9BQTlDLENBQXNELFVBQUNDLFFBQUQsRUFBYztBQUNsRSxRQUFJQyxNQUFNLG9CQUFVQyxTQUFWLENBQW9CRixRQUFwQixDQUFWOztBQUVBRyxZQUFRQyxVQUFSLE9BQXVCSCxHQUF2QixJQUFnQyxVQUFDSSxNQUFELEVBQVNDLFFBQVQsRUFBc0I7QUFBQSxrQ0FDdkNULGFBQWFVLFdBQWIsQ0FBeUJELFFBQXpCLENBRHVDOztBQUFBLFVBQy9DRSxJQUQrQyx5QkFDL0NBLElBRCtDOztBQUVwREgsYUFBT0ksUUFBUCxDQUFnQkQsSUFBaEIsRUFBc0JGLFFBQXRCO0FBQ0QsS0FIRDtBQUlELEdBUEQ7QUFRRCIsImZpbGUiOiJyZXF1aXJlLWhvb2suanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbWltZVR5cGVzIGZyb20gJ0BwYXVsY2JldHRzL21pbWUtdHlwZXMnO1xuXG4vKipcbiAqIEluaXRpYWxpemVzIHRoZSBub2RlLmpzIGhvb2sgdGhhdCBhbGxvd3MgdXMgdG8gaW50ZXJjZXB0IGZpbGVzIGxvYWRlZCBieSBcbiAqIG5vZGUuanMgYW5kIHJld3JpdGUgdGhlbS4gVGhpcyBtZXRob2QgYWxvbmcgd2l0aCB7QGxpbmsgaW5pdGlhbGl6ZVByb3RvY29sSG9va30gXG4gKiBhcmUgdGhlIHRvcC1sZXZlbCBtZXRob2RzIHRoYXQgZWxlY3Ryb24tY29tcGlsZSBhY3R1YWxseSB1c2VzIHRvIGludGVyY2VwdCBcbiAqIGNvZGUgdGhhdCBFbGVjdHJvbiBsb2Fkcy5cbiAqICBcbiAqIEBwYXJhbSAge0NvbXBpbGVySG9zdH0gY29tcGlsZXJIb3N0ICBUaGUgY29tcGlsZXIgaG9zdCB0byB1c2UgZm9yIGNvbXBpbGF0aW9uLlxuICovIFxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVnaXN0ZXJSZXF1aXJlRXh0ZW5zaW9uKGNvbXBpbGVySG9zdCkge1xuICBPYmplY3Qua2V5cyhjb21waWxlckhvc3QuY29tcGlsZXJzQnlNaW1lVHlwZSkuZm9yRWFjaCgobWltZVR5cGUpID0+IHtcbiAgICBsZXQgZXh0ID0gbWltZVR5cGVzLmV4dGVuc2lvbihtaW1lVHlwZSk7XG4gICAgXG4gICAgcmVxdWlyZS5leHRlbnNpb25zW2AuJHtleHR9YF0gPSAobW9kdWxlLCBmaWxlbmFtZSkgPT4ge1xuICAgICAgbGV0IHtjb2RlfSA9IGNvbXBpbGVySG9zdC5jb21waWxlU3luYyhmaWxlbmFtZSk7XG4gICAgICBtb2R1bGUuX2NvbXBpbGUoY29kZSwgZmlsZW5hbWUpO1xuICAgIH07XG4gIH0pO1xufVxuIl19