43 lines
1.6 KiB
Plaintext
43 lines
1.6 KiB
Plaintext
module Pipes.Node.Zlib where
|
|
|
|
import Prelude
|
|
|
|
import Control.Monad.Error.Class (class MonadThrow)
|
|
import Data.Maybe (Maybe)
|
|
import Effect (Effect)
|
|
import Effect.Aff.Class (class MonadAff)
|
|
import Effect.Class (liftEffect)
|
|
import Effect.Exception (Error)
|
|
import Node.Buffer (Buffer)
|
|
import Node.Stream.Object as O
|
|
import Node.Zlib as Zlib
|
|
import Node.Zlib.Types (ZlibStream)
|
|
import Pipes.Core (Pipe)
|
|
import Pipes.Node.Stream (fromTransform)
|
|
|
|
fromZlib :: forall r m. MonadAff m => MonadThrow Error m => Effect (ZlibStream r) -> Pipe (Maybe Buffer) (Maybe Buffer) m Unit
|
|
fromZlib z = do
|
|
raw <- liftEffect $ Zlib.toDuplex <$> z
|
|
fromTransform $ O.fromBufferTransform raw
|
|
|
|
gzip :: forall m. MonadAff m => MonadThrow Error m => Pipe (Maybe Buffer) (Maybe Buffer) m Unit
|
|
gzip = fromZlib Zlib.createGzip
|
|
|
|
gunzip :: forall m. MonadAff m => MonadThrow Error m => Pipe (Maybe Buffer) (Maybe Buffer) m Unit
|
|
gunzip = fromZlib Zlib.createGunzip
|
|
|
|
unzip :: forall m. MonadAff m => MonadThrow Error m => Pipe (Maybe Buffer) (Maybe Buffer) m Unit
|
|
unzip = fromZlib Zlib.createUnzip
|
|
|
|
inflate :: forall m. MonadAff m => MonadThrow Error m => Pipe (Maybe Buffer) (Maybe Buffer) m Unit
|
|
inflate = fromZlib Zlib.createInflate
|
|
|
|
deflate :: forall m. MonadAff m => MonadThrow Error m => Pipe (Maybe Buffer) (Maybe Buffer) m Unit
|
|
deflate = fromZlib Zlib.createDeflate
|
|
|
|
brotliCompress :: forall m. MonadAff m => MonadThrow Error m => Pipe (Maybe Buffer) (Maybe Buffer) m Unit
|
|
brotliCompress = fromZlib Zlib.createBrotliCompress
|
|
|
|
brotliDecompress :: forall m. MonadAff m => MonadThrow Error m => Pipe (Maybe Buffer) (Maybe Buffer) m Unit
|
|
brotliDecompress = fromZlib Zlib.createBrotliDecompress
|