| 1234567891011121314151617181920212223242526272829303132333435363738394041 | function isSecure(wsComponents) {    return typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === "wss";}//RFC 6455const 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
 |