const { series, src, dest } = require('gulp');
const tap = require('gulp-tap');

function helloWorld(cb) {
    console.log('hello world');
    cb();
}

function helloWorldPromise() {
    return new Promise((resolve, reject) => {
        console.log('hello world promise');
	resolve();
    });
}

function reverseTextFiles() {
    return src('*.txt')
        .pipe(tap(file => reverseText(file)))
        .pipe(dest('output/'));
}

function reverseText(file) {
    let reversed = file.contents.toString()
        .split("")
        .reverse()
        .join("");
    file.contents = Buffer.from(reversed);
}

exports.default = helloWorld;
exports.helloWorld = helloWorld;
exports.helloWorldPromise = helloWorldPromise;
exports.promiseFirst = series(helloWorldPromise, helloWorld);
exports.reverse = reverseTextFiles;