'use strict';

const $ = require('gulp-load-plugins')();
const gulp = require('gulp');
const combine = require('stream-combiner2').obj;
const extend = require('extend');
const pathJoin = require('../path.join.js');
const ignoreFiles = require("../ignore-files");

module.exports = function(options) {

    options = extend(true, {
        sourcemaps: false,
        pug: false,
        dest: "",
        pugOptions: {
            pretty: '\t'
        }
    }, options);

    if(!("data" in options.pugOptions) && "pugData" in options && !!options.pugData) {
        options.pugOptions.data = require('base_src' in options ? pathJoin(process.cwd(), options.base_src, options.pugData) : pathJoin(process.cwd(), options.pugData));
    }

    return function() {
        var stream = combine(
            gulp.src(options.src),

            $.if("ignoreFiles" in options, ignoreFiles.stream(options.ignoreFiles)),

            //$.changed('base_dest' in options ? pathJoin(options.base_dest, options.dest) : options.dest, {extension: '.html'}),//решить проблему с редактированием .json и посмотреть что в стилях происходит меняетья файл если редактировать подключаемый файл

            $.if(options.sourcemaps, $.sourcemaps.init()),

            $.if(options.pug, $.pug(options.pugOptions)),

            $.if(options.sourcemaps, $.sourcemaps.write('.'))
        ).on('error', $.notify.onError());

        stream.pipe(gulp.dest('base_dest' in options ? pathJoin(options.base_dest, options.dest) : options.dest))
            .on('error', $.notify.onError());

        if("writeHTMLHandler" in options) {
            stream.pipe(options.writeHTMLHandler({stream: true}))
                .on('error', $.notify.onError());
        }

        return stream;
    };

};
@@ -159,24 +159,50 @@
 ('extend');%0A
+const fs = require(%22fs%22);%0A
 const pathJo
@@ -230,24 +230,24 @@
 .join.js');%0A
-
 const ignore
@@ -486,24 +486,52 @@
  options);%0A%0A
+    return function() %7B%0A    
     if(!(%22da
@@ -609,24 +609,28 @@
 ) %7B%0A        
+    
 options.pugO
@@ -643,23 +643,42 @@
 .data = 
-require
+JSON.parse(fs.readFileSync
 ('base_s
@@ -800,40 +800,21 @@
 ta))
+)
 ;%0A    
-%7D%0A%0A
     
-return function() %7B
+%7D%0A
 %0A   

fix PUG reload json file tasks and not cached json file(del require paste readFileSync)