-
Notifications
You must be signed in to change notification settings - Fork 1
/
gulpfile.ts
51 lines (38 loc) · 1.28 KB
/
gulpfile.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import gulp from 'gulp';
import ts from 'gulp-typescript';
import del from 'del';
import run from 'gulp-run';
// import replace from 'gulp-replace';
// import rename from 'gulp-rename';
/*
Gulp is for an itemized build so you can easily
pick exactly what files you want without tree shaking.
So this is for lib / cjs build.
*/
const { compilerOptions: tsconfig } = require('./tsconfig.json');
const pkg = require('./package.json');
const getDir = (fileName: string) => fileName.split('/')[0];
gulp.task('clean', () =>
del(['.tmp', getDir(pkg.main), '*.log', getDir(pkg.umd)])
);
const build = (
src = [
'src/**/*.ts?(x)',
'!src/**/*.spec.ts?(x)',
'!src/**/*.test.ts?(x)',
'!src/test/**/*',
],
dest = 'lib'
) => () =>
gulp
.src(src)
.pipe(ts(tsconfig))
.pipe(gulp.dest(dest));
gulp.task('build', build());
const docsClean = () => del(['docs']);
gulp.task('docs:clean', docsClean);
const docsApiWebsite = () => run('yarn docs:api:website', { verbosity: 3 }).exec();
const docsApiMarkdown = () => run('yarn docs:api:markdown', { verbosity: 3 }).exec();
const noJekyll = () => gulp.src('.nojekyll').pipe(gulp.dest('docs'));
gulp.task('default', gulp.series('clean', 'build'));
gulp.task('docs', gulp.series(docsClean, docsApiWebsite, docsApiMarkdown, noJekyll));