electron-compile
Version:
Electron supporting package to compile JS and CSS in Electron applications
44 lines (31 loc) • 3.1 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 _lodash = require('lodash');
var _lodash2 = _interopRequireDefault(_lodash);
var _mimeTypes = require('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) {
_lodash2.default.each((0, _keys2.default)(compilerHost.compilersByMimeType), 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZXF1aXJlLWhvb2suanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztrQkFXd0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQVQsU0FBUyx3QkFBVCxDQUFrQyxZQUFsQyxFQUFnRDtBQUM3RCxtQkFBRSxJQUFGLENBQU8sb0JBQVksYUFBYSxtQkFBYixDQUFuQixFQUFzRCxVQUFDLFFBQUQsRUFBYztBQUNsRSxRQUFJLE1BQU0sb0JBQVUsU0FBVixDQUFvQixRQUFwQixDQUFOLENBRDhEOztBQUdsRSxZQUFRLFVBQVIsT0FBdUIsR0FBdkIsSUFBZ0MsVUFBQyxNQUFELEVBQVMsUUFBVCxFQUFzQjtrQ0FDdkMsYUFBYSxXQUFiLENBQXlCLFFBQXpCLEVBRHVDOztVQUMvQyxrQ0FEK0M7O0FBRXBELGFBQU8sUUFBUCxDQUFnQixJQUFoQixFQUFzQixRQUF0QixFQUZvRDtLQUF0QixDQUhrQztHQUFkLENBQXRELENBRDZEO0NBQWhEIiwiZmlsZSI6InJlcXVpcmUtaG9vay5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbWltZVR5cGVzIGZyb20gJ21pbWUtdHlwZXMnO1xuXG4vKipcbiAqIEluaXRpYWxpemVzIHRoZSBub2RlLmpzIGhvb2sgdGhhdCBhbGxvd3MgdXMgdG8gaW50ZXJjZXB0IGZpbGVzIGxvYWRlZCBieSBcbiAqIG5vZGUuanMgYW5kIHJld3JpdGUgdGhlbS4gVGhpcyBtZXRob2QgYWxvbmcgd2l0aCB7QGxpbmsgaW5pdGlhbGl6ZVByb3RvY29sSG9va30gXG4gKiBhcmUgdGhlIHRvcC1sZXZlbCBtZXRob2RzIHRoYXQgZWxlY3Ryb24tY29tcGlsZSBhY3R1YWxseSB1c2VzIHRvIGludGVyY2VwdCBcbiAqIGNvZGUgdGhhdCBFbGVjdHJvbiBsb2Fkcy5cbiAqICBcbiAqIEBwYXJhbSAge0NvbXBpbGVySG9zdH0gY29tcGlsZXJIb3N0ICBUaGUgY29tcGlsZXIgaG9zdCB0byB1c2UgZm9yIGNvbXBpbGF0aW9uLlxuICovIFxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVnaXN0ZXJSZXF1aXJlRXh0ZW5zaW9uKGNvbXBpbGVySG9zdCkge1xuICBfLmVhY2goT2JqZWN0LmtleXMoY29tcGlsZXJIb3N0LmNvbXBpbGVyc0J5TWltZVR5cGUpLCAobWltZVR5cGUpID0+IHtcbiAgICBsZXQgZXh0ID0gbWltZVR5cGVzLmV4dGVuc2lvbihtaW1lVHlwZSk7XG4gICAgXG4gICAgcmVxdWlyZS5leHRlbnNpb25zW2AuJHtleHR9YF0gPSAobW9kdWxlLCBmaWxlbmFtZSkgPT4ge1xuICAgICAgbGV0IHtjb2RlfSA9IGNvbXBpbGVySG9zdC5jb21waWxlU3luYyhmaWxlbmFtZSk7XG4gICAgICBtb2R1bGUuX2NvbXBpbGUoY29kZSwgZmlsZW5hbWUpO1xuICAgIH07XG4gIH0pO1xufVxuIl19