smartgulp/ts/smartgulp.gulpapi.ts

40 lines
1.1 KiB
TypeScript
Raw Normal View History

2017-04-29 22:25:31 +00:00
// this file contains the implementation of the standard gulp api
2018-03-03 12:57:55 +00:00
import * as plugins from './smartgulp.plugins';
import { GulpStream } from './smartgulp.classes.gulpstream';
import { Transform } from 'stream';
2017-04-29 22:25:31 +00:00
2018-09-02 12:35:49 +00:00
import { Smartfile } from '@pushrocks/smartfile';
2017-04-29 22:25:31 +00:00
export let src = (minimatchPathArrayArg: string[]): Transform => {
2018-03-03 12:57:55 +00:00
let gulpStream = new GulpStream();
2017-04-29 22:25:31 +00:00
let handleFiles = async () => {
2018-03-03 12:57:55 +00:00
let smartfileArray: Smartfile[] = [];
2017-04-29 22:25:31 +00:00
for (let minimatchPath of minimatchPathArrayArg) {
2018-03-03 12:57:55 +00:00
let localSmartfileArray = await plugins.smartfile.fs.fileTreeToObject(
process.cwd(),
minimatchPath
);
smartfileArray = plugins.lodash.concat(smartfileArray, localSmartfileArray);
2017-04-29 22:25:31 +00:00
}
2018-03-03 12:57:55 +00:00
gulpStream.pipeSmartfileArray(smartfileArray);
};
2017-04-29 22:25:31 +00:00
handleFiles().catch(err => {
2018-03-03 12:57:55 +00:00
console.log(err);
});
return gulpStream.stream;
};
2017-04-29 22:25:31 +00:00
2018-03-03 12:57:55 +00:00
export let dest = (dirArg: string) => {};
2018-02-15 23:46:55 +00:00
export let replace = () => {
2018-03-03 12:57:55 +00:00
return plugins.through2.obj(
async (file: Smartfile, enc, cb) => {
await file.write();
cb(null, file);
},
cb => {
cb();
}
);
};