Skip to content

Commit

Permalink
fix(engine.io-parser): do not expose the TransformStream type
Browse files Browse the repository at this point in the history
The previous commit [1] tried to work around the fact that the
TransformStream object is not exposed in the global scope in the
`@types/node` package, even though it is since Node.js `v18.0.0`.

Unfortunately, it created two new issues:

- using an older `@types/node` version (before v16) would fail with:

> error TS2307: Cannot find module 'node:stream/web' or its corresponding type declarations.

Related: #5064 (comment)

- browser-only environments would somehow include the node types,
leading to conflicts like the return value of the setTimeout() method

Related:

- #5064 (comment)
- #5065

[1]: socketio/engine.io-parser@0305b4a
  • Loading branch information
darrachequesne committed Jul 11, 2024
1 parent 04033b2 commit f9cb983
Showing 1 changed file with 2 additions and 7 deletions.
9 changes: 2 additions & 7 deletions packages/engine.io-parser/lib/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,6 @@ import {
BinaryType,
ERROR_PACKET,
} from "./commons.js";
// we can't import TransformStream as a value because it was added in Node.js v16.5.0, so it would break on older Node.js versions
// reference: https://nodejs.org/api/webstreams.html#class-transformstream
import type { TransformStream } from "node:stream/web";

const SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text

Expand Down Expand Up @@ -49,8 +46,7 @@ const decodePayload = (
return packets;
};

export function createPacketEncoderStream() {
// @ts-expect-error
export function createPacketEncoderStream(): any {
return new TransformStream({
transform(packet: Packet, controller) {
encodePacketToBinary(packet, (encodedPacket) => {
Expand Down Expand Up @@ -117,7 +113,7 @@ const enum State {
export function createPacketDecoderStream(
maxPayload: number,
binaryType: BinaryType,
) {
): any {
if (!TEXT_DECODER) {
TEXT_DECODER = new TextDecoder();
}
Expand All @@ -126,7 +122,6 @@ export function createPacketDecoderStream(
let expectedLength = -1;
let isBinary = false;

// @ts-expect-error
return new TransformStream({
transform(chunk: Uint8Array, controller) {
chunks.push(chunk);
Expand Down

0 comments on commit f9cb983

Please sign in to comment.