import gulp from 'gulp'; import rename from 'gulp-rename'; import uglify from 'gulp-uglify-es'; import replace from 'gulp-replace'; import jsdoc from 'gulp-jsdoc3'; import connect from 'gulp-connect'; import jscpd from 'gulp-jscpd'; import eslint from 'gulp-eslint'; import gutil from 'gulp-util'; import fs from 'fs'; var NodeParams = fs .readFileSync('./resources/doc-includes/NodeParams.txt') .toString(); var ContainerParams = fs .readFileSync('./resources/doc-includes/ContainerParams.txt') .toString(); var ShapeParams = fs .readFileSync('./resources/doc-includes/ShapeParams.txt') .toString(); const conf = JSON.parse(fs.readFileSync('./package.json')); function build() { return gulp .src(['./konva.js']) .pipe(replace('@@shapeParams', ShapeParams)) .pipe(replace('@@nodeParams', NodeParams)) .pipe(replace('@@containerParams', ContainerParams)) .pipe(replace('@@version', conf.version)) .pipe(replace('@@date', new Date().toDateString())); } gulp.task('update-version-lib', function () { return gulp .src(['./lib/Global.js']) .pipe(replace('@@version', conf.version)) .pipe(rename('Global.js')) .pipe(gulp.dest('./lib')); }); // create usual build konva.js and konva.min.js gulp.task('pre-build', function () { return build() .pipe(rename('konva.js')) .pipe(gulp.dest('./')) .pipe( uglify.default({ output: { comments: /^!|@preserve|@license|@cc_on/i } }) ) .on('error', function (err) { gutil.log(gutil.colors.red('[Error]'), err.toString()); }) .pipe(rename('konva.min.js')) .pipe(gulp.dest('./')); }); gulp.task('build', gulp.parallel(['update-version-lib', 'pre-build'])); // local server for better development gulp.task('server', function () { connect.server(); }); // lint files gulp.task('lint', function () { return ( gulp .src('./src/**/*.js') .pipe( eslint({ configFile: './.eslintrc', }) ) // eslint.format() outputs the lint results to the console. // Alternatively use eslint.formatEach() (see Docs). .pipe(eslint.format()) // To have the process exit with an error code (1) on // lint error, return the stream and pipe to failOnError last. .pipe(eslint.failOnError()) ); }); // check code for duplication gulp.task('inspect', function () { return gulp.src('./src/**/*.js').pipe( jscpd({ 'min-lines': 10, verbose: true, }) ); }); // // generate documentation gulp.task('api', function () { return gulp.src('./konva.js').pipe( jsdoc({ opts: { destination: './api', }, }) ); }); gulp.task('default', gulp.parallel(['server']));