jspm-devtools
Version:
Make development great again!
66 lines (47 loc) • 1.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.devtools = exports.run = exports.storage = undefined;
require('systemjs-hmr');
var _socket = require('socket.io-client');
var _socket2 = _interopRequireDefault(_socket);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var storage = {
_socket: null
};
var run = function run(name, fn) {
for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
args[_key - 2] = arguments[_key];
}
return storage[name] ? storage[name] : Promise.resolve(fn.apply(args)).then(function (result) {
storage[name] = result || true;
});
};
var connect = function connect(port) {
if (storage._socket == null) {
(function () {
var socket = storage._socket = (0, _socket2.default)("https://" + window.location.hostname + ":" + port);
socket.on('connect', function () {
socket.emit('identification', navigator.userAgent);
});
socket.on('reload', function () {
document.location.reload(true);
});
socket.on('change', function (event) {
System.reload(event.path);
});
})();
}
};
var defaultOptions = {
port: 1337
};
var devtools = function devtools() {
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var options = Object.assign({}, defaultOptions, opts);
connect(options.port);
};
exports.storage = storage;
exports.run = run;
exports.devtools = devtools;