'use strict'; const path = require("path"); const xtend = require("xtend"); const runProcess = require("@joepie91/gulp-partial-run-process"); const namedLog = require("gulp-named-log"); const defaultValue = require("default-value"); const getProjectRoot = require("./get-project-root"); module.exports = function(options = {}) { let electronLogger = namedLog("electron"); let environmentVariables = xtend(process.env, { NODE_ENV: "development" }); let electronBinary = defaultValue(options.electronBinary, () => { return path.join(getProjectRoot(), "node_modules", ".bin", "electron"); }, {evaluate: true}); let projectRoot = defaultValue(options.projectRoot, () => { return getProjectRoot(); }, {evaluate: true}); let processArguments = [projectRoot]; if (options.arguments != null && Array.isArray(options.arguments)) { processArguments = options.arguments.concat(processArguments); } if (options.environmentVariables != null) { environmentVariables = xtend(environmentVariables, options.environmentVariables); } var electronProcess = runProcess(electronBinary, processArguments, { logger: electronLogger, env: environmentVariables }); return { kill: electronProcess.kill.bind(electronProcess), pid: electronProcess.pid } }