import { dest, src, task, watch } from 'gulp'; import { createProject } from 'gulp-typescript'; import uglify from 'gulp-uglify'; import merge from 'merge2'; import pump from 'pump'; import gulpTypedoc from 'gulp-typedoc'; const project = createProject('tsconfig.json'); const tsSrc = ['src/**/*.ts', '!src/__tests__/**']; task('compile', () => { const result = src(tsSrc) .pipe(project()); return merge([ result.dts.pipe(dest('definition')), result.js.pipe(dest('lib')) ]); }); task('compress', ['compile'], (cb) => { pump([ src('lib/**/*.js'), uglify(), dest('lib') ]) }); // http://typedoc.org/guides/doccomments/ task('doc', () => { pump([ src(['src/**/**.ts']), gulpTypedoc({ mode: 'file', module: 'commonjs', target: 'esnext', out: 'docs/', name: 'GSS API Client', exclude: '**/__tests__/**' }) ]); }); task('build', ['compress', 'doc']); task('default', ['compress']); task('watch', () => { watch(tsSrc, ['compile']) });