Skip to content

Commit 08f44a4

Browse files
committed
Remove handling for impossible error
1 parent cc27b51 commit 08f44a4

File tree

1 file changed

+7
-15
lines changed

1 file changed

+7
-15
lines changed

dom/src/main/scala/org/http4s/dom/WebSocketClient.scala

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,6 @@ import scodec.bits.ByteVector
4343
import scala.scalajs.js
4444
import scala.scalajs.js.JSConverters._
4545

46-
final class WebSocketException private[dom] (
47-
private[dom] val reason: String
48-
) extends RuntimeException(reason)
49-
5046
object WebSocketClient {
5147

5248
def apply[F[_]](implicit F: Async[F]): WSClientHighLevel[F] = new WSClientHighLevel[F] {
@@ -88,8 +84,6 @@ object WebSocketClient {
8884
val reason = exitCase match {
8985
case Resource.ExitCase.Succeeded =>
9086
None
91-
case Resource.ExitCase.Errored(ex: WebSocketException) =>
92-
Some(ex.reason)
9387
case Resource.ExitCase.Errored(ex) =>
9488
val reason = ex.toString
9589
// reason must be no longer than 123 bytes of UTF-8 text
@@ -127,26 +121,24 @@ object WebSocketClient {
127121

128122
def receive: F[Option[WSDataFrame]] = semaphore
129123
.permit
130-
.use(_ => OptionT(messages.take).semiflatMap(decodeMessage).value)
124+
.surround(OptionT(messages.take).map(decodeMessage).value)
131125
.race(error.get.rethrow)
132126
.map(_.merge)
133127

134128
override def receiveStream: Stream[F, WSDataFrame] =
135129
Stream
136130
.resource(semaphore.permit)
137131
.flatMap(_ => Stream.fromQueueNoneTerminated(messages))
138-
.evalMap(decodeMessage)
132+
.map(decodeMessage)
139133
.concurrently(Stream.exec(error.get.rethrow.widen))
140134

141-
private def decodeMessage(e: MessageEvent): F[WSDataFrame] =
135+
private def decodeMessage(e: MessageEvent): WSDataFrame =
142136
e.data match {
143-
case s: String => WSFrame.Text(s).pure.widen[WSDataFrame]
137+
case s: String => WSFrame.Text(s)
144138
case b: js.typedarray.ArrayBuffer =>
145-
WSFrame.Binary(ByteVector.fromJSArrayBuffer(b)).pure.widen[WSDataFrame]
146-
case _ =>
147-
F.raiseError[WSDataFrame](
148-
new WebSocketException(s"Unsupported data: ${js.typeOf(e.data)}")
149-
)
139+
WSFrame.Binary(ByteVector.fromJSArrayBuffer(b))
140+
case _ => // this should never happen
141+
throw new RuntimeException
150142
}
151143

152144
override def sendText(text: String): F[Unit] =

0 commit comments

Comments
 (0)