| 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; |