UNPKG

taskerify

Version:

A task-builder based on Laravel-Elixir.

43 lines (33 loc) 1.5 kB
'use strict'; var gulp = require('gulp'); var fileinclude = require('gulp-file-include'); var fixJson = require('gulp-fix-json'); var jsonFormat = require('gulp-json-format'); var rename = require("gulp-rename"); var Taskerify = require('./../index'); var $ = Taskerify.Plugins; var config = Taskerify.config; Taskerify.extend('partialifyJson', function (src, output, options) { var paths = new Taskerify.GulpPaths().src(src || config.get('src.json.folder')).output(output || config.get('dist.json.outputFolder')); new Taskerify.Task('partialify-json', function () { options = options || {}; var configs = { prefix: options.prefix || '@@', basepath: options.basepath || '@file', indent: options.indent || 2 }; var sources = false; src = src || false; output = output || false; if (src && output) sources = true; this.log(paths.src, paths.output); var errorHandler = function errorHandler(e) { new Taskerify.Notification().error(e, 'Parsing JSON failed'); this.emit('end'); }; return gulp.src(paths.src.path).pipe(fileinclude({ prefix: configs.prefix, basepath: configs.basepath })).pipe(fixJson()).on('error', errorHandler).pipe(jsonFormat(configs.indent)).pipe($.if(sources, rename(paths.output.name, paths.src.name))).pipe(gulp.dest(paths.output.baseDir)).pipe(new Taskerify.Notification('JSON generated')); }).watch((paths.src.baseDir || config.get('src.json.folder')) + '/**/*.json'); });