| | |
| | | /* global __resourceQuery */ |
| | | |
| | | "use strict"; |
| | | |
| | | /* global __resourceQuery */ |
| | | |
| | | var urlBase = decodeURIComponent(__resourceQuery.slice(1)); |
| | | |
| | |
| | | */ |
| | | exports.keepAlive = function (options) { |
| | | var data = options.data; |
| | | var onError = options.onError; |
| | | var active = options.active; |
| | | var module = options.module; |
| | | |
| | | /** |
| | | * @param {Error} err error |
| | | */ |
| | | function errorHandler(err) { |
| | | err.message = |
| | | "Problem communicating active modules to the server: " + err.message; |
| | | options.onError(err); |
| | | } |
| | | |
| | | /** @type {Promise<import("http") | import("https")>} */ |
| | | var mod = require("./load-http")(urlBase.startsWith("https")); |
| | | |
| | | /** @type {import("http").ClientRequest} */ |
| | | var request; |
| | | /** @type {import("http").IncomingMessage} */ |
| | | var response; |
| | | var request = ( |
| | | urlBase.startsWith("https") ? require("https") : require("http") |
| | | ).request( |
| | | |
| | | mod.then(function (client) { |
| | | request = client.request( |
| | | urlBase + data, |
| | | { |
| | | agent: false, |
| | |
| | | function (res) { |
| | | response = res; |
| | | response.on("error", errorHandler); |
| | | if (!active && !module.hot) { |
| | | |
| | | if (!options.active && !options.module.hot) { |
| | | console.log( |
| | | "Hot Module Replacement is not enabled. Waiting for process restart..." |
| | | ); |
| | |
| | | } |
| | | ); |
| | | |
| | | /** |
| | | * @param {Error} err error |
| | | */ |
| | | function errorHandler(err) { |
| | | err.message = |
| | | "Problem communicating active modules to the server: " + err.message; |
| | | onError(err); |
| | | } |
| | | request.on("error", errorHandler); |
| | | request.end(); |
| | | }); |
| | | |
| | | return function () { |
| | | if (response) { |
| | | response.destroy(); |
| | | } |
| | | }; |
| | | }; |
| | | |
| | | /** |
| | | * @param {string} value new url value |
| | | */ |
| | | exports.setUrl = function (value) { |
| | | urlBase = value; |
| | | }; |