UNPKG

coveo-slider

Version:

Coveo's enhanced slider component using HTML5 input range

90 lines (74 loc) 2.55 kB
const autoprefixer = require('gulp-autoprefixer'); const concat = require('gulp-concat'); const gulp = require('gulp'); const karma = require('karma').Server; const merge = require('merge2'); const rename = require('gulp-rename'); const sass = require('gulp-sass'); const sourcemaps = require('gulp-sourcemaps'); const typescript = require('gulp-typescript'); const uglify = require('gulp-uglify'); const isCIBuild = process.env.CI; const tsProject = typescript.createProject('tsconfig.json'); gulp.task('ts:compile', () => { const tsResult = gulp.src([ './src/**/*.ts']) .pipe(sourcemaps.init()) .pipe(tsProject()); return merge([ tsResult.js .pipe(concat('Coveo.Slider.js')) .pipe(sourcemaps.write('./dist/js/')) .pipe(gulp.dest('./dist/js/')), tsResult.dts .pipe(gulp.dest('./dist/js/')), ]); }); gulp.task('ts:minify', () => { return gulp.src('./dist/js/Coveo.Slider.js') .pipe(uglify()) .pipe(rename('Coveo.Slider.min.js')) .pipe(gulp.dest('./dist/js/')); }); gulp.task('ts', gulp.series('ts:compile', 'ts:minify')); const tsTestProject = typescript.createProject({ declarationFiles: false, target: 'ES5', outDir: 'specs', noEmitOnError: false, }); gulp.task('test:compile', () => { return merge([ gulp.src([ './dist/js/Slider.d.ts', './src/Slider.d.ts', './specs/**/*.ts'], {cwd: './'}) .pipe(tsTestProject()) .pipe(gulp.dest('./specs')), ]); }); gulp.task('test:run', (done) => { const config = { configFile: __dirname + '/karma.conf.js', }; if (isCIBuild) { config.reporters = ['mocha', 'coverage', 'coveralls']; } new karma(config).start().then(done); }); gulp.task('test', gulp.series('test:compile', 'test:run')); gulp.task('sass', () => { return gulp.src(['./scss/**/*.scss']) .pipe(sourcemaps.init()) .pipe(sass().on('error', sass.logError)) .pipe(autoprefixer()) .pipe(rename('Coveo.Slider.css')) .pipe(sourcemaps.write('../css')) .pipe(gulp.dest('./dist/css')); }); gulp.task('watch', () => { gulp.watch('./src/**/*.ts', gulp.series('ts')); gulp.watch('./specs/**/*.ts', gulp.series('test:compile')); gulp.watch('./scss/**/*.scss', gulp.series('sass')); }); gulp.task('default', gulp.series('ts', 'sass', 'test'));