-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgulpfile.js
70 lines (60 loc) · 1.63 KB
/
gulpfile.js
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
const { src, dest, series, parallel } = require('gulp');
const tslint = require('gulp-tslint');
const gulpCopy = require('gulp-copy');
const ts = require('gulp-typescript');
const lab = require('gulp-lab');
const nodemon = require('gulp-nodemon');
const clean = require('gulp-clean');
var tsProject = ts.createProject('tsconfig.json');
function cleanBuild() {
return src('dist', { read: false }).pipe(clean());
}
function lint() {
return src(['src/**/*.ts', 'test/**/*.ts'])
.pipe(tslint({ formatter: 'verbose' }))
.pipe(tslint.report());
}
function copyResources() {
return src(['package.json']).pipe(gulpCopy('dist'));
}
function compile() {
return tsProject
.src()
.pipe(tsProject())
.js.pipe(dest('dist'));
}
function startServer() {
return nodemon({
script: 'dist/src/darkstar.js',
watch: ['src'],
tasks: ['compile'],
ext: 'js json ts',
});
}
function runTests() {
return src('dist/test').pipe(lab('--reporter console'));
}
function watchTest() {
return watch(['src/**/*.ts', 'test/**/*.ts'], 'cleanTest');
}
function runTestsCI() {
return src('dist/test').pipe(
lab(
//"-c -r junit -o report/test.xml -r clover -o report/coverage.xml -r console -o stdout",
'-r junit -o report/test.xml -r console -o stdout'
)
);
}
exports.clean = cleanBuild;
exports.lint = lint;
exports.compile = compile;
exports.build = parallel(copyResources, compile);
exports.test = series(exports.build, runTests);
exports.cleanTest = series(cleanBuild, runTests);
exports.start = series(exports.build, startServer);
exports.ci = series(
exports.build,
//lint,
runTestsCI
);
exports.watch = watchTest;