blob: 3e53145cc357dd8fa50b6fde41f8d87192095329 [file] [log] [blame]
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;