1 | import { Writable } from 'stream'
|
2 | import { DeferredPromise } from '@naturalcycles/js-lib'
|
3 | import { TransformOptions } from '../stream.model'
|
4 |
|
5 | export interface WritableVoidOptions extends TransformOptions {
|
6 | |
7 |
|
8 |
|
9 | streamDone?: DeferredPromise
|
10 | }
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 | export function writableVoid(opt: WritableVoidOptions = {}): Writable {
|
18 | return new Writable({
|
19 | objectMode: true,
|
20 | ...opt,
|
21 | write(chunk, _, cb) {
|
22 | cb()
|
23 | },
|
24 | final(cb) {
|
25 | cb()
|
26 | opt.streamDone?.resolve()
|
27 | },
|
28 | })
|
29 | }
|