smartgulp/ts/smartgulp.classes.gulpstream.ts
2017-04-30 00:25:31 +02:00

31 lines
818 B
TypeScript

// this file contains the code to generate and handle the stream
import * as plugins from './smartgulp.plugins'
import { Smartfile } from 'smartfile'
import { Transform } from 'stream'
export class GulpStream {
stream = new Transform({ objectMode: true })
/**
* allows you to pipe a SmartfileArray into the stream
*/
async pipeSmartfileArray(smartfileArray: Smartfile[]) {
// ensure what we get is an array
if (!Array.isArray(smartfileArray)) {
throw new Error('fileArg has unknown format')
}
for (let smartfile of smartfileArray) {
let hasWritten = this.stream.push(smartfile)
if (!hasWritten) {
await plugins.smartevent.once(this.stream, 'drain')
} else {
// iterate
}
};
// signal end of stream;
this.stream.push(null)
}
}