1 | var gulp = require("gulp");
|
2 | var fs = require("fs");
|
3 | var del = require("del");
|
4 | var ts = require("gulp-typescript");
|
5 | var merge = require("merge2");
|
6 | const jsdoc = require('gulp-jsdoc3');
|
7 | var sourcemaps = require('gulp-sourcemaps');
|
8 | var path = require('path');
|
9 |
|
10 | var config = JSON.parse(fs.readFileSync(__dirname + "/tsconfig.json"));
|
11 |
|
12 | gulp.task("default", function() {
|
13 | console.log("Main commands:");
|
14 | console.log("build build the lynx library");
|
15 | console.log("\n");
|
16 | console.log("Other commands:");
|
17 | console.log(
|
18 | "compile compile all the typescript files to the dist folder"
|
19 | );
|
20 | console.log(
|
21 | "copy copy all the files (!.ts) from the source folder to the dist folder"
|
22 | );
|
23 | console.log("clean delete the dist folder");
|
24 | });
|
25 |
|
26 | gulp.task("copy", function() {
|
27 | return gulp
|
28 | .src(["lynx/**", "!lynx/**/*.ts"])
|
29 | .pipe(gulp.dest(config.compilerOptions.outDir));
|
30 | });
|
31 |
|
32 | gulp.task("clean", function() {
|
33 | return del(config.compilerOptions.outDir);
|
34 | });
|
35 |
|
36 | gulp.task("compile", function() {
|
37 | var tsProject = ts.createProject(__dirname + "/tsconfig.json");
|
38 | var tsResult = tsProject.src().pipe(sourcemaps.init()).pipe(tsProject());
|
39 | return merge([
|
40 | tsResult.js.pipe(gulp.dest(config.compilerOptions.outDir)),
|
41 | tsResult.dts.pipe(gulp.dest(config.compilerOptions.outDir)),
|
42 | tsResult.js.pipe(sourcemaps.write({
|
43 | includeContent: false,
|
44 | sourceRoot: function (file) {
|
45 | return path.relative(path.dirname(file.path), file.base);
|
46 | }
|
47 | }))
|
48 | ]);
|
49 | });
|
50 |
|
51 | gulp.task('doc', function (cb) {
|
52 | const config = require(__dirname + '/jsdoc.json');
|
53 | config.opts.destination = __dirname + config.opts.destination;
|
54 | console.log(__dirname + '/lynx/**/*.ts');
|
55 | gulp.src([__dirname + '/README.md', __dirname + '/lynx/**/*.ts'], { read: false })
|
56 | .pipe(jsdoc(config, cb));
|
57 | });
|
58 |
|
59 | gulp.task("build", gulp.series("clean", gulp.parallel("copy", "compile")));
|