twitst4tz

twitter statistics web application
Log | Files | Refs | README | LICENSE

http.ts (946B)


      1 import { URISchemeHandler, URIComponents, URIOptions } from "../uri";
      2 
      3 const handler:URISchemeHandler = {
      4 	scheme : "http",
      5 
      6 	domainHost : true,
      7 
      8 	parse : function (components:URIComponents, options:URIOptions):URIComponents {
      9 		//report missing host
     10 		if (!components.host) {
     11 			components.error = components.error || "HTTP URIs must have a host.";
     12 		}
     13 
     14 		return components;
     15 	},
     16 
     17 	serialize : function (components:URIComponents, options:URIOptions):URIComponents {
     18 		//normalize the default port
     19 		if (components.port === (String(components.scheme).toLowerCase() !== "https" ? 80 : 443) || components.port === "") {
     20 			components.port = undefined;
     21 		}
     22 		
     23 		//normalize the empty path
     24 		if (!components.path) {
     25 			components.path = "/";
     26 		}
     27 
     28 		//NOTE: We do not parse query strings for HTTP URIs
     29 		//as WWW Form Url Encoded query strings are part of the HTML4+ spec,
     30 		//and not the HTTP spec.
     31 
     32 		return components;
     33 	}
     34 };
     35 
     36 export default handler;