Files
purescript-fetch/src/Effect.Aff.HTTP/Response.Node.purs
2024-06-10 12:16:33 -05:00

27 lines
781 B
Plaintext

module Effect.Aff.HTTP.Response.Node
( module X
, buffer
, stream
) where
import Prelude
import Control.Promise (Promise)
import Control.Promise as Promise
import Effect (Effect)
import Effect.Aff.Class (class MonadAff, liftAff)
import Effect.Class (class MonadEffect, liftEffect)
import Effect.Aff.HTTP.Response (Response)
import Effect.Aff.HTTP.Response hiding (stream) as X
import Node.Buffer (Buffer)
import Node.Stream (Readable)
foreign import bufferImpl :: Response -> Effect (Promise Buffer)
foreign import streamImpl :: Response -> Effect (Readable ())
buffer :: forall m. MonadAff m => Response -> m Buffer
buffer = liftAff <<< Promise.toAffE <<< bufferImpl
stream :: forall m. MonadEffect m => Response -> m (Readable ())
stream = liftEffect <<< streamImpl