'use strict'; let gulp = require('gulp'), rename = require('gulp-rename'), notify = require('gulp-notify'), autoprefixer = require('gulp-autoprefixer'), sass = require('gulp-sass'), uglify = require('gulp-uglify'), plumber = require('gulp-plumber' ), checktextdomain = require('gulp-checktextdomain'); //frontend gulp.task( 'jet-blocks', () => { return gulp.src( './assets/scss/jet-blocks.scss' ) .pipe( plumber( { errorHandler: function( error ) { console.log( '=================ERROR=================' ); console.log( error.message ); this.emit( 'end' ); } } ) ) .pipe( sass( { outputStyle: 'compressed' } ) ) .pipe( autoprefixer( { browsers: ['last 10 versions'], cascade: false } ) ) .pipe( rename( 'jet-blocks.css' ) ) .pipe( gulp.dest( './assets/css/' ) ) .pipe( notify( 'Compile Sass Done!' ) ); } ); //frontend-rtl gulp.task( 'jet-blocks-rtl', () => { return gulp.src( './assets/scss/jet-blocks-rtl.scss' ) .pipe( plumber( { errorHandler: function( error ) { console.log( '=================ERROR=================' ); console.log( error.message ); this.emit( 'end' ); } } ) ) .pipe( sass( { outputStyle: 'compressed' } ) ) .pipe( autoprefixer( { browsers: ['last 10 versions'], cascade: false } ) ) .pipe( rename( 'jet-blocks-rtl.css' ) ) .pipe( gulp.dest( './assets/css/' ) ) .pipe( notify( 'Compile Sass Done!' ) ); } ); //frontend-template gulp.task( 'jet-blocks-template', () => { return gulp.src( './assets/scss/jet-blocks-template.scss' ) .pipe( plumber( { errorHandler: function( error ) { console.log( '=================ERROR=================' ); console.log( error.message ); this.emit( 'end' ); } } ) ) .pipe( sass( { outputStyle: 'compressed' } ) ) .pipe( autoprefixer( { browsers: ['last 10 versions'], cascade: false } ) ) .pipe( rename( 'jet-blocks.css' ) ) .pipe( gulp.dest( './assets/css/templates' ) ) .pipe( notify( 'Compile Sass Done!' ) ); } ); //frontend-template-rtl gulp.task( 'jet-blocks-template-rtl', () => { return gulp.src( './assets/scss/jet-blocks-template-rtl.scss' ) .pipe( plumber( { errorHandler: function( error ) { console.log( '=================ERROR=================' ); console.log( error.message ); this.emit( 'end' ); } } ) ) .pipe( sass( { outputStyle: 'compressed' } ) ) .pipe( autoprefixer( { browsers: ['last 10 versions'], cascade: false } ) ) .pipe( rename( 'jet-blocks-rtl.css' ) ) .pipe( gulp.dest( './assets/css/templates' ) ) .pipe( notify( 'Compile Sass Done!' ) ); } ); //icons gulp.task( 'jet-blocks-icons', () => { return gulp.src( './assets/scss/jet-blocks-icons.scss' ) .pipe( plumber( { errorHandler: function( error ) { console.log( '=================ERROR=================' ); console.log( error.message ); this.emit( 'end' ); } } ) ) .pipe( sass( { outputStyle: 'compressed' } ) ) .pipe( autoprefixer( { browsers: ['last 10 versions'], cascade: false } ) ) .pipe( rename( 'jet-blocks-icons.css' ) ) .pipe( gulp.dest( './assets/css/' ) ) .pipe( notify( 'Compile Sass Done!' ) ); } ); //editor gulp.task( 'jet-blocks-editor', () => { return gulp.src( './assets/scss/jet-blocks-editor.scss' ) .pipe( plumber( { errorHandler: function( error ) { console.log( '=================ERROR=================' ); console.log( error.message ); this.emit( 'end' ); } } ) ) .pipe( sass( { outputStyle: 'compressed' } ) ) .pipe( autoprefixer( { browsers: ['last 10 versions'], cascade: false } ) ) .pipe( rename( 'jet-blocks-editor.css' ) ) .pipe( gulp.dest( './assets/css/' ) ) .pipe( notify( 'Compile Sass Done!' ) ); } ); //admin gulp.task( 'jet-blocks-admin', () => { return gulp.src( './assets/scss/jet-blocks-admin.scss' ) .pipe( plumber( { errorHandler: function( error ) { console.log( '=================ERROR=================' ); console.log( error.message ); this.emit( 'end' ); } } ) ) .pipe( sass( { outputStyle: 'compressed' } ) ) .pipe( autoprefixer( { browsers: ['last 10 versions'], cascade: false } ) ) .pipe( rename( 'jet-blocks-admin.css' ) ) .pipe( gulp.dest( './assets/css/' ) ) .pipe( notify( 'Compile Sass Done!' ) ); } ); // Minify JS gulp.task( 'jet-blocks-js-minify', function() { return gulp.src( './assets/js/jet-blocks.js' ) .pipe( uglify() ) .pipe( rename( { extname: '.min.js' } ) ) .pipe( gulp.dest( './assets/js/' ) ) .pipe( notify( 'js Minify Done!' ) ); } ); // Minify Editor JS gulp.task( 'jet-blocks-editor-js-minify', function() { return gulp.src( './assets/js/jet-blocks-editor.js' ) .pipe( uglify() ) .pipe( rename( { extname: '.min.js' } ) ) .pipe( gulp.dest( './assets/js/' ) ) .pipe( notify( 'js editor Minify Done!' ) ); } ); //watch gulp.task( 'watch', () => { gulp.watch( './assets/scss/**', gulp.series( 'jet-blocks' ) ); gulp.watch( './assets/scss/**', gulp.series( 'jet-blocks-rtl', ) ); gulp.watch( './assets/scss/**', gulp.series( 'jet-blocks-template' ) ); gulp.watch( './assets/scss/**', gulp.series( 'jet-blocks-template-rtl' ) ); gulp.watch( './assets/scss/**', gulp.series( 'jet-blocks-editor' ) ); gulp.watch( './assets/scss/**', gulp.series( 'jet-blocks-admin' ) ); gulp.watch( './assets/scss/**', gulp.series( 'jet-blocks-icons' ) ); gulp.watch( './assets/js/jet-blocks.js', gulp.series( 'jet-blocks-js-minify' ) ); gulp.watch( './assets/js/jet-blocks-editor.js', gulp.series( 'jet-blocks-editor-js-minify' ) ); } ); //check text-domain gulp.task( 'checktextdomain', () => { return gulp.src( '**/*.php' ) .pipe( checktextdomain( { text_domain: 'jet-blocks', keywords: [ '__:1,2d', '_e:1,2d', '_x:1,2c,3d', 'esc_html__:1,2d', 'esc_html_e:1,2d', 'esc_html_x:1,2c,3d', 'esc_attr__:1,2d', 'esc_attr_e:1,2d', 'esc_attr_x:1,2c,3d', '_ex:1,2c,3d', '_n:1,2,4d', '_nx:1,2,4c,5d', '_n_noop:1,2,3d', '_nx_noop:1,2,3c,4d', 'translate_nooped_plural:1,2c,3d' ], } ) ); } );