UNPKG

wampy

Version:

Amazingly fast, feature-rich, lightweight WAMP Javascript client (for browser and node.js)

59 lines (58 loc) 1.83 kB
// src/constants.ts var isNode = typeof process === "object" && Object.prototype.toString.call(process) === "[object process]"; // src/utils.ts function isWebSocketSchemeSpecified(url) { return /^ws(s)?:\/\//.test(url); } function getServerUrlForNode(url) { return isWebSocketSchemeSpecified(url) ? url : null; } function getServerUrlForBrowser(url) { if (url && isWebSocketSchemeSpecified(url)) { return url; } const isSecureProtocol = globalThis.location.protocol === "https:"; const scheme = isSecureProtocol ? "wss://" : "ws://"; const port = globalThis.location.port ? `:${globalThis.location.port}` : ""; if (!url) { return `${scheme}${globalThis.location.hostname}${port}/ws`; } if (url.startsWith("/")) { return `${scheme}${globalThis.location.hostname}${port}${url}`; } return `${scheme}${url}`; } function getWebSocketFromWindowObject(parsedUrl, protocols) { if (globalThis?.WebSocket) { return new globalThis.WebSocket(parsedUrl, protocols); } return null; } function getWebSocket({ url, protocols, options, isBrowserMock } = {}) { const { ws, additionalHeaders, wsRequestOptions } = options || {}; const isActualNode = isNode && !isBrowserMock; if (!ws && isActualNode) { return null; } const parsedUrl = isActualNode ? getServerUrlForNode(url) : getServerUrlForBrowser(url); if (!parsedUrl) { return null; } if (ws) { return new ws(parsedUrl, protocols, null, additionalHeaders, wsRequestOptions); } return getWebSocketFromWindowObject(parsedUrl, protocols); } function getNewPromise() { const deferred = {}; deferred.promise = new Promise(function(resolve, reject) { deferred.onSuccess = resolve; deferred.onError = reject; }); return deferred; } export { getNewPromise, getWebSocket }; //# sourceMappingURL=utils.js.map