1 |
|
2 | "use strict";
|
3 | var gulp = require("gulp");
|
4 | var sourcemaps = require("gulp-sourcemaps");
|
5 | const debug = require("../log/compile");
|
6 | const size = require('../log/size');
|
7 |
|
8 | const pkgVar = require('../lib/package-var');
|
9 | var replace = require("../lib/multi-replace");
|
10 |
|
11 | var error = require("../log/error");
|
12 |
|
13 | var TITLE = "typescript:";
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 | function compileTS(config, tsFile) {
|
20 | var ts = require("gulp-typescript");
|
21 |
|
22 | var tsProject = ts.createProject(config.tsconfig, {
|
23 |
|
24 |
|
25 |
|
26 | getCustomTransformers: (program) => require("ts-transform-paths").default()
|
27 | });
|
28 |
|
29 | var src = tsFile ? gulp.src(tsFile, { base: config.src, sourcemaps: true }) : tsProject.src();
|
30 |
|
31 | return src
|
32 | .on("error", error(TITLE))
|
33 | .pipe(debug({
|
34 | title: TITLE,
|
35 |
|
36 | distExt: '.js'
|
37 | }))
|
38 | .pipe(sourcemaps.init())
|
39 | .pipe(replace(pkgVar(config.var), undefined, "{{", "}}"))
|
40 | .pipe(tsProject(ts.reporter.fullReporter(true)))
|
41 | .on("error", error(TITLE))
|
42 | .js
|
43 |
|
44 |
|
45 |
|
46 | .pipe(sourcemaps.write('./'))
|
47 | .pipe(gulp.dest(config.dist))
|
48 | .pipe(size({ title: TITLE, showFiles: true }));
|
49 | }
|
50 | module.exports = compileTS;
|