"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]; } }; };