chartjs-plugin-funnel
Version:
The funnel plugin for Chart.js
108 lines (98 loc) • 3.12 kB
JavaScript
var gulp = require("gulp");
var rename = require("gulp-rename");
var jshint = require("gulp-jshint");
var replace = require("gulp-replace");
var insert = require("gulp-insert");
var streamify = require("gulp-streamify");
var browserify = require("browserify");
var uglify = require("gulp-uglifyes");
var concat = require("gulp-concat");
var source = require("vinyl-source-stream");
var merge = require("merge-stream");
var collapse = require("bundle-collapser/plugin");
var Server = require("karma").Server;
var buble = require("gulp-buble");
var package = require("./package.json");
var sourcemaps = require("gulp-sourcemaps");
var header =
"/*!\n" +
" * Chart.Funnel.js\n" +
" * A funnel plugin for Chart.js(http://chartjs.org/)\n" +
" * Version: {{ version }}\n" +
" *\n" +
" * Copyright 2016 Jone Casaper & YetiForce\n" +
" * Released under the MIT license\n" +
" * https://github.com/xch89820/Chart.Funnel.js/blob/master/LICENSE.md\n" +
" */\n";
gulp.task("js", function() {
// Bundled library
var bundled = browserify("./src/chart.funnel.js", {
standalone: "Chart.Funnel"
})
.plugin(collapse)
.bundle()
.pipe(source("chart.funnel.bundled.js"))
.pipe(insert.prepend(header))
.pipe(streamify(replace("{{ version }}", package.version)))
.pipe(streamify(jshint()))
.pipe(jshint.reporter("default"))
.pipe(gulp.dest("dist"))
.pipe(streamify(uglify()))
.pipe(insert.prepend(header))
.pipe(streamify(replace("{{ version }}", package.version)))
.pipe(streamify(concat("chart.funnel.bundled.min.js")))
.pipe(gulp.dest("dist"));
var nonBundled = browserify("./src/chart.funnel.js", {
standalone: "Chart.Funnel"
})
.ignore("chart.js")
.plugin(collapse)
.bundle()
.pipe(source("chart.funnel.js"))
.pipe(insert.prepend(header))
.pipe(streamify(replace("{{ version }}", package.version)))
.pipe(streamify(jshint()))
.pipe(jshint.reporter("default"))
.pipe(gulp.dest("dist"))
.pipe(streamify(uglify()))
.pipe(insert.prepend(header))
.pipe(streamify(replace("{{ version }}", package.version)))
.pipe(streamify(concat("chart.funnel.min.js")))
.pipe(gulp.dest("dist"));
return merge(bundled, nonBundled);
});
gulp.task("jshint", function() {
return gulp
.src("src/**/*.js")
.pipe(jshint("config.jshintrc"))
.pipe(jshint.reporter("jshint-stylish"))
.pipe(jshint.reporter("fail"));
});
gulp.task("compile-min", () =>
gulp
.src("dist/chart.funnel.js")
.pipe(sourcemaps.init())
.pipe(
rename({
suffix: ".min"
})
)
.pipe(uglify())
.pipe(buble())
.pipe(sourcemaps.write("."))
.pipe(gulp.dest("dist"))
);
// For CI
gulp.task("unittest.ci", function(done) {
new Server(
{
configFile: __dirname + "/karma.conf.ci.js",
singleRun: true
},
done
).start();
});
gulp.task("test.ci", ["jshint", "unittest.ci"]);
gulp.task("default", function() {
gulp.watch("src/**/*.js", ["js"]);
});