electron-compile
Version:
Electron supporting package to compile JS and CSS in Electron applications
35 lines (27 loc) • 3.24 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
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) {
Object.keys(compilerHost.compilersByMimeType).forEach(mimeType => {
let ext = _mimeTypes2.default.extension(mimeType);
require.extensions[`.${ ext }`] = (module, filename) => {
var _compilerHost$compile = compilerHost.compileSync(filename);
let code = _compilerHost$compile.code;
module._compile(code, filename);
};
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZXF1aXJlLWhvb2suanMiXSwibmFtZXMiOlsicmVnaXN0ZXJSZXF1aXJlRXh0ZW5zaW9uIiwiY29tcGlsZXJIb3N0IiwiT2JqZWN0Iiwia2V5cyIsImNvbXBpbGVyc0J5TWltZVR5cGUiLCJmb3JFYWNoIiwibWltZVR5cGUiLCJleHQiLCJleHRlbnNpb24iLCJyZXF1aXJlIiwiZXh0ZW5zaW9ucyIsIm1vZHVsZSIsImZpbGVuYW1lIiwiY29tcGlsZVN5bmMiLCJjb2RlIiwiX2NvbXBpbGUiXSwibWFwcGluZ3MiOiI7Ozs7O2tCQVV3QkEsd0I7O0FBVnhCOzs7Ozs7QUFFQTs7Ozs7Ozs7QUFRZSxTQUFTQSx3QkFBVCxDQUFrQ0MsWUFBbEMsRUFBZ0Q7QUFDN0RDLFNBQU9DLElBQVAsQ0FBWUYsYUFBYUcsbUJBQXpCLEVBQThDQyxPQUE5QyxDQUF1REMsUUFBRCxJQUFjO0FBQ2xFLFFBQUlDLE1BQU0sb0JBQVVDLFNBQVYsQ0FBb0JGLFFBQXBCLENBQVY7O0FBRUFHLFlBQVFDLFVBQVIsQ0FBb0IsS0FBR0gsR0FBSSxHQUEzQixJQUFnQyxDQUFDSSxNQUFELEVBQVNDLFFBQVQsS0FBc0I7QUFBQSxrQ0FDdkNYLGFBQWFZLFdBQWIsQ0FBeUJELFFBQXpCLENBRHVDOztBQUFBLFVBQy9DRSxJQUQrQyx5QkFDL0NBLElBRCtDOztBQUVwREgsYUFBT0ksUUFBUCxDQUFnQkQsSUFBaEIsRUFBc0JGLFFBQXRCO0FBQ0QsS0FIRDtBQUlELEdBUEQ7QUFRRCIsImZpbGUiOiJyZXF1aXJlLWhvb2suanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbWltZVR5cGVzIGZyb20gJ0BwYXVsY2JldHRzL21pbWUtdHlwZXMnO1xyXG5cclxuLyoqXHJcbiAqIEluaXRpYWxpemVzIHRoZSBub2RlLmpzIGhvb2sgdGhhdCBhbGxvd3MgdXMgdG8gaW50ZXJjZXB0IGZpbGVzIGxvYWRlZCBieSBcclxuICogbm9kZS5qcyBhbmQgcmV3cml0ZSB0aGVtLiBUaGlzIG1ldGhvZCBhbG9uZyB3aXRoIHtAbGluayBpbml0aWFsaXplUHJvdG9jb2xIb29rfSBcclxuICogYXJlIHRoZSB0b3AtbGV2ZWwgbWV0aG9kcyB0aGF0IGVsZWN0cm9uLWNvbXBpbGUgYWN0dWFsbHkgdXNlcyB0byBpbnRlcmNlcHQgXHJcbiAqIGNvZGUgdGhhdCBFbGVjdHJvbiBsb2Fkcy5cclxuICogIFxyXG4gKiBAcGFyYW0gIHtDb21waWxlckhvc3R9IGNvbXBpbGVySG9zdCAgVGhlIGNvbXBpbGVyIGhvc3QgdG8gdXNlIGZvciBjb21waWxhdGlvbi5cclxuICovIFxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZWdpc3RlclJlcXVpcmVFeHRlbnNpb24oY29tcGlsZXJIb3N0KSB7XHJcbiAgT2JqZWN0LmtleXMoY29tcGlsZXJIb3N0LmNvbXBpbGVyc0J5TWltZVR5cGUpLmZvckVhY2goKG1pbWVUeXBlKSA9PiB7XHJcbiAgICBsZXQgZXh0ID0gbWltZVR5cGVzLmV4dGVuc2lvbihtaW1lVHlwZSk7XHJcbiAgICBcclxuICAgIHJlcXVpcmUuZXh0ZW5zaW9uc1tgLiR7ZXh0fWBdID0gKG1vZHVsZSwgZmlsZW5hbWUpID0+IHtcclxuICAgICAgbGV0IHtjb2RlfSA9IGNvbXBpbGVySG9zdC5jb21waWxlU3luYyhmaWxlbmFtZSk7XHJcbiAgICAgIG1vZHVsZS5fY29tcGlsZShjb2RlLCBmaWxlbmFtZSk7XHJcbiAgICB9O1xyXG4gIH0pO1xyXG59XHJcbiJdfQ==
;