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;