UNPKG

webpack-dev-server

Version:

Serves a webpack app. Updates the browser on changes.

36 lines (35 loc) 1.28 kB
import getCurrentScriptSource from "./getCurrentScriptSource.js"; /** * @param {string} resourceQuery * @returns {{ [key: string]: string | boolean }} */ function parseURL(resourceQuery) { /** @type {{ [key: string]: string }} */ var options = {}; if (typeof resourceQuery === "string" && resourceQuery !== "") { var searchParams = resourceQuery.slice(1).split("&"); for (var i = 0; i < searchParams.length; i++) { var pair = searchParams[i].split("="); options[pair[0]] = decodeURIComponent(pair[1]); } } else { // Else, get the url from the <script> this file was called with. var scriptSource = getCurrentScriptSource(); var scriptSourceURL; try { // The placeholder `baseURL` with `window.location.href`, // is to allow parsing of path-relative or protocol-relative URLs, // and will have no effect if `scriptSource` is a fully valid URL. scriptSourceURL = new URL(scriptSource, self.location.href); } catch (error) { // URL parsing failed, do nothing. // We will still proceed to see if we can recover using `resourceQuery` } if (scriptSourceURL) { options = scriptSourceURL; options.fromCurrentScript = true; } } return options; } export default parseURL;