From 4e92059ec2fd5623af67c32ee06e08ff979e9066 Mon Sep 17 00:00:00 2001 From: Jovi De Croock Date: Wed, 2 Sep 2026 19:33:59 +0200 Subject: [PATCH] fix stream-node writable type --- .changeset/fuzzy-streams-write.md | 5 +++++ package-lock.json | 15 ++++++++------- package.json | 1 + src/stream-node.d.ts | 4 ++-- tsconfig.json | 11 ++++++++--- 5 files changed, 24 insertions(+), 12 deletions(-) create mode 100644 .changeset/fuzzy-streams-write.md diff --git a/.changeset/fuzzy-streams-write.md b/.changeset/fuzzy-streams-write.md new file mode 100644 index 00000000..34286956 --- /dev/null +++ b/.changeset/fuzzy-streams-write.md @@ -0,0 +1,5 @@ +--- +"preact-render-to-string": patch +--- + +Use Node's `Writable` type for `renderToPipeableStream` destinations. diff --git a/package-lock.json b/package-lock.json index d21a1397..cd08520e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,6 +15,7 @@ "@changesets/changelog-github": "^1.0.0", "@changesets/cli": "^3.0.0", "@preact/signals-core": "^1.11.0", + "@types/node": "^20.19.43", "baseline-rts": "npm:preact-render-to-string@latest", "benchmarkjs-pretty": "^2.0.1", "check-export-map": "^1.3.1", @@ -3159,13 +3160,13 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "24.0.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.6.tgz", - "integrity": "sha512-ZOyn+gOs749xU7ovp+Ibj0g1o3dFRqsfPnT22C2t5JzcRvgsEDpGawPbCISGKLudJk9Y0wiu9sYd6kUh0pc9TA==", + "version": "20.19.43", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.43.tgz", + "integrity": "sha512-6oYBAi5ikg4Pl+kGsoYtawUMBT2zZMCvPNF7pVLnHZfd1zf38DRiWn/gT01RYCdUqkv7Fhr+C9ot4/tb+2sVvA==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~7.8.0" + "undici-types": "~6.21.0" } }, "node_modules/@types/parse-json": { @@ -12412,9 +12413,9 @@ } }, "node_modules/undici-types": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", - "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", "dev": true, "license": "MIT" }, diff --git a/package.json b/package.json index beeffa10..d2098369 100644 --- a/package.json +++ b/package.json @@ -115,6 +115,7 @@ "@changesets/changelog-github": "^1.0.0", "@changesets/cli": "^3.0.0", "@preact/signals-core": "^1.11.0", + "@types/node": "^20.19.43", "baseline-rts": "npm:preact-render-to-string@latest", "benchmarkjs-pretty": "^2.0.1", "check-export-map": "^1.3.1", diff --git a/src/stream-node.d.ts b/src/stream-node.d.ts index eaa554cb..7b7df38a 100644 --- a/src/stream-node.d.ts +++ b/src/stream-node.d.ts @@ -1,5 +1,5 @@ import { VNode } from 'preact'; -import { WritableStream } from 'node:stream'; +import { Writable } from 'node:stream'; interface RenderToPipeableStreamOptions { nonce?: string; @@ -10,7 +10,7 @@ interface RenderToPipeableStreamOptions { interface PipeableStream { abort: (reason?: unknown) => void; - pipe: (writable: WritableStream) => void; + pipe: (writable: Writable) => void; } export function renderToPipeableStream

( diff --git a/tsconfig.json b/tsconfig.json index 2b99684e..e1143731 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -10,15 +10,20 @@ "strictFunctionTypes": true, "baseUrl": "../", "typeRoots": [ - "../" + "../", + "./node_modules/@types" ], "jsx": "react", "jsxFactory": "h", - "types": [], + "types": [ + "node" + ], "noEmit": true, "forceConsistentCasingInFileNames": true }, "files": [ - "src/index.d.ts" + "src/index.d.ts", + "src/stream.d.ts", + "src/stream-node.d.ts" ] } \ No newline at end of file