UNPKG

wampy

Version:

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

87 lines (84 loc) 2.9 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/utils.ts var utils_exports = {}; __export(utils_exports, { getNewPromise: () => getNewPromise, getWebSocket: () => getWebSocket }); module.exports = __toCommonJS(utils_exports); // 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; } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { getNewPromise, getWebSocket }); //# sourceMappingURL=utils.cjs.map