Skip to content

Commit 4971914

Browse files
fix: fix usage with vite
It seems vite has issues with absolute dependencies in the "browser" field, so we'll provide a quick workaround. Related: - socketio/socket.io-client#1494 - socketio/socket.io-client#1495
1 parent b3bb73a commit 4971914

File tree

5 files changed

+31
-5
lines changed

5 files changed

+31
-5
lines changed

lib/transports/polling-xhr.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* global attachEvent */
22

3-
import * as XMLHttpRequestModule from "xmlhttprequest-ssl";
3+
import XMLHttpRequest from "./xmlhttprequest.js";
44
import debugModule from "debug"; // debug()
55
import globalThis from "../globalThis.js";
66
import { installTimerFunctions, pick } from "../util.js";
@@ -10,8 +10,6 @@ import { SocketOptions } from "../socket.js";
1010

1111
const debug = debugModule("engine.io-client:polling-xhr"); // debug()
1212

13-
const XMLHttpRequest = XMLHttpRequestModule.default || XMLHttpRequestModule;
14-
1513
/**
1614
* Empty function
1715
*/
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
// browser shim for xmlhttprequest module
2+
3+
import hasCORS from "has-cors";
4+
import globalThis from "../globalThis.js";
5+
6+
export default function(opts) {
7+
const xdomain = opts.xdomain;
8+
9+
// XMLHttpRequest can be disabled on IE
10+
try {
11+
if ("undefined" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {
12+
return new XMLHttpRequest();
13+
}
14+
} catch (e) {}
15+
16+
if (!xdomain) {
17+
try {
18+
return new globalThis[["Active"].concat("Object").join("X")](
19+
"Microsoft.XMLHTTP"
20+
);
21+
} catch (e) {}
22+
}
23+
}

lib/transports/xmlhttprequest.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import * as XMLHttpRequestModule from "xmlhttprequest-ssl";
2+
3+
const XMLHttpRequest = XMLHttpRequestModule.default || XMLHttpRequestModule;
4+
5+
export default XMLHttpRequest;

support/package.cjs.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"type": "commonjs",
33
"browser": {
44
"ws": false,
5-
"xmlhttprequest-ssl": "./xmlhttprequest.js",
5+
"./transports/xmlhttprequest.js": "./transports/xmlhttprequest.browser.js",
66
"./transports/websocket-constructor.js": "./transports/websocket-constructor.browser.js",
77
"./globalThis.js": "./globalThis.browser.js"
88
}

support/package.esm.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"type": "module",
33
"browser": {
44
"ws": false,
5-
"xmlhttprequest-ssl": "./xmlhttprequest.js",
5+
"./transports/xmlhttprequest.js": "./transports/xmlhttprequest.browser.js",
66
"./transports/websocket-constructor.js": "./transports/websocket-constructor.browser.js",
77
"./globalThis.js": "./globalThis.browser.js"
88
}

0 commit comments

Comments
 (0)