You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.0 KiB
JavaScript
51 lines
1.0 KiB
JavaScript
"use strict";
|
|
|
|
var electron = require("electron");
|
|
var uuid = require("uuid");
|
|
|
|
module.exports = function () {
|
|
var windows = {};
|
|
|
|
function packFunction(func) {
|
|
return ";" + func.toString() + ";" + func.name + "();";
|
|
}
|
|
|
|
function loadLiveReload() {
|
|
var scriptTag = document.createElement("script");
|
|
scriptTag.src = "http://127.0.0.1:35729/livereload.js";
|
|
document.querySelector("head").appendChild(scriptTag);
|
|
}
|
|
|
|
return {
|
|
create: function create(options) {
|
|
var id = uuid.v4();
|
|
var window = new electron.BrowserWindow(options);
|
|
|
|
if (options.url != null) {
|
|
window.loadURL(options.url);
|
|
}
|
|
|
|
if (options.loadDeveloperTools) {
|
|
window.webContents.openDevTools();
|
|
}
|
|
|
|
if (options.liveReload) {
|
|
window.webContents.on("dom-ready", function () {
|
|
window.webContents.executeJavaScript(packFunction(loadLiveReload));
|
|
});
|
|
}
|
|
|
|
windows[id] = window;
|
|
|
|
window.on("closed", function () {
|
|
delete windows[id];
|
|
});
|
|
|
|
return window;
|
|
},
|
|
get: function get(id) {
|
|
return windows[id];
|
|
}
|
|
};
|
|
};
|