electron-compile
Version:
Electron supporting package to compile JS and CSS in Electron applications
61 lines (45 loc) • 4.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _create = require('babel-runtime/core-js/object/create');
var _create2 = _interopRequireDefault(_create);
var _lodash = require('lodash');
var _lodash2 = _interopRequireDefault(_lodash);
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 = _lodash2.default.extend((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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy94LXJlcXVpcmUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxTQUFTLGFBQVQsQ0FBdUIsSUFBdkIsRUFBNkI7QUFDM0IsTUFBSSxXQUFXLElBQVgsQ0FEdUI7O0FBRzNCLE1BQUksU0FBUyxLQUFULENBQWUsU0FBZixDQUFKLEVBQStCO0FBQzdCLFFBQUksU0FBUyxjQUFJLEtBQUosQ0FBVSxRQUFWLENBQVQsQ0FEeUI7QUFFN0IsZUFBVyxtQkFBbUIsT0FBTyxRQUFQLENBQTlCLENBRjZCOztBQUk3QixRQUFJLFFBQVEsUUFBUixLQUFxQixPQUFyQixFQUE4QjtBQUNoQyxpQkFBVyxTQUFTLEtBQVQsQ0FBZSxDQUFmLENBQVgsQ0FEZ0M7S0FBbEM7R0FKRjs7Ozs7QUFIMkIsU0FlM0IsQ0FBUSxRQUFSLEVBZjJCO0NBQTdCOzs7Ozs7a0JBcUJlLFlBQU87QUFDcEIsTUFBSSxRQUFRLElBQVIsS0FBaUIsVUFBakIsSUFBK0IsQ0FBQyxNQUFELElBQVcsQ0FBQyxPQUFPLFFBQVAsRUFBaUIsT0FBTyxJQUFQLENBQWhFOztBQUVBLE1BQUksUUFBUSxpQkFBRSxNQUFGLENBQVMsc0JBQWMsWUFBWSxTQUFaLENBQXZCLEVBQStDO0FBQ3pELHFCQUFpQiwyQkFBVztBQUMxQixVQUFJLE9BQU8sS0FBSyxZQUFMLENBQWtCLEtBQWxCLENBQVAsQ0FEc0I7QUFFMUIsVUFBSSxRQUFRLEtBQUssTUFBTCxHQUFjLENBQWQsRUFBaUI7QUFDM0Isc0JBQWMsSUFBZCxFQUQyQjtPQUE3QjtLQUZlO0FBTWpCLDhCQUEwQixrQ0FBUyxRQUFULEVBQW1CLE1BQW5CLEVBQTJCLE1BQTNCLEVBQW1DO0FBQzNELFVBQUksYUFBYSxLQUFiLEVBQW9CLE9BQXhCO0FBQ0Esb0JBQWMsTUFBZCxFQUYyRDtLQUFuQztHQVBoQixDQUFSLENBSGdCOztBQWdCcEIsU0FBTyxTQUFTLGVBQVQsQ0FBeUIsV0FBekIsRUFBc0MsRUFBRSxXQUFXLEtBQVgsRUFBeEMsQ0FBUCxDQWhCb0I7Q0FBTiIsImZpbGUiOiJ4LXJlcXVpcmUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHVybCBmcm9tICd1cmwnO1xuXG5mdW5jdGlvbiByZXF1aXJlTW9kdWxlKGhyZWYpIHtcbiAgbGV0IGZpbGVQYXRoID0gaHJlZjtcbiAgXG4gIGlmIChmaWxlUGF0aC5tYXRjaCgvXmZpbGU6L2kpKSB7XG4gICAgbGV0IHRoZVVybCA9IHVybC5wYXJzZShmaWxlUGF0aCk7XG4gICAgZmlsZVBhdGggPSBkZWNvZGVVUklDb21wb25lbnQodGhlVXJsLnBhdGhuYW1lKTtcblxuICAgIGlmIChwcm9jZXNzLnBsYXRmb3JtID09PSAnd2luMzInKSB7XG4gICAgICBmaWxlUGF0aCA9IGZpbGVQYXRoLnNsaWNlKDEpO1xuICAgIH1cbiAgfVxuICBcbiAgLy8gTkI6IFdlIGRvbid0IGRvIGFueSBwYXRoIGNhbm9uaWNhbGl6YXRpb24gaGVyZSBiZWNhdXNlIHdlIHJlbHkgb25cbiAgLy8gSW5saW5lSHRtbENvbXBpbGVyIHRvIGhhdmUgYWxyZWFkeSBjb252ZXJ0ZWQgYW55IHJlbGF0aXZlIHBhdGhzIHRoYXRcbiAgLy8gd2VyZSB1c2VkIHdpdGggeC1yZXF1aXJlIGludG8gYWJzb2x1dGUgcGF0aHMuXG4gIHJlcXVpcmUoZmlsZVBhdGgpO1xufVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi8gXG5leHBvcnQgZGVmYXVsdCAoKCkgPT4ge1xuICBpZiAocHJvY2Vzcy50eXBlICE9PSAncmVuZGVyZXInIHx8ICF3aW5kb3cgfHwgIXdpbmRvdy5kb2N1bWVudCkgcmV0dXJuIG51bGw7XG4gIFxuICBsZXQgcHJvdG8gPSBfLmV4dGVuZChPYmplY3QuY3JlYXRlKEhUTUxFbGVtZW50LnByb3RvdHlwZSksIHtcbiAgICBjcmVhdGVkQ2FsbGJhY2s6IGZ1bmN0aW9uKCkge1xuICAgICAgbGV0IGhyZWYgPSB0aGlzLmdldEF0dHJpYnV0ZSgnc3JjJyk7XG4gICAgICBpZiAoaHJlZiAmJiBocmVmLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmVxdWlyZU1vZHVsZShocmVmKTtcbiAgICAgIH1cbiAgICB9LCBcbiAgICBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2s6IGZ1bmN0aW9uKGF0dHJOYW1lLCBvbGRWYWwsIG5ld1ZhbCkge1xuICAgICAgaWYgKGF0dHJOYW1lICE9PSAnc3JjJykgcmV0dXJuO1xuICAgICAgcmVxdWlyZU1vZHVsZShuZXdWYWwpO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGRvY3VtZW50LnJlZ2lzdGVyRWxlbWVudCgneC1yZXF1aXJlJywgeyBwcm90b3R5cGU6IHByb3RvIH0pO1xufSkoKTtcbiJdfQ==