This commit is contained in:
Leo Vasanko 2025-09-01 20:21:20 -06:00
parent 028313eb27
commit 0e7858b15d

View File

@ -5,7 +5,8 @@ class AwaitableWebSocket extends WebSocket {
#opened = false #opened = false
constructor(resolve, reject, url, protocols, binaryType) { constructor(resolve, reject, url, protocols, binaryType) {
super(url, protocols) // Support relative URLs even on old browsers that don't
super(new URL(url, location.href.replace(/^http/, 'ws')), protocols)
this.binaryType = binaryType || 'blob' this.binaryType = binaryType || 'blob'
this.onopen = () => { this.onopen = () => {
this.#opened = true this.#opened = true
@ -74,10 +75,10 @@ class AwaitableWebSocket extends WebSocket {
} }
} }
// Construct an async WebSocket with await aWebSocket(url) - supports relative URLs even with old browsers that don't // Construct an async WebSocket with await aWebSocket(url) - relative URLs OK
export default function aWebSocket(url, options = {}) { export default function aWebSocket(url, options = {}) {
const { protocols, binaryType } = options const { protocols, binaryType } = options
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
new AwaitableWebSocket(resolve, reject, new URL(url, location.href), protocols, binaryType) new AwaitableWebSocket(resolve, reject, url, protocols, binaryType)
}) })
} }