Skip to content

Commit bc585f2

Browse files
committed
feat(build): add tslint to the build.
The first enabled rule enforces return types declared on non-private (underscore-prefix) methods that return something.
1 parent d629ed7 commit bc585f2

File tree

5 files changed

+789
-72
lines changed

5 files changed

+789
-72
lines changed

gulpfile.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ var replace = require('gulp-replace');
3737
var insert = require('gulp-insert');
3838
var uglify = require('gulp-uglify');
3939
var shouldLog = require('./tools/build/logging');
40+
var tslint = require('gulp-tslint');
4041

4142
require('./tools/check-environment')({
4243
requiredNpmVersion: '>=2.9.0',
@@ -246,6 +247,19 @@ gulp.task('enforce-format', function() {
246247
});
247248
});
248249

250+
gulp.task('lint', ['build.tools'], function() {
251+
// https://github.com/palantir/tslint#supported-rules
252+
var tslintConfig = {
253+
"rules": {
254+
"requireReturnType": true
255+
}
256+
};
257+
258+
return gulp.src(['modules/angular2/src/**/*.ts', '!modules/angular2/src/test_lib/**'])
259+
.pipe(tslint({configuration: tslintConfig, rulesDirectory: 'dist/tools/tslint'}))
260+
.pipe(tslint.report('prose'));
261+
});
262+
249263
// ------------
250264
// check circular dependencies in Node.js context
251265
gulp.task('build/checkCircularDependencies', function (done) {
@@ -592,7 +606,7 @@ gulp.task('pre-test-checks', function(done) {
592606
});
593607

594608
gulp.task('post-test-checks', function(done) {
595-
runSequence('enforce-format', sequenceComplete(done));
609+
runSequence('lint', 'enforce-format', sequenceComplete(done));
596610
});
597611

598612

npm-shrinkwrap.clean.json

Lines changed: 254 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6730,6 +6730,260 @@
67306730
}
67316731
}
67326732
},
6733+
"gulp-tslint": {
6734+
"version": "3.1.0-beta",
6735+
"dependencies": {
6736+
"gulp-util": {
6737+
"version": "3.0.6",
6738+
"dependencies": {
6739+
"array-differ": {
6740+
"version": "1.0.0"
6741+
},
6742+
"array-uniq": {
6743+
"version": "1.0.2"
6744+
},
6745+
"beeper": {
6746+
"version": "1.1.0"
6747+
},
6748+
"chalk": {
6749+
"version": "1.0.0",
6750+
"dependencies": {
6751+
"ansi-styles": {
6752+
"version": "2.0.1"
6753+
},
6754+
"escape-string-regexp": {
6755+
"version": "1.0.3"
6756+
},
6757+
"has-ansi": {
6758+
"version": "1.0.3",
6759+
"dependencies": {
6760+
"ansi-regex": {
6761+
"version": "1.1.1"
6762+
},
6763+
"get-stdin": {
6764+
"version": "4.0.1"
6765+
}
6766+
}
6767+
},
6768+
"supports-color": {
6769+
"version": "1.3.1"
6770+
}
6771+
}
6772+
},
6773+
"dateformat": {
6774+
"version": "1.0.11",
6775+
"dependencies": {
6776+
"get-stdin": {
6777+
"version": "4.0.1"
6778+
},
6779+
"meow": {
6780+
"version": "3.3.0",
6781+
"dependencies": {
6782+
"camelcase-keys": {
6783+
"version": "1.0.0",
6784+
"dependencies": {
6785+
"camelcase": {
6786+
"version": "1.1.0"
6787+
},
6788+
"map-obj": {
6789+
"version": "1.0.1"
6790+
}
6791+
}
6792+
}
6793+
}
6794+
}
6795+
}
6796+
},
6797+
"lodash._reescape": {
6798+
"version": "3.0.0"
6799+
},
6800+
"lodash._reevaluate": {
6801+
"version": "3.0.0"
6802+
},
6803+
"lodash._reinterpolate": {
6804+
"version": "3.0.0"
6805+
},
6806+
"lodash.template": {
6807+
"version": "3.6.1",
6808+
"dependencies": {
6809+
"lodash._basecopy": {
6810+
"version": "3.0.1"
6811+
},
6812+
"lodash._basetostring": {
6813+
"version": "3.0.0"
6814+
},
6815+
"lodash._basevalues": {
6816+
"version": "3.0.0"
6817+
},
6818+
"lodash._isiterateecall": {
6819+
"version": "3.0.9"
6820+
},
6821+
"lodash.escape": {
6822+
"version": "3.0.0"
6823+
},
6824+
"lodash.keys": {
6825+
"version": "3.1.1",
6826+
"dependencies": {
6827+
"lodash._getnative": {
6828+
"version": "3.9.0"
6829+
},
6830+
"lodash.isarguments": {
6831+
"version": "3.0.3"
6832+
},
6833+
"lodash.isarray": {
6834+
"version": "3.0.3"
6835+
}
6836+
}
6837+
},
6838+
"lodash.restparam": {
6839+
"version": "3.6.1"
6840+
},
6841+
"lodash.templatesettings": {
6842+
"version": "3.1.0"
6843+
}
6844+
}
6845+
},
6846+
"multipipe": {
6847+
"version": "0.1.2",
6848+
"dependencies": {
6849+
"duplexer2": {
6850+
"version": "0.0.2",
6851+
"dependencies": {
6852+
"readable-stream": {
6853+
"version": "1.1.13",
6854+
"dependencies": {
6855+
"core-util-is": {
6856+
"version": "1.0.1"
6857+
},
6858+
"isarray": {
6859+
"version": "0.0.1"
6860+
},
6861+
"string_decoder": {
6862+
"version": "0.10.31"
6863+
},
6864+
"inherits": {
6865+
"version": "2.0.1"
6866+
}
6867+
}
6868+
}
6869+
}
6870+
}
6871+
}
6872+
},
6873+
"object-assign": {
6874+
"version": "3.0.0"
6875+
},
6876+
"replace-ext": {
6877+
"version": "0.0.1"
6878+
},
6879+
"through2": {
6880+
"version": "2.0.0",
6881+
"dependencies": {
6882+
"readable-stream": {
6883+
"version": "2.0.1",
6884+
"dependencies": {
6885+
"core-util-is": {
6886+
"version": "1.0.1"
6887+
},
6888+
"inherits": {
6889+
"version": "2.0.1"
6890+
},
6891+
"isarray": {
6892+
"version": "0.0.1"
6893+
},
6894+
"process-nextick-args": {
6895+
"version": "1.0.1"
6896+
},
6897+
"string_decoder": {
6898+
"version": "0.10.31"
6899+
},
6900+
"util-deprecate": {
6901+
"version": "1.0.1"
6902+
}
6903+
}
6904+
}
6905+
}
6906+
},
6907+
"vinyl": {
6908+
"version": "0.5.0",
6909+
"dependencies": {
6910+
"clone": {
6911+
"version": "1.0.2"
6912+
},
6913+
"clone-stats": {
6914+
"version": "0.0.1"
6915+
}
6916+
}
6917+
}
6918+
}
6919+
},
6920+
"map-stream": {
6921+
"version": "0.1.0"
6922+
},
6923+
"rcloader": {
6924+
"version": "0.1.4",
6925+
"dependencies": {
6926+
"lodash": {
6927+
"version": "3.9.3"
6928+
},
6929+
"rcfinder": {
6930+
"version": "0.1.8",
6931+
"dependencies": {
6932+
"lodash": {
6933+
"version": "2.4.2"
6934+
}
6935+
}
6936+
}
6937+
}
6938+
},
6939+
"through": {
6940+
"version": "2.3.7"
6941+
},
6942+
"tslint": {
6943+
"version": "2.3.0-beta",
6944+
"dependencies": {
6945+
"findup-sync": {
6946+
"version": "0.1.3",
6947+
"dependencies": {
6948+
"glob": {
6949+
"version": "3.2.11",
6950+
"dependencies": {
6951+
"inherits": {
6952+
"version": "2.0.1"
6953+
},
6954+
"minimatch": {
6955+
"version": "0.3.0",
6956+
"dependencies": {
6957+
"lru-cache": {
6958+
"version": "2.6.4"
6959+
},
6960+
"sigmund": {
6961+
"version": "1.0.1"
6962+
}
6963+
}
6964+
}
6965+
}
6966+
}
6967+
}
6968+
},
6969+
"optimist": {
6970+
"version": "0.6.1",
6971+
"dependencies": {
6972+
"wordwrap": {
6973+
"version": "0.0.3"
6974+
},
6975+
"minimist": {
6976+
"version": "0.0.10"
6977+
}
6978+
}
6979+
},
6980+
"underscore.string": {
6981+
"version": "2.3.3"
6982+
}
6983+
}
6984+
}
6985+
}
6986+
},
67336987
"gulp-typescript": {
67346988
"version": "2.6.0",
67356989
"dependencies": {
@@ -9721,10 +9975,6 @@
97219975
}
97229976
}
97239977
}
9724-
},
9725-
"typescript": {
9726-
"version": "1.5.0",
9727-
"resolved": "git://github.com/alexeagle/TypeScript.git#be9a7edff73ac2592e508732c771c85357041385"
97289978
}
97299979
}
97309980
},

0 commit comments

Comments
 (0)