1
1
2
+ import { Readable } from ' node:stream'
2
3
import * as stream from ' node:stream/promises'
3
4
import { generate } from ' csv-generate'
4
5
import { parse } from ' ../lib/index.js'
@@ -15,8 +16,10 @@ describe 'API stream.finished', ->
15
16
await stream .finished parser
16
17
records .length .should .eql 10
17
18
18
- it ' resolved with `to_line` ' , ->
19
+ it ' aborted ( with generate()) ' , ->
19
20
# See https://github.com/adaltas/node-csv/issues/333
21
+ # See https://github.com/adaltas/node-csv/issues/410
22
+ # Prevent `Error [ERR_STREAM_PREMATURE_CLOSE]: Premature close`
20
23
records = []
21
24
parser = generate (length : 10 ).pipe parse to_line : 3
22
25
parser .on ' readable' , () =>
@@ -25,6 +28,24 @@ describe 'API stream.finished', ->
25
28
await stream .finished parser
26
29
records .length .should .eql 3
27
30
31
+ it .skip ' aborted (with Readable)' , ->
32
+ # See https://github.com/adaltas/node-csv/issues/333
33
+ # See https://github.com/adaltas/node-csv/issues/410
34
+ # Prevent `Error [ERR_STREAM_PREMATURE_CLOSE]: Premature close`
35
+ records = []
36
+ reader = new Readable
37
+ highWaterMark : 10
38
+ read : (size ) ->
39
+ for i in [0 ... size]
40
+ this .push " #{ size} ,#{ i} \n "
41
+ parser = reader .pipe parse to_line : 3
42
+ parser .on ' readable' , () =>
43
+ while (record = parser .read ()) isnt null
44
+ records .push record
45
+ await stream .finished parser
46
+ console .log records
47
+ records .length .should .eql 3
48
+
28
49
it ' rejected on error' , ->
29
50
parser = parse to_line : 3
30
51
parser .write ' a,b,c\n '
0 commit comments