@@ -37,10 +37,12 @@ module Node.Stream
37
37
import Prelude
38
38
39
39
import Effect (Effect )
40
- import Effect.Exception (throw , Error () )
40
+ import Effect.Exception (throw , Error )
41
41
import Data.Either (Either (..))
42
42
import Data.Maybe (Maybe (..), fromMaybe )
43
- import Node.Buffer (Buffer ())
43
+ import Node.Buffer (Buffer )
44
+ import Data.Nullable as N
45
+ import Effect.Uncurried (EffectFn1 , mkEffectFn1 )
44
46
import Node.Buffer as Buffer
45
47
import Node.Encoding (Encoding )
46
48
@@ -249,20 +251,28 @@ foreign import unpipeAll
249
251
. Readable w
250
252
-> Effect Unit
251
253
254
+ foreign import writeImpl
255
+ :: forall r
256
+ . Writable r
257
+ -> Buffer
258
+ -> EffectFn1 (N.Nullable Error ) Unit
259
+ -> Effect Boolean
260
+
252
261
-- | Write a Buffer to a writable stream.
253
- foreign import write
262
+ write
254
263
:: forall r
255
264
. Writable r
256
265
-> Buffer
257
- -> (Error -> Effect Unit )
266
+ -> (Maybe Error -> Effect Unit )
258
267
-> Effect Boolean
268
+ write w b cb = writeImpl w b $ mkEffectFn1 (cb <<< N .toMaybe)
259
269
260
270
foreign import writeStringImpl
261
271
:: forall r
262
272
. Writable r
263
273
-> String
264
274
-> String
265
- -> ( Error -> Effect Unit )
275
+ -> EffectFn1 ( N.Nullable Error ) Unit
266
276
-> Effect Boolean
267
277
268
278
-- | Write a string in the specified encoding to a writable stream.
@@ -271,9 +281,9 @@ writeString
271
281
. Writable r
272
282
-> Encoding
273
283
-> String
274
- -> (Error -> Effect Unit )
284
+ -> (Maybe Error -> Effect Unit )
275
285
-> Effect Boolean
276
- writeString w enc = writeStringImpl w (show enc)
286
+ writeString w enc s cb = writeStringImpl w (show enc) s $ mkEffectFn1 (cb <<< N .toMaybe )
277
287
278
288
-- | Force buffering of writes.
279
289
foreign import cork :: forall r . Writable r -> Effect Unit
@@ -299,12 +309,19 @@ setDefaultEncoding
299
309
-> Effect Unit
300
310
setDefaultEncoding r enc = setDefaultEncodingImpl r (show enc)
301
311
302
- -- | End writing data to the stream.
303
- foreign import end
312
+ foreign import endImpl
304
313
:: forall r
305
314
. Writable r
315
+ -> EffectFn1 (N.Nullable Error ) Unit
306
316
-> Effect Unit
317
+
318
+ -- | End writing data to the stream.
319
+ end
320
+ :: forall r
321
+ . Writable r
322
+ -> (Maybe Error -> Effect Unit )
307
323
-> Effect Unit
324
+ end w cb = endImpl w $ mkEffectFn1 (cb <<< N .toMaybe)
308
325
309
326
-- | Destroy the stream. It will release any internal resources.
310
327
--
0 commit comments