electron-compile
Version:
Electron supporting package to compile JS and CSS in Electron applications
61 lines (45 loc) • 4.89 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _create = require('babel-runtime/core-js/object/create');
var _create2 = _interopRequireDefault(_create);
var _assign = require('babel-runtime/core-js/object/assign');
var _assign2 = _interopRequireDefault(_assign);
var _url = require('url');
var _url2 = _interopRequireDefault(_url);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function requireModule(href) {
var filePath = href;
if (filePath.match(/^file:/i)) {
var theUrl = _url2.default.parse(filePath);
filePath = decodeURIComponent(theUrl.pathname);
if (process.platform === 'win32') {
filePath = filePath.slice(1);
}
}
// NB: We don't do any path canonicalization here because we rely on
// InlineHtmlCompiler to have already converted any relative paths that
// were used with x-require into absolute paths.
require(filePath);
}
/**
* @private
*/
exports.default = function () {
if (process.type !== 'renderer' || !window || !window.document) return null;
var proto = (0, _assign2.default)((0, _create2.default)(HTMLElement.prototype), {
createdCallback: function createdCallback() {
var href = this.getAttribute('src');
if (href && href.length > 0) {
requireModule(href);
}
},
attributeChangedCallback: function attributeChangedCallback(attrName, oldVal, newVal) {
if (attrName !== 'src') return;
requireModule(newVal);
}
});
return document.registerElement('x-require', { prototype: proto });
}();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy94LXJlcXVpcmUuanMiXSwibmFtZXMiOlsicmVxdWlyZU1vZHVsZSIsImhyZWYiLCJmaWxlUGF0aCIsIm1hdGNoIiwidGhlVXJsIiwicGFyc2UiLCJkZWNvZGVVUklDb21wb25lbnQiLCJwYXRobmFtZSIsInByb2Nlc3MiLCJwbGF0Zm9ybSIsInNsaWNlIiwicmVxdWlyZSIsInR5cGUiLCJ3aW5kb3ciLCJkb2N1bWVudCIsInByb3RvIiwiSFRNTEVsZW1lbnQiLCJwcm90b3R5cGUiLCJjcmVhdGVkQ2FsbGJhY2siLCJnZXRBdHRyaWJ1dGUiLCJsZW5ndGgiLCJhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2siLCJhdHRyTmFtZSIsIm9sZFZhbCIsIm5ld1ZhbCIsInJlZ2lzdGVyRWxlbWVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7Ozs7O0FBRUEsU0FBU0EsYUFBVCxDQUF1QkMsSUFBdkIsRUFBNkI7QUFDM0IsTUFBSUMsV0FBV0QsSUFBZjs7QUFFQSxNQUFJQyxTQUFTQyxLQUFULENBQWUsU0FBZixDQUFKLEVBQStCO0FBQzdCLFFBQUlDLFNBQVMsY0FBSUMsS0FBSixDQUFVSCxRQUFWLENBQWI7QUFDQUEsZUFBV0ksbUJBQW1CRixPQUFPRyxRQUExQixDQUFYOztBQUVBLFFBQUlDLFFBQVFDLFFBQVIsS0FBcUIsT0FBekIsRUFBa0M7QUFDaENQLGlCQUFXQSxTQUFTUSxLQUFULENBQWUsQ0FBZixDQUFYO0FBQ0Q7QUFDRjs7QUFFRDtBQUNBO0FBQ0E7QUFDQUMsVUFBUVQsUUFBUjtBQUNEOztBQUVEOzs7O2tCQUdnQixZQUFNO0FBQ3BCLE1BQUlNLFFBQVFJLElBQVIsS0FBaUIsVUFBakIsSUFBK0IsQ0FBQ0MsTUFBaEMsSUFBMEMsQ0FBQ0EsT0FBT0MsUUFBdEQsRUFBZ0UsT0FBTyxJQUFQOztBQUVoRSxNQUFJQyxRQUFRLHNCQUFjLHNCQUFjQyxZQUFZQyxTQUExQixDQUFkLEVBQW9EO0FBQzlEQyxxQkFBaUIsMkJBQVc7QUFDMUIsVUFBSWpCLE9BQU8sS0FBS2tCLFlBQUwsQ0FBa0IsS0FBbEIsQ0FBWDtBQUNBLFVBQUlsQixRQUFRQSxLQUFLbUIsTUFBTCxHQUFjLENBQTFCLEVBQTZCO0FBQzNCcEIsc0JBQWNDLElBQWQ7QUFDRDtBQUNGLEtBTjZEO0FBTzlEb0IsOEJBQTBCLGtDQUFTQyxRQUFULEVBQW1CQyxNQUFuQixFQUEyQkMsTUFBM0IsRUFBbUM7QUFDM0QsVUFBSUYsYUFBYSxLQUFqQixFQUF3QjtBQUN4QnRCLG9CQUFjd0IsTUFBZDtBQUNEO0FBVjZELEdBQXBELENBQVo7O0FBYUEsU0FBT1YsU0FBU1csZUFBVCxDQUF5QixXQUF6QixFQUFzQyxFQUFFUixXQUFXRixLQUFiLEVBQXRDLENBQVA7QUFDRCxDQWpCYyxFIiwiZmlsZSI6IngtcmVxdWlyZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB1cmwgZnJvbSAndXJsJztcblxuZnVuY3Rpb24gcmVxdWlyZU1vZHVsZShocmVmKSB7XG4gIGxldCBmaWxlUGF0aCA9IGhyZWY7XG4gIFxuICBpZiAoZmlsZVBhdGgubWF0Y2goL15maWxlOi9pKSkge1xuICAgIGxldCB0aGVVcmwgPSB1cmwucGFyc2UoZmlsZVBhdGgpO1xuICAgIGZpbGVQYXRoID0gZGVjb2RlVVJJQ29tcG9uZW50KHRoZVVybC5wYXRobmFtZSk7XG5cbiAgICBpZiAocHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJykge1xuICAgICAgZmlsZVBhdGggPSBmaWxlUGF0aC5zbGljZSgxKTtcbiAgICB9XG4gIH1cbiAgXG4gIC8vIE5COiBXZSBkb24ndCBkbyBhbnkgcGF0aCBjYW5vbmljYWxpemF0aW9uIGhlcmUgYmVjYXVzZSB3ZSByZWx5IG9uXG4gIC8vIElubGluZUh0bWxDb21waWxlciB0byBoYXZlIGFscmVhZHkgY29udmVydGVkIGFueSByZWxhdGl2ZSBwYXRocyB0aGF0XG4gIC8vIHdlcmUgdXNlZCB3aXRoIHgtcmVxdWlyZSBpbnRvIGFic29sdXRlIHBhdGhzLlxuICByZXF1aXJlKGZpbGVQYXRoKTtcbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovIFxuZXhwb3J0IGRlZmF1bHQgKCgpID0+IHtcbiAgaWYgKHByb2Nlc3MudHlwZSAhPT0gJ3JlbmRlcmVyJyB8fCAhd2luZG93IHx8ICF3aW5kb3cuZG9jdW1lbnQpIHJldHVybiBudWxsO1xuICBcbiAgbGV0IHByb3RvID0gT2JqZWN0LmFzc2lnbihPYmplY3QuY3JlYXRlKEhUTUxFbGVtZW50LnByb3RvdHlwZSksIHtcbiAgICBjcmVhdGVkQ2FsbGJhY2s6IGZ1bmN0aW9uKCkge1xuICAgICAgbGV0IGhyZWYgPSB0aGlzLmdldEF0dHJpYnV0ZSgnc3JjJyk7XG4gICAgICBpZiAoaHJlZiAmJiBocmVmLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmVxdWlyZU1vZHVsZShocmVmKTtcbiAgICAgIH1cbiAgICB9LCBcbiAgICBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2s6IGZ1bmN0aW9uKGF0dHJOYW1lLCBvbGRWYWwsIG5ld1ZhbCkge1xuICAgICAgaWYgKGF0dHJOYW1lICE9PSAnc3JjJykgcmV0dXJuO1xuICAgICAgcmVxdWlyZU1vZHVsZShuZXdWYWwpO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGRvY3VtZW50LnJlZ2lzdGVyRWxlbWVudCgneC1yZXF1aXJlJywgeyBwcm90b3R5cGU6IHByb3RvIH0pO1xufSkoKTtcbiJdfQ==