noe reading correctly

This commit is contained in:
2017-04-30 00:25:31 +02:00
parent be2fd470d6
commit 3cd7355872
33 changed files with 445 additions and 18 deletions

View File

@ -1,9 +1 @@
import * as plugins from './smartgulp.plugins'
export let src = () => {
}
export let dest = () => {
}
export * from './smartgulp.gulpapi'

View File

@ -0,0 +1,30 @@
// 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)
}
}

26
ts/smartgulp.gulpapi.ts Normal file
View File

@ -0,0 +1,26 @@
// this file contains the implementation of the standard gulp api
import * as plugins from './smartgulp.plugins'
import { GulpStream } from './smartgulp.classes.gulpstream'
import { Transform } from 'stream'
import { Smartfile } from 'smartfile'
export let src = (minimatchPathArrayArg: string[]): Transform => {
let gulpStream = new GulpStream()
let handleFiles = async () => {
let smartfileArray: Smartfile[] = []
for (let minimatchPath of minimatchPathArrayArg) {
let localSmartfileArray = await plugins.smartfile.fs.fileTreeToObject(process.cwd(), minimatchPath)
smartfileArray = plugins.lodash.concat(smartfileArray, localSmartfileArray)
}
gulpStream.pipeSmartfileArray(smartfileArray)
}
handleFiles().catch(err => {
console.log(err)
})
return gulpStream.stream
}
export let dest = () => {
}

View File

@ -1,5 +1,11 @@
import * as smartevent from 'smartevent'
import * as smartfile from 'smartfile'
import * as smartstream from 'smartstream'
import * as lodash from 'lodash'
export {
lodash,
smartevent,
smartfile,
smartstream
}
}