UNPKG

electron-compile

Version:

Electron supporting package to compile JS and CSS in Electron applications

61 lines (45 loc) 4.48 kB
'use strict'; 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==