| 1234567891011121314151617181920212223242526272829303132333435363738394041 | 
							- function isSecure(wsComponents) {
 
-     return typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === "wss";
 
- }
 
- //RFC 6455
 
- const handler = {
 
-     scheme: "ws",
 
-     domainHost: true,
 
-     parse: function (components, options) {
 
-         const wsComponents = components;
 
-         //indicate if the secure flag is set
 
-         wsComponents.secure = isSecure(wsComponents);
 
-         //construct resouce name
 
-         wsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');
 
-         wsComponents.path = undefined;
 
-         wsComponents.query = undefined;
 
-         return wsComponents;
 
-     },
 
-     serialize: function (wsComponents, options) {
 
-         //normalize the default port
 
-         if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === "") {
 
-             wsComponents.port = undefined;
 
-         }
 
-         //ensure scheme matches secure flag
 
-         if (typeof wsComponents.secure === 'boolean') {
 
-             wsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws');
 
-             wsComponents.secure = undefined;
 
-         }
 
-         //reconstruct path from resource name
 
-         if (wsComponents.resourceName) {
 
-             const [path, query] = wsComponents.resourceName.split('?');
 
-             wsComponents.path = (path && path !== '/' ? path : undefined);
 
-             wsComponents.query = query;
 
-             wsComponents.resourceName = undefined;
 
-         }
 
-         //forbid fragment component
 
-         wsComponents.fragment = undefined;
 
-         return wsComponents;
 
-     }
 
- };
 
- export default handler;
 
- //# sourceMappingURL=ws.js.map
 
 
  |