From c07e413750c5ca1632e6d3405a3cfbdf8d24c84e Mon Sep 17 00:00:00 2001 From: Antonio Nuno Monteiro Date: Thu, 5 Sep 2024 17:25:14 +0200 Subject: [PATCH] fix: type of pipeable stream to allow objects with keys (#854) * fix: type of pipeable stream to allow objects with keys * fix: test --- src/ReactDOMServerNode.re | 7 ++++--- src/ReactDOMServerNode.rei | 6 +++--- test/ReactDOM__test.re | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/ReactDOMServerNode.re b/src/ReactDOMServerNode.re index eea22122b..6bdabed44 100644 --- a/src/ReactDOMServerNode.re +++ b/src/ReactDOMServerNode.re @@ -24,14 +24,15 @@ type options = { progressiveChunkSize: option(int), }; -type pipeableStream = { +type pipeableStream('a) = { /* Using empty object instead of Node.stream since Melange don't provide a binding to node's Stream (https://nodejs.org/api/stream.html) */ - pipe: Js.t({.}) => unit, + pipe: Js.t({..} as 'a) => unit, abort: unit => unit, }; [@mel.module "react-dom/server"] -external renderToPipeableStream: (React.element, options) => pipeableStream = +external renderToPipeableStream: + (React.element, options) => pipeableStream('a) = "renderToPipeableStream"; let renderToPipeableStream = diff --git a/src/ReactDOMServerNode.rei b/src/ReactDOMServerNode.rei index 2153fbfee..2301cc2ce 100644 --- a/src/ReactDOMServerNode.rei +++ b/src/ReactDOMServerNode.rei @@ -24,9 +24,9 @@ type options = { progressiveChunkSize: option(int), }; -type pipeableStream = { +type pipeableStream('a) = { /* Using empty object instead of Node.stream since Melange don't provide a binding to node's Stream (https://nodejs.org/api/stream.html) */ - pipe: Js.t({.}) => unit, + pipe: Js.t({..} as 'a) => unit, abort: unit => unit, }; @@ -45,4 +45,4 @@ let renderToPipeableStream: ~progressiveChunkSize: int=?, React.element ) => - pipeableStream; + pipeableStream('a); diff --git a/test/ReactDOM__test.re b/test/ReactDOM__test.re index 73f770ad3..7d82ad6eb 100644 --- a/test/ReactDOM__test.re +++ b/test/ReactDOM__test.re @@ -53,7 +53,7 @@ describe("ReactDOM", () => { hasErrored := true; }, ); - let {pipe, abort: _}: ReactDOMServerNode.pipeableStream = + let {pipe, abort: _}: ReactDOMServerNode.pipeableStream(_) = ReactDOMServerNode.renderToPipeableStream(
"Hello world!"->React.string
, );