|
1 | 1 | import * as gulp from "gulp"; |
2 | 2 | import { BuilderBase } from "../builder-base"; |
3 | | -import tslint from "gulp-tslint"; |
| 3 | +import gulpTsLint from "gulp-tslint"; |
| 4 | +import * as tslint from "tslint"; |
4 | 5 | import { TsLintFormatter } from "./tslint-formatter"; |
5 | 6 | import { Paths } from "../../paths/paths"; |
6 | 7 | import * as cache from "gulp-cached"; |
7 | 8 | import { LoggerInstance } from "../../utils/logger"; |
| 9 | +// import { TypescriptBuilder } from "../typescript/typescript-builder"; |
| 10 | +import { Configuration } from "../../configuration/configuration"; |
| 11 | +import * as ts from "typescript"; |
8 | 12 |
|
9 | | -export class TslintBuilder extends BuilderBase<void> { |
10 | | - protected build(production: boolean, builder: void, done: () => void) { |
11 | | - |
| 13 | +export class TslintBuilder extends BuilderBase<ts.Program> { |
| 14 | + protected build(production: boolean, builder: ts.Program, done: () => void) { |
12 | 15 | gulp.src([ |
13 | 16 | Paths.Builders.AllFiles.InSourceApp(".ts*"), |
14 | 17 | `!${Paths.Builders.AllFiles.InSourceApp("d.ts")}` |
15 | 18 | ]) |
16 | 19 | .pipe(cache("scripts.tslint")) |
17 | | - .pipe(tslint({ |
18 | | - formatter: TsLintFormatter |
| 20 | + .pipe(gulpTsLint({ |
| 21 | + formatter: TsLintFormatter, |
| 22 | + program: builder |
19 | 23 | })) |
20 | 24 | .on("end", done); |
21 | 25 | } |
22 | 26 |
|
23 | | - private isInfoMessagePrinted = false; |
24 | | - |
25 | | - protected initBuilder(production: boolean) { |
26 | | - if (!this.isInfoMessagePrinted) { |
27 | | - this.isInfoMessagePrinted = true; |
28 | | - const { Linter } = require("tslint"); |
29 | | - LoggerInstance.withType("TSLint").info(`Using TSLint@${Linter.VERSION}`); |
| 27 | + protected initBuilder(production: boolean): ts.Program { |
| 28 | + LoggerInstance.withType("TSLint").info(`Using TSLint@${tslint.Linter.VERSION}`); |
| 29 | + let configurationFile: string; |
| 30 | + if (production) { |
| 31 | + configurationFile = Configuration.GulpConfig.TypeScriptConfig.Production; |
| 32 | + } else { |
| 33 | + configurationFile = Configuration.GulpConfig.TypeScriptConfig.Development; |
30 | 34 | } |
31 | | - return; |
| 35 | + return tslint.Linter.createProgram(configurationFile); |
32 | 36 | } |
33 | 37 |
|
34 | 38 | } |
0 commit comments