summaryrefslogtreecommitdiff
path: root/tools/node_modules/eslint/node_modules/uri-js/src/schemes/http.ts
blob: 3e53145cc357dd8fa50b6fde41f8d87192095329 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import { URISchemeHandler, URIComponents, URIOptions } from "../uri";

const handler:URISchemeHandler = {
	scheme : "http",

	domainHost : true,

	parse : function (components:URIComponents, options:URIOptions):URIComponents {
		//report missing host
		if (!components.host) {
			components.error = components.error || "HTTP URIs must have a host.";
		}

		return components;
	},

	serialize : function (components:URIComponents, options:URIOptions):URIComponents {
		//normalize the default port
		if (components.port === (String(components.scheme).toLowerCase() !== "https" ? 80 : 443) || components.port === "") {
			components.port = undefined;
		}
		
		//normalize the empty path
		if (!components.path) {
			components.path = "/";
		}

		//NOTE: We do not parse query strings for HTTP URIs
		//as WWW Form Url Encoded query strings are part of the HTML4+ spec,
		//and not the HTTP spec.

		return components;
	}
};

export default handler;