Skip to content

Commit 0305b4a

Browse files
fix(typescript): properly import the TransformStream type
When compiling with TypeScript with module set to "node16" and moduleResolution to "node16", the following error would be thrown: > node_modules/engine.io-parser/build/cjs/index.d.ts:6:54 - error TS2304: Cannot find name 'TransformStream'. > 6 export declare function createPacketEncoderStream(): TransformStream<Packet, any>; > ~~~~~~~~~~~~~~~ > node_modules/engine.io-parser/build/cjs/index.d.ts:7:96 - error TS2304: Cannot find name 'TransformStream'. > 7 export declare function createPacketDecoderStream(maxPayload: number, binaryType: BinaryType): TransformStream<Uint8Array, any>; > ~~~~~~~~~~~~~~~ > Found 2 errors in the same file, starting at: node_modules/engine.io-parser/build/cjs/index.d.ts:6 This is because 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`. Reference: https://nodejs.org/api/webstreams.html#class-transformstream Note: we only import the TransformStream type (not value) because it isn't defined on older Node.js versions. Related: - https://github.com/socketio/engine.io-parser/issues/136 - socketio/socket.io-client#1606
1 parent 08cff77 commit 0305b4a

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

lib/index.ts

+5
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ import {
77
BinaryType,
88
ERROR_PACKET,
99
} from "./commons.js";
10+
// 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
11+
// reference: https://nodejs.org/api/webstreams.html#class-transformstream
12+
import type { TransformStream } from "node:stream/web";
1013

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

@@ -47,6 +50,7 @@ const decodePayload = (
4750
};
4851

4952
export function createPacketEncoderStream() {
53+
// @ts-expect-error
5054
return new TransformStream({
5155
transform(packet: Packet, controller) {
5256
encodePacketToBinary(packet, (encodedPacket) => {
@@ -122,6 +126,7 @@ export function createPacketDecoderStream(
122126
let expectedLength = -1;
123127
let isBinary = false;
124128

129+
// @ts-expect-error
125130
return new TransformStream({
126131
transform(chunk: Uint8Array, controller) {
127132
chunks.push(chunk);

package-lock.json

+6-6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)