/* eslint-disable @typescript-eslint/no-unused-vars */ import { Dicer } from '.' import * as fs from 'fs' import * as stream from 'stream' function testDicerSyntax () { const opts: Dicer.Config = { boundary: 'testing', } const dicer = new Dicer(opts) const opts2: Dicer.Config = { headerFirst: true, maxHeaderPairs: 1, } const opts3: Dicer.Config = { boundary: 'more-testing', headerFirst: false, maxHeaderPairs: 8, } dicer.setBoundary('new-testing-boundary') dicer.on('part', handleDicerPartStream) dicer.on('finish', () => { console.log('dicer parsing finished') }) dicer.on('preamble', part => { console.log('dicer preamble to new part') }) dicer.on('trailer', data => { console.log(`dicer trailing data found: ${data.length} bytes`) }) dicer.on('close', () => { console.log('dicer close') }) dicer.on('drain', () => { console.log('dicer drain') }) dicer.on('error', err => { console.error(`dicer error: ${err.message || JSON.stringify(err)}`) }) dicer.on('finish', () => { console.log('dicer finish') }) dicer.on('pipe', (src: stream.Readable) => { console.log('dicer pipe') }) dicer.on('unpipe', (src: stream.Readable) => { console.log('dicer unpipe') }) const inputFileStream = fs.createReadStream('in-test-file.txt') inputFileStream.pipe(dicer) } /** * Handle a part found by a Dicer parser * * @param part Part found */ function handleDicerPartStream (part: Dicer.PartStream) { console.log('dicer part found') const outputFileStream = fs.createWriteStream('out-test-file.txt') part.on('readable', () => { console.log('part readable') }) part.on('header', header => { console.log(`part header found:\n${JSON.stringify(header)}`) }) part.on('data', () => { console.log('part data') }) part.on('finish', () => { console.log('part finished') }) part.on('error', err => { console.error(`part error: ${err.message || JSON.stringify(err)}`) }) part.on('end', () => { console.log('part ended') }) part.on('close', () => { console.log('part closed') }) part.pipe(outputFileStream) }