var del = require('del');
var path = require('path');

module.exports = {
    assign: glueTasks
};

function glueTasks (gulp, options) {
    gulp.task('clean', () => {
        return del(
            options.entries.map((entry) => {
                if (entry.forEachFolderIn) {
                    return path.join(
                        entry.forEachFolderIn,
                        '*',
                        entry.output + '.js'
                    );
                }

                return path.join(
                    entry.output + '.js'
                );

            }).concat(
                options.sassFiles.map((sassFile) => {
                    if (sassFile.forEachFolderIn) {
                        return path.join(
                            sassFile.forEachFolderIn,
                            '*',
                            sassFile.output,
                            path.basename(sassFile.input, path.extname(sassFile.input)) + '.css'
                        );
                    }

                    return path.join(
                        sassFile.output,
                        path.basename(sassFile.input, path.extname(sassFile.input)) + '.css'
                    );
                })
            ).concat(options.toClean)
        );
    });

    gulp.task('build',
        gulp.series(
            'clean',
            'webpack',
            'sass'
        )
    );

    gulp.task('dev',
        gulp.series(
            'build',
            function() {
                gulp.watch(
                    options.sassFiles.map((sassFile) => {
                        if (sassFile.forEachFolderIn) {
                            return path.join(
                                sassFile.forEachFolderIn,
                                '*',
                                sassFile.output,
                                path.basename(sassFile.input)
                            );
                        }

                        return path.join(
                            sassFile.output,
                            path.basename(sassFile.input)
                        );
                    }),
                    gulp.series('sass')
                );
            }
        )
    );
}

@@ -1522,39 +1522,21 @@
     
-gulp.watch(%0A                   
+var toWatch =
  opt
@@ -1582,36 +1582,32 @@
                 
-    
 if (sassFile.for
@@ -1638,36 +1638,32 @@
                 
-    
 return path.join
@@ -1656,36 +1656,32 @@
 turn path.join(%0A
-    
                 
@@ -1742,37 +1742,29 @@
             
-    
 '*',%0A
-    
             
@@ -1792,82 +1792,14 @@
 ile.
-output,%0A                                path.basename(sassFile.input)%0A    
+input%0A
     
@@ -1833,36 +1833,32 @@
                 
-    
 %7D%0A%0A             
@@ -1868,58 +1868,15 @@
     
-    
 return 
-path.join(%0A                            
 sass
@@ -1872,39 +1872,38 @@
 return sassFile.
-output,
+input;
 %0A               
@@ -1894,32 +1894,38 @@
 %0A               
+ %7D);%0A%0A
              pat
@@ -1925,37 +1925,36 @@
     
-path.basename(sassFile.input)
+   // console.log(toWatch);%0A
 %0A   
@@ -1962,34 +1962,35 @@
             
-        );
+gulp.watch(
 %0A           
@@ -1998,18 +1998,23 @@
         
-%7D)
+toWatch
 ,%0A      

correct CSS watcher